Bevor Sie einem DB2-Server mit zusammengeschlossenen Datenbanken Informix-Datenquellen hinzufügen, müssen Sie das Software Developer's Kit des Informix-Clients auf dem Server mit zusammengeschlossenen Datenbanken installieren und konfigurieren. In der Installationsbeschreibung in der Dokumentation, die mit der Informix-Datenbanksoftware geliefert wird, finden Sie genaue Angaben zur Installation des Software Developer's Kit (SDK) des Clients. Stellen Sie sicher, dass die SDK-Bibliotheken des Informix-Clients installiert werden.
Sie müssen die folgenden Operationen ausführen, um Ihren Server mit zusammengeschlossenen Datenbanken zu definieren, damit er auf Daten zugreifen kann, die in Informix-Datenquellen gespeichert sind:
Dieses Kapitel geht auf Schritt 3 ein.
Die Anweisungen in diesem Kapitel gelten für AIX, die Solaris-Betriebsumgebung und HP-UX-Betriebssysteme. Die für die einzelnen Betriebssysteme spezifischen Unterschiede werden erwähnt, wo sie zutreffen.
Sie müssen die folgenden Operationen ausführen, um einem Server mit zusammengeschlossenen Datenbanken eine Informix-Datenquelle hinzuzufügen:
Diese Schritte werden in diesem Abschnitt genau erklärt.
Definieren Sie Umgebungsvariablen für Datenquellen durch eine Änderung der Datei db2dj.ini und durch Absetzen des Befehls db2set. Die Datei db2dj.ini enthält Konfigurationsdaten zu der Informix-Client-Software, die auf Ihrem Server mit zusammengeschlossenen Datenbanken installiert ist. Der Befehl db2set aktualisiert die DB2-Profilregistrierdatenbank mit Ihren Einstellungen.
In einem partitionierten Datenbanksystem können Sie eine einzige Datei db2dj.ini für alle Knoten in einem bestimmten Exemplar verwenden, oder Sie können eine eindeutige Datei db2dj.ini für einen oder mehrere Knoten in einem bestimmten Exemplar verwenden. Ein nicht partitioniertes Datenbanksystem kann nur eine Datei db2dj.ini pro Exemplar haben.
Gehen Sie wie folgt vor, um die Umgebungsvariablen festzulegen:
Setzen Sie die Umgebungsvariable INFORMIXDIR auf den Pfad für das Verzeichnis, in dem das Software Developer's Kit des Informix-Clients installiert ist, z. B.:
INFORMIXDIR=/informix/csdk
Diese Variable gibt den Namen des Informix-Standardservers an.
INFORMIXSERVER=inf93
Anmerkung: Obwohl die Informix-Oberfläche den Wert dieser Variablen nicht verwendet, setzt der Informix-Client voraus, dass diese Variable gesetzt ist. Die Oberfläche verwendet den Wert der Serveroption node, die den Informix-Datenbankserver bezeichnet, auf den Sie zugreifen wollen.
Wenn Sie den Standardpfad für die Informix-Datei sqlhosts verwenden ($INFORMIXDIR/etc/sqlhosts), müssen Sie diese Variable nicht setzen. Wenn Sie jedoch einen anderen Pfad zur Informix-Datei sqlhosts verwenden, müssen Sie diese Variable auf den vollständigen Pfadnamen der Datei setzen. Beispiel:
INFORMIXSQLHOSTS=/informix/csdk/etc/my_sqlhosts
PATH=$INFORMIXDIR/bin:$PATH export PATH INFORMIXDIR=<informix-client-pfad> export INFORMIXDIR
Dabei gilt Folgendes: informix-client-pfad ist der Pfad des Servers mit zusammengeschlossenen Datenbanken für das Verzeichnis, in dem der Informix-Client installiert ist. Schließen Sie den Pfad in doppelte Anführungszeichen (") ein, wenn ein Name im Pfad ein Leerzeichen enthält.
. .profile
Wenn Sie die Datei db2dj.ini in einem nicht partitionierten Datenbanksystem verwenden oder wenn Sie wollen, dass die Datei db2dj.ini nur auf den aktuellen Knoten angewendet wird, setzen Sie den folgenden Befehl ab:
db2set DB2_DJ_INI=sqllib/cfg/db2dj.ini
Wenn Sie die Datei db2dj.ini in einem partitionierten Datenbanksystem verwenden und wollen, dass die Werte in der Datei db2dj.ini für alle Knoten innerhalb dieses Exemplars gelten sollen, setzen Sie den folgenden Befehl ab:
db2set -g DB2_DJ_INI = sqllib/cfg/db2dj.ini
Wenn Sie die Datei db2dj.ini in einem partitionierten Datenbanksystem verwenden und die Werte in der Datei db2dj.ini für einen bestimmten Knoten gelten sollen, setzen Sie den folgenden Befehl ab:
db2set -i EXEMPX 3 DB2_DJ_INI=sqllib/cfg/knoten3.ini
Dabei gilt Folgendes:
Es muss eine Programmverbindung zwischen dem DB2-Server mit zusammengeschlossenen Datenbanken und den Client-Bibliotheken hergestellt werden, um den Zugriff auf Informix-Datenquellen zu aktivieren. Durch das Herstellen einer Programmverbindung wird eine Oberflächenbibliothek für alle Datenquellen erstellt, mit denen der Server mit zusammengeschlossenen Datenbanken kommunizieren wird. Wenn Sie das Script djxlinkInformix ausführen, erstellen Sie die Informix-Oberflächenbibliothek. Geben Sie Folgendes ein, um das Script djxlinkInformix abzusetzen:
djxlinkInformix
Das Script djxlinkInformix erstellt nur die Informix-Oberflächenbibliothek. Es gibt ein weiteres Script, djxlink, das versucht, eine Oberflächenbibliothek für jede Datenquelle zu erstellen, die von DB2 Universal Database unterstützt wird (Oracle, Microsoft SQL Server usw.). Wenn Sie nur die Clientsoftware für einige der installierten Datenquellen haben, erhalten Sie beim Absetzen des Scripts djxlink eine Fehlernachricht für jede fehlende Datenquelle.
Sie benötigen die UNIX-Systemadministratorberechtigung (root), um die Scripts djxlinkInformix und djxlink auszuführen.
Die Scripts djxlinkInformix und djxlink schreiben je nach Betriebssystem detaillierte Fehler- und Warnnachrichten in eine bestimmte Datei. Unter AIX beispielsweise schreibt das Script djxlinkInformix in /usr/lpp/db2_07_01/lib/djxlinkInformix.out, und das Script djxlink schreibt in /usr/lpp/db2_07_01/lib/djxlink.out.
Die Scripts djxlinkInformix und djxlink erstellen je nach Betriebssystem die Oberflächenbibliothek in einem spezifischen Verzeichnis. Unter AIX beispielsweise wird die Oberflächenbibliothek libinformix.a im Verzeichnis /usr/lpp/db2_07_01/lib erstellt.
Prüfen Sie nach dem Erstellen die Berechtigungen für die Oberflächenbibliothek libinformix.a, um sicherzustellen, dass sie von DB2-Exemplareignern gelesen und ausgeführt werden kann. Wenn die DB2-Exemplareigner nicht zur Systemverwaltungsgruppe gehören, müssen die Berechtigungen für die Oberflächenbibliothek libinformix.a den Wert -rwxr-xr-x root system...libinformix.a haben.
Starten Sie das DB2-Exemplar erneut, um sicherzustellen, dass die Umgebungsvariablen in dem Programm festgelegt sind. Wenn Sie das Exemplar erneut starten, aktualisieren Sie das DB2-Exemplar so, dass es die vorgenommenen Änderungen übernimmt.
Setzen Sie die folgenden Befehle ab, um das DB2-Exemplar erneut zu starten:
db2stop db2start
Die Datei gibt die Position jedes Informix-Datenbankservers und die Verbindungsart (Protokoll) für den Datenbankserver an. Diese Datei kann auf mehrere Arten erstellt werden. Sie können sie von einem anderen System kopieren, auf dem Informix Connect oder Informix Client SDK mit Verbindung zu einem Informix-Server vorhanden ist. Sie können auch das Informix Client SDK auf dem DB2-Server konfigurieren, um eine Verbindung zu einem Informix-Server herzustellen, wodurch die Datei sqlhosts erstellt wird.
Nachdem die Datei sqlhosts kopiert oder erstellt wurde, sollte der DB2-Exemplareigner den Informix-Befehl dbaccess verwenden (wenn er sich auf dem DB2-Server befindet), um eine Verbindung zum Informix-Server herzustellen und diesen abzufragen. Dadurch wird festgelegt, dass das Informix Client SDK eine Verbindung zum Informix-Server herstellen kann, bevor Sie versuchen, DB2 Relational Connect in Verbindung mit dem Informix Client SDK zu konfigurieren.
Weitere Informationen zur Einrichtung dieser Datei finden Sie im Informix-Handbuch Administrators Guide for Informix Dynamic Server.
Achtung: |
---|
Wenn Sie den Informix-Datenbankservernamen nicht in der Datei sqlhosts definieren, erhalten Sie eine Fehlernachricht, wenn Sie eine Operation durchführen, für die eine Verbindung zum Informix-Datenbankserver erforderlich ist. |
Verwenden Sie die Anweisung CREATE WRAPPER, um die Oberfläche anzugeben, die für den Zugriff auf Informix-Datenquellen verwendet werden soll. Oberflächen sind die Mittel, mit denen Server mit zusammengeschlossenen Datenbanken mit Datenquellen kommunizieren und Daten von Datenquellen abrufen. Das folgende Beispiel zeigt eine CREATE WRAPPER-Anweisung:
CREATE WRAPPER informix
Dabei ist informix der Oberflächenname. informix ist der Oberflächen-Standardname, der in Verbindung mit dem Software Developer's Kit des Informix-Clients verwendet wird.
Sie können den Standardoberflächennamen mit einem Namen ihrer Wahl ersetzen. Wenn Sie dies machen, müssen Sie allerdings auch den Parameter LIBRARY und den Namen der Oberflächenbibliothek für Ihren Server mit zusammengeschlossenen Datenbanken in der Anweisung CREATE WRAPPER angeben. Weitere Informationen zu Oberflächenbibliotheksnamen finden Sie unter der Anweisung CREATE WRAPPER im Handbuch DB2 SOL Reference.
Die Oberflächenbibliotheksnamen für Informix lauten:
Setzen Sie die Umgebungsvariable DB2_DJ_COMM auf dem Server mit zusammengeschlossenen Datenbanken, um die Leistung für den Zugriff auf die Informix-Datenquelle zu erhöhen. Diese Variable legt fest, ob eine Oberfläche geladen ist, wenn der Server mit zusammengeschlossenen Datenbanken initialisiert wird. Setzen Sie die Umgebungsvariable DB2_DJ_COMM so, dass die Oberflächenbibliothek integriert wird, die zu der Oberfläche gehört, die Sie in dem vorherigen Schritt angegeben haben. Wenn Sie mit Korn-Shell- oder Bourne-Shell-Befehlszeilenschnittstellen arbeiten, verwenden Sie die folgenden Exportbefehle:
DB2_DJ_COMM='libinformix.a' export DB2_DJ_COMM
DB2_DJ_COMM='libinformix.so' export DB2_DJ_COMM
DB2_DJ_COMM='libinformix.sl' export DB2_DJ_COMM
Stellen Sie sicher, dass sich auf keiner Seite des Gleichheitszeichens (=) Leerzeichen befinden.
Wenn Sie mit der C-Shell-Befehlszeilenschnittstelle arbeiten, setzen Sie die Umgebungsvariablen mit folgenden Befehlen:
setenv DB2_DJ_COMM 'libinformix.a' (DB2 für AIX-Server) setenv DB2_DJ_COMM 'libinformix.so' (DB2-Server für die Solaris-Betriebsumgebung) setenv DB2_DJ_COMM 'libinformix.sl' (DB2 für HP--UX-Server)
Weitere Informationen zu den Oberflächenbibliotheksnamen und der Umgebungsvariable DB2_DJ_COMM finden Sie im Handbuch DB2 SQL Reference.
Verwenden Sie die Anweisung CREATE SERVER, um alle Informix-Server zu definieren, auf deren Datenquellen Sie zugreifen wollen. Die Syntax für diese Anweisung lautet:
CREATE SERVER servername TYPE serverart VERSION serverversion WRAPPER oberflächenname OPTIONS (NODE 'knotenname', DBNAME 'datenbankname')
Dabei gilt Folgendes:
Im Folgenden sehen Sie ein Beispiel für die Anweisung CREATE SERVER:
CREATE SERVER asia TYPE informix VERSION 9 WRAPPER informix OPTIONS (NODE 'abc', DBNAME 'sales')
Die Serveroptionen FOLD_ID and FOLD_PW wirken sich darauf aus, ob die Oberfläche die Benutzer-ID und das Kennwort in Groß- oder in Kleinbuchstaben umsetzt, bevor sie sie an Informix sendet. Beispiel für die Anweisung CREATE SERVER mit den Serveroptionen FOLD_ID und FOLD_PW:
CREATE SERVER asia TYPE informix VERSION 9 WRAPPER informix OPTIONS (NODE 'abc', DBNAME 'sales', FOLD_ID 'U', FOLD_PW 'U')
Wenn sich die Benutzer-ID oder das Kennwort auf dem DB2-Server mit zusammengeschlossenen Datenbanken von einer Benutzer-ID oder einem Kennwort in einer Informix-Datenquelle unterscheiden, verwenden Sie die Anweisung CREATE USER MAPPING, um die lokale Benutzer-ID der Kombination aus Benutzer-ID und Kennwort zuzuordnen, die in der Informix-Datenquelle definiert ist. Beispiel:
CREATE USER MAPPING FOR lokale-benutzer-id SERVER servername OPTIONS (REMOTE_AUTHID 'ferne-benutzer-id', REMOTE_PASSWORD 'fernes-kennwort')
Dabei gilt Folgendes:
Im Folgenden sehen Sie ein Beispiel für die Anweisung CREATE MAPPING:
CREATE USER MAPPING FOR robert SERVER asia OPTIONS (REMOTE_AUTHID 'bob', REMOTE_PASSWORD 'day2night')
Sie können das DB2-Sonderregister USER verwenden, um die Berechtigungs-ID des Benutzers, der die Anweisung CREATE USER MAPPING absetzt, der Datenquellen-Berechtigungs-ID zuzuordnen, die in der Benutzeroption REMOTE_AUTHID angegeben ist. Im Folgenden sehen Sie ein Beispiel für die Anweisung CREATE USER MAPPING mit dem Sonderregister USER:
CREATE USER MAPPING FOR USER SERVER asia OPTIONS (REMOTE_AUTHID 'bob', REMOTE_PASSWORD 'day2night')
Weitere Informationen zu zusätzlichen Optionen finden Sie im Handbuch SQL Reference.
Ordnen Sie jeder Tabelle, jeder Sicht oder jedem Informix-Synonym in Ihrer Informix-Datenquelle einen Kurznamen zu. Kurznamen können bis zu 128 Zeichen enthalten. Sie verwenden diese Kurznamen, wenn Sie die Informix-Datenquelle abfragen. DB2 setzt die Server-, Schema- und Tabellennamen in Großbuchstaben um, sofern Sie sie nicht in doppelte Anführungszeichen (") einschließen. Das folgende Beispiel zeigt eine CREATE NICKNAME-Anweisung:
CREATE NICKNAME kurzname FOR servername."ferner-schemaname"."ferner-tabellenname"
Dabei gilt Folgendes:
Im Folgenden sehen Sie ein Beispiel für die Anweisung CREATE NICKNAME:
CREATE NICKNAME salesjapan FOR asia."salesdata"."japan"
Wiederholen Sie diesen Schritt für alle Tabellen oder Sichten, für die Sie einen Kurznamen erstellen wollen. Wenn Sie den Kurznamen erstellen, verwendet DB2 die Verbindung, um den Datenquellenkatalog abzufragen. Diese Abfrage testet Ihre Verbindung zu der Datenquelle. Wenn die Verbindung nicht zustande kommt, empfangen Sie eine Fehlernachricht.
Weitere Informationen zu der Anweisung CREATE NICKNAME finden Sie im Handbuch SQL Reference. Weitere Informationen zu Kurznamen im Allgemeinen und zum Prüfen von Datentypzuordnungen finden Sie im Handbuch DB2 Systemverwaltung.