Release-Informationen


6.8 Zugriff auf Informix-Datenquellen (neues Kapitel)

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:

  1. Installieren Sie DB2 Relational Connect. Siehe 6.3.3, Installieren von DB2 Relational Connect.
  2. Wenden Sie das neueste DB2-FixPak an.
  3. Fügen Sie Ihrem Server mit zusammengeschlossenen Datenbanken Informix-Datenquellen hinzu.

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.

6.8.1 Hinzufügen von Informix-Datenquellen zu einem Server mit zusammengeschlossenen Datenbanken

Sie müssen die folgenden Operationen ausführen, um einem Server mit zusammengeschlossenen Datenbanken eine Informix-Datenquelle hinzuzufügen:

  1. Legen Sie die Umgebungsvariablen fest, und aktualisieren Sie die Profilregistrierdatenbank.
  2. Verknüpfen Sie DB2 mit der Informix-Client-Software.
  3. Starten Sie das DB2-Exemplar erneut.
  4. Erstellen Sie die Datei sqlhosts für Informix.
  5. Erstellen Sie die Oberfläche.
  6. Optional: Legen Sie die Umgebungsvariable DB2_DJ_COMM fest.
  7. Erstellen Sie einen Server.
  8. Erstellen Sie eine Benutzerzuordnung.
  9. Erstellen Sie Kurznamen für Tabellen, Sichten und Informix-Synonyme.

Diese Schritte werden in diesem Abschnitt genau erklärt.

6.8.1.1 Schritt 1: Festlegen der Umgebungsvariablen und Aktualisieren der Profilregistrierdatenbank

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:

  1. Editieren Sie die Datei db2dj.ini, die sich im Verzeichnis sqllib/cfg befindet, und legen Sie die folgenden Umgebungsvariablen fest:
    Anmerkung:
    |Sie können diese Datei selbst erstellen, wenn sie noch nicht auf dem |System vorhanden ist. |

    INFORMIXDIR

    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
    
    

    INFORMIXSERVER

    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.

    INFORMIXSQLHOSTS

    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
    | 
    
    
  2. Aktualisieren Sie die Datei .profile für das DB2-Exemplar mit den Informix-Umgebungsvariablen. Sie können dies tun, indem Sie die folgenden Befehle absetzen, um die einzelnen Variablen zu setzen und zu exportieren:
    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.

  3. Führen Sie die Datei .profile auf dem DB2-Exemplar aus, indem Sie Folgendes eingeben:
    . .profile
    
  4. Setzen Sie den Befehl db2set ab, um die DB2-Profilregistrierdatenbank mit Ihren Änderungen zu aktualisieren. Die Syntax des Befehls db2set hängt von Ihrer Datenbanksystemstruktur ab. Dieser Schritt ist nur erforderlich, wenn Sie die Datei db2dj.ini in einer der folgenden Datenbanksystemstrukturen verwenden:

    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
    
    Anmerkung:
    |Die Pfadnamen in diesem Abschnitt sollten vollständig qualifiziert |sein, z. B. |mein-home/mein-exemplar/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:

    EXEMPX
    Der Name des Exemplars.

    3
    Die Knotennummer, die in der Datei db2nodes.cfg aufgelistet wird.

    knoten3.ini
    Die geänderte und umbenannte Version der Datei db2dj.ini.

6.8.1.2 Schritt 2: Verbinden von DB2 mit der Informix-Client-Software

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
Anmerkung:

|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. |

6.8.1.3 Schritt 3: DB2-Exemplar erneut starten

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:

Bei DB2-Servern für AIX, die Solaris-Betriebsumgebung und HP-UX:
db2stop
db2start

|6.8.1.4 Schritt 4: Erstellen der Informix-Datei "sqlhosts"

|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.

6.8.1.5 Schritt 5: Erstellen der Oberfläche

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:

6.8.1.6 Schritt 6: Optional: Festlegen der Umgebungsvariablen DB2_DJ_COMM

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:

Auf DB2 für AIX-Servern:
DB2_DJ_COMM='libinformix.a'
export DB2_DJ_COMM

Auf DB2-Servern für die Solaris-Betriebsumgebung:
DB2_DJ_COMM='libinformix.so'
export DB2_DJ_COMM

Auf DB2 für HP-UX-Servern:
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.

6.8.1.7 Schritt 7: Erstellen des Servers

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:

|servername
|Der Name, den Sie dem Informix-Datenbankserver zuordnen. Dieser |Name muss eindeutig sein und darf mit keinem anderen in der |zusammengeschlossenen Datenbank definierten Servernamen übereinstimmen. |Der Servername darf nicht dem Namen eines Tabellenbereichs in der |zusammengeschlossenen Datenbank entsprechen.

TYPE serverart
Die Datenquellenart, für die Sie den Zugriff konfigurieren.
Anmerkung:
|Für die Informix-Oberfläche muss die Serverart "informix" |lauten. |

VERSION serverversion
Die Version des Informix-Datenbankservers, auf den Sie zugreifen wollen. Die unterstützten Informix-Versionen sind 5, 7, 8 und 9.

WRAPPER oberflächenname
Der Name, den Sie in der Anweisung CREATE WRAPPER angegeben haben.

NODE 'knotenname'
Der Name des Knotens, auf dem sich servername befindet. Der Knotenname muss in der Informix-Datei sqlhosts definiert sein (siehe Schritt 4). Obwohl der Knotenname als Option in der SQL-Anweisung CREATE SERVER definiert ist, ist er für Informix-Datenquellen erforderlich. Beachten Sie bei diesem Wert die Groß-/Kleinschreibung. Informationen zu zusätzlichen Optionen finden Sie im Handbuch SQL Reference.

DBNAME 'datenbankname'
Der Name der Informix-Datenbank, auf die Sie zugreifen wollen.

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')

6.8.1.8 Schritt 8: Erstellen einer Benutzerzuordnung

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:

lokale-benutzer-id
Die lokale Benutzer-ID, die Sie einer in einer Informix-Datenquelle definierten Benutzer-ID zuordnen.

SERVER servername
Der Name der Informix-Datenquelle, die Sie in der Anweisung CREATE SERVER definiert haben.

REMOTE_AUTHID 'ferne-benutzer-id'
Die Benutzer-ID auf dem Informix-Datenbankserver, der Sie lokale-benutzer-id zuordnen. Dieser Wert unterscheidet Groß-/Kleinschreibung, sofern Sie die Serveroption FOLD_ID in der Anweisung CREATE SERVER nicht auf 'U' oder 'L' setzen.

REMOTE_PASSWORD 'fernes-kennwort'
|Das Kennwort, das ferne-benutzer-id zugeordnet ist. |Dieser Wert unterscheidet Groß-/Kleinschreibung, sofern Sie die Serveroption |FOLD_PW in der Anweisung CREATE SERVER nicht auf 'U' oder |'L' setzen.

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.

6.8.1.9 Schritt 9: Erstellen von Kurznamen für Tabellen, Sichten und Informix-Synonyme

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:

kurzname
Ein eindeutiger Kurzname, der zur Bezeichung der Informix-Tabelle, der Informix-Sicht oder des Informix-Synonyms verwendet wird.

servername."ferner-schemaname"."ferner-tabellenname"
Ein dreiteiliger Bezeichner für das ferne Objekt:

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.


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]