Amazon RDS für den Db2-Verbund - Amazon Relational Database Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Amazon RDS für den Db2-Verbund

Sie können Ihre Amazon RDS for Db2-Datenbank als Verbunddatenbank verwenden. Nachdem Sie den Verbund RDS für Db2 eingerichtet haben, können Sie von Ihrer RDS for Db2-Datenbank aus auf Daten aus mehreren Datenbanken zugreifen und diese abfragen. Der Verbund erspart Ihnen die Migration von Daten in Ihre RDS for Db2-Datenbank oder die Konsolidierung von Daten in einer einzigen Datenbank.

Wenn Sie Ihre RDS for Db2-Datenbank als föderierte Datenbank verwenden, können Sie weiterhin auf alle Funktionen von RDS for Db2 zugreifen und verschiedene Vorteile nutzen AWS-Services, und das alles, während Ihre Daten in verschiedenen Datenbanken gespeichert werden. Sie können sowohl einen homogenen Verband einrichten, der verschiedene Datenbanken desselben Typs verbindet, als auch einen heterogenen Verband, der verschiedene Datenbanken unterschiedlichen Typs verbindet.

Sie verbinden zuerst Ihre Db2-Datenbank in RDS for Db2 mit entfernten Datenbanken. Dann können Sie Abfragen für alle Ihre verbundenen Datenbanken ausführen. Sie können beispielsweise eine SQL JOIN Anweisung ausführen, die Tabellen in Ihrer RDS for Db2-Datenbank mit Tabellen in einer entfernten Db2 on z/OS-Datenbank verknüpft.

Homogener Verbund

Sie können einen homogenen Verbund zwischen Ihrer RDS for Db2-Datenbank und der folgenden Db2-Produktfamilie einrichten:

  • Db2 für LinuxUNIX, Windows () LUW

  • Db2 iSeries

  • Db2 für z/OS

RDSfür Db2 unterstützt der homogene Verbund die folgenden Aktionen nicht:

  • CATALOGBefehle ausführen, um ein Knotenverzeichnis und eine entfernte Datenbank in einer Hostdatenbank RDS für DB2 einzurichten

  • Einrichtung des Workload Balancing (WLB) beim Verbund mit Db2 unter z/OS

  • Konfiguration der IBM Datenserver-Treiber-Konfigurationsdatei () db2dsdriver.cfg

RDSFür den homogenen DB2-Verbund gelten die folgenden Anforderungen:

Schritt 1: Erstellen Sie einen DRDA Wrapper und einen Verbundserver

Für einen homogenen Verbund erstellen Sie einen DRDA Wrapper und einen Verbundserver. Die Verbindung zum Remote-Host verwendetHOST,PORT, und. DBNAME

Wählen Sie je nach Typ Ihrer entfernten Db2-Datenbank eine der folgenden Methoden:

  • Db2 für Linux und Windows (LUX) -Datenbank — Führen Sie die folgenden SQL Befehle aus. UNIX Ersetzen Sie im folgenden Beispiel server_name durch den Namen des Servers, den Sie für den Verbund verwenden werden. Ersetzen db2_version mit der Version Ihrer entfernten Db2-Datenbank. Ersetzen username and password mit Ihren Anmeldeinformationen für die entfernte Db2-Datenbank, zu der Sie eine Verbindung herstellen möchten. Ersetzen db_name, dns_name, und port mit den entsprechenden Werten für die entfernte Db2-Datenbank, zu der Sie eine Verbindung herstellen möchten.

    create wrapper drda options(DB2_FENCED 'N'); create server server_name type DB2/LUW wrapper drda version 'db2_version' authorization "master_username" password "master_password" options (add DBNAME 'db_name',add HOST 'dns_name',add PORT 'port');

    Beispiel

    create wrapper drda options(DB2_FENCED 'N'); create server SERVER1 type DB2/LUW wrapper drda version '11.5' authorization "sysuser" password "******" options (add DBNAME 'TESTDB2',add HOST 'ip-123-45-67-899.us-west-1.compute.internal',add PORT '25010');
  • Db2 iSeries — Führen Sie die folgenden SQL Befehle aus. Ersetzen Sie im folgenden Beispiel wrapper_name and library_name durch einen Namen für Ihren DRDA Wrapper und die Wrapper-Bibliotheksdatei. Ersetzen server_name mit dem Namen des Servers, den Sie für den Verbund verwenden werden. Ersetzen db2_version mit der Version Ihrer entfernten Db2-Datenbank. Ersetzen username and password mit Ihren Anmeldeinformationen für die entfernte Db2-Datenbank, zu der Sie eine Verbindung herstellen möchten. Ersetzen dns_name, port, und db_name mit den entsprechenden Werten für die entfernte Db2-Datenbank, zu der Sie eine Verbindung herstellen möchten.

    create wrapper wrapper_name library 'library name' options(DB2_FENCED 'N'); create server server_name type db2/mvs version db2_version wrapper wrapper_name authorization "sername" password "password" options (HOST 'dns_name', PORT 'port', DBNAME 'db_name');

    Beispiel

    create wrapper WRAPPER1 library 'libdb2drda.so' options(DB2_FENCED 'N'); create server SERVER1 type db2/mvs version 11 wrapper WRAPPER1 authorization "sysuser" password "******" options (HOST 'test1.123.com', PORT '446', DBNAME 'STLEC1');
  • Db2 for z/OS — Führen Sie die folgenden Befehle aus. SQL Ersetzen Sie im folgenden Beispiel wrapper_name and library_name durch einen Namen für Ihren DRDA Wrapper und die Wrapper-Bibliotheksdatei. Ersetzen server_name mit dem Namen des Servers, den Sie für den Verbund verwenden werden. Ersetzen db2_version mit der Version Ihrer entfernten Db2-Datenbank. Ersetzen username and password mit Ihren Anmeldeinformationen für die entfernte Db2-Datenbank, zu der Sie eine Verbindung herstellen möchten. Ersetzen dns_name, port, und db_name mit den entsprechenden Werten für die entfernte Db2-Datenbank, zu der Sie eine Verbindung herstellen möchten.

    create wrapper wrapper_name library 'library_name' options(DB2_FENCED 'N'); create server server_name type db2/mvs version db2_version wrapper wrapper_name authorization "username" password "password" options (HOST 'dns_name', PORT 'port', DBNAME 'db_name');

    Beispiel

    create wrapper WRAPPER1 library 'libdb2drda.so' OPTIONS(DB2_FENCED 'N'); create server SERVER1 type db2/mvs version 11 wrapper WRAPPER1 authorization "sysuser" password "******" options (HOST 'test1.123.com', PORT '446', DBNAME 'STLEC1');

Schritt 2: Erstellen Sie eine Benutzerzuordnung

Erstellen Sie eine Benutzerzuordnung, um Ihren Verbundserver mit Ihrem Datenquellenserver zu verknüpfen, indem Sie den folgenden SQL Befehl ausführen. Ersetzen Sie im folgenden Beispiel server_name durch den Namen des Remoteservers, auf dem Sie Operationen ausführen möchten. Dies ist der Server, den Sie in Schritt 1 erstellt haben. Ersetzen username and password mit Ihren Anmeldeinformationen für diesen Remoteserver.

create user mapping for user server server_name options (REMOTE_AUTHID 'username', REMOTE_PASSWORD 'password');

Weitere Informationen finden Sie unter Benutzerzuordnungen im IBM Db2 -Dokumentation.

Schritt 3: Überprüfen Sie die Verbindung

Vergewissern Sie sich, dass die Einrichtung Ihres Verbunds erfolgreich war, indem Sie die Verbindung überprüfen. Öffnen Sie eine Sitzung, um mithilfe des SET PASSTHRU Befehls systemeigene SQL Befehle an Ihre Remote-Datenquelle zu senden, und erstellen Sie dann eine Tabelle auf dem Remote-Datenserver.

  1. Öffnen und schließen Sie eine Sitzung, um SQL sie an eine Datenquelle zu senden. Ersetzen Sie im folgenden Beispiel server_name durch den Namen des Servers, den Sie in Schritt 1 für den Verbund erstellt haben.

    set passthru server_name;
  2. Erstellen Sie eine neue Tabelle. Ersetzen Sie im folgenden Beispiel column_name, data_type, und value durch die entsprechenden Elemente für Ihre Tabelle.

    create table table_name ( column_name data_type(value), column_name data_type(value);

    Weitere Informationen finden Sie in der CREATETABLEErklärung IBM Db2 -Dokumentation.

  3. Erstellen Sie einen Index, fügen Sie Werte für Zeilen in die Tabelle ein und setzen Sie die Verbindung zurück. Beim Zurücksetzen der Verbindung wird die Verbindung unterbrochen, die Back-End-Prozesse werden jedoch beibehalten. Ersetzen Sie im folgenden Beispiel index_name, table_name, column_name, und columnx_value mit Ihren Informationen.

    create index index_name on table_name(column_name); insert into table_name values(column1_value,column2_value,column3_value); insert into table_name values(column1_value,column2_value,column3_value); set passthru reset; connect reset;
  4. Stellen Sie eine Connect zu Ihrer Remote-Db2-Datenbank her, erstellen Sie einen Spitznamen für Ihren Remoteserver und führen Sie Operationen aus. Wenn Sie mit dem Zugriff auf Daten in der Remote-Db2-Datenbank fertig sind, setzen Sie die Verbindung zurück und beenden Sie sie dann. Ersetzen Sie im folgenden Beispiel database_name durch den Namen Ihrer entfernten Db2-Datenbank. Ersetzen nickname mit einem Namen. Ersetzen server_name and table_name mit dem Namen des Remoteservers und der Tabelle auf dem Server, auf dem Sie Operationen ausführen möchten. Ersetzen username mit den Informationen für Ihren Remoteserver. Ersetzen sql_command mit der Operation, die auf dem Remoteserver ausgeführt werden soll.

    connect to database_name; create nickname nickname for server_name."username"."table_name"; select sql_command from nickname; connect reset; terminate;

Beispiel

Im folgenden Beispiel wird eine Passthrough-Sitzung erstellt, um Operationen auf dem Verbundserver zu ermöglichen. testdb10

Als Nächstes wird die Tabelle t1 mit drei Spalten mit unterschiedlichen Datentypen erstellt.

Anschließend erstellt das Beispiel den Index i1_t1 für drei Spalten in der Tabellet1. Anschließend fügt es zwei Zeilen mit Werten für diese drei Spalten ein und trennt dann die Verbindung.

Zuletzt stellt das Beispiel eine Verbindung mit der entfernten Db2-Datenbank her testdb2 und erstellt einen Spitznamen für die Tabelle auf t1 dem Verbundserver. testdb10 Es erstellt den Spitznamen mit dem Benutzernamen TESTUSER für diese Datenquelle. Ein SQL Befehl gibt alle Daten aus der Tabelle aust1. Das Beispiel trennt die Verbindung und beendet die Sitzung.

set passthru testdbl0; create table t1 ( c1 decimal(13,0), c2 char(200), c3 int); create index i1_t1 on t1(c3); insert into t1 values(1,'Test',1); insert into t1 values(2,'Test 2',2); connect reset; connect to testdb2; create nickname remote_t1 for testdbl0."TESTUSER"."T1"; select * from remote_t1; connect reset; terminate;

Heterogener Verband

Sie können einen heterogenen Verbund zwischen Ihrer RDS for Db2-Datenbank und anderen Datenquellen wie Oracle und Microsoft SQL Server einrichten. Eine vollständige Liste der Datenquellen, die Db2 LUW unterstützt, finden Sie auf der Support-Website unter Data Source Support Matrix of Federled in Db2 LUW V11.5. IBM

RDSfür Db2 unterstützt der heterogene Verbund die folgenden Elemente nicht:

  • Systemeigene Wrapper für die anderen Datenquellen

  • JDBCWrapper für die anderen Datenquellen

  • Verbindung zu Sybase-, Informix- und Teradata-Datenquellen, da für diese Datenquellen die Installation der Clientsoftware für Db2 erforderlich ist RDS

RDSfür Db2 gelten für einen heterogenen Verbund die folgenden Anforderungen:

Informationen zum Verbund mit Oracle finden Sie unter How to query Oracle by using Db2 Federation and the driver? ODBC auf der IBM Support-Website.

Weitere Informationen zu Datenquellen, die den Verbund unterstützen, finden Sie auf der Support-Website unter Data Source Support Matrix of Federled in Db2 LUW V11.5. IBM

Schritt 1: Erstellen Sie einen Wrapper ODBC

Erstellen Sie einen Wrapper, indem Sie den folgenden Befehl ausführen:

db2 "create wrapper odbc options( module '/home/rdsdb/sqllib/federation/odbc/lib/libodbc.so')"

Schritt 2: Erstellen Sie einen Verbundserver

Erstellen Sie einen Verbundserver, indem Sie den folgenden Befehl ausführen. Ersetzen Sie im folgenden Beispiel server_name durch den Namen des Servers, den Sie für den Verbund verwenden werden. Ersetzen wrapper_type mit dem entsprechenden Wrapper. Ersetzen db_version mit der Version Ihrer entfernten Datenbank. Ersetzen dns_name, port, und service_name mit den entsprechenden Werten für die entfernte Datenbank, zu der Sie eine Verbindung herstellen möchten.

db2 "create server server_name type wrapper_type version db_version options (HOST 'dns_name', PORT 'port', SERVICE_NAME 'service_name')“

Informationen zu Wrappertypen finden Sie auf der Support-Website unter Data Source Support Matrix of Federation Bundled in Db2 LUW V11.5. IBM

Beispiel

Im folgenden Beispiel wird ein Verbundserver für eine Oracle-Remote-Datenbank erstellt.

db2 "create server server1 type oracle_odbc version 12.1 options (HOST 'test1.amazon.com', PORT '1521', SERVICE_NAME 'pdborcl.amazon.com')“

Schritt 3: Erstellen Sie eine Benutzerzuordnung

Erstellen Sie eine Benutzerzuordnung, um Ihren Verbundserver mit Ihrem Datenquellenserver zu verknüpfen, indem Sie den folgenden SQL Befehl ausführen. Ersetzen Sie im folgenden Beispiel server_name durch den Namen des Remoteservers, auf dem Sie Operationen ausführen möchten. Dies ist der Server, den Sie in Schritt 2 erstellt haben. Ersetzen username and password mit Ihren Anmeldeinformationen für diesen Remoteserver.

create user mapping for user server server_name options (REMOTE_AUTHID 'username', REMOTE_PASSWORD 'password');

Weitere Informationen finden Sie unter Benutzerzuordnungen im IBM Db2 -Dokumentation.

Schritt 4: Überprüfen Sie die Verbindung

Vergewissern Sie sich, dass die Einrichtung Ihres Verbunds erfolgreich war, indem Sie die Verbindung überprüfen. Öffnen Sie eine Sitzung, um mithilfe des SET PASSTHRU Befehls systemeigene SQL Befehle an Ihre Remote-Datenquelle zu senden, und erstellen Sie dann eine Tabelle auf dem Remote-Datenserver.

  1. Öffnen und schließen Sie eine Sitzung, um SQL sie an eine Datenquelle zu senden. Ersetzen Sie im folgenden Beispiel server_name durch den Namen des Servers, den Sie in Schritt 2 für den Verbund erstellt haben.

    set passthru server_name;
  2. Erstellen Sie eine neue Tabelle. Ersetzen Sie im folgenden Beispiel column_name, data_type, und value durch die entsprechenden Elemente für Ihre Tabelle.

    create table table_name ( column_name data_type(value), column_name data_type(value);

    Weitere Informationen finden Sie in der CREATETABLEErklärung IBM Db2 -Dokumentation.

  3. Erstellen Sie einen Index, fügen Sie Werte für Zeilen in die Tabelle ein und setzen Sie die Verbindung zurück. Beim Zurücksetzen der Verbindung wird die Verbindung unterbrochen, die Back-End-Prozesse werden jedoch beibehalten. Ersetzen Sie im folgenden Beispiel index_name, table_name, column_name, und columnx_value mit Ihren Informationen.

    create index index_name on table_name(column_name); insert into table_name values(column1_value,column2_value,column3_value); insert into table_name values(column1_value,column2_value,column3_value); set passthru reset; connect reset;
  4. Stellen Sie eine Connect zu Ihrer Remote-Db2-Datenbank her, erstellen Sie einen Spitznamen für Ihren Remoteserver und führen Sie Operationen aus. Wenn Sie mit dem Zugriff auf Daten in der Remote-Db2-Datenbank fertig sind, setzen Sie die Verbindung zurück und beenden Sie sie dann. Ersetzen Sie im folgenden Beispiel database_name durch den Namen Ihrer entfernten Db2-Datenbank. Ersetzen nickname mit einem Namen. Ersetzen server_name and table_name mit dem Namen des Remoteservers und der Tabelle auf dem Server, auf dem Sie Operationen ausführen möchten. Ersetzen username mit den Informationen für Ihren Remoteserver. Ersetzen sql_command mit der Operation, die auf dem Remoteserver ausgeführt werden soll.

    connect to database_name; create nickname nickname for server_name."username"."table_name"; select sql_command from nickname; connect reset; terminate;

Beispiel

Im folgenden Beispiel wird eine Passthrough-Sitzung erstellt, um Operationen auf dem Verbundserver zu ermöglichen. testdb10

Als Nächstes wird die Tabelle t1 mit drei Spalten mit unterschiedlichen Datentypen erstellt.

Anschließend erstellt das Beispiel den Index i1_t1 für drei Spalten in der Tabellet1. Anschließend fügt es zwei Zeilen mit Werten für diese drei Spalten ein und trennt dann die Verbindung.

Zuletzt stellt das Beispiel eine Verbindung mit der entfernten Db2-Datenbank her testdb2 und erstellt einen Spitznamen für die Tabelle auf t1 dem Verbundserver. testdb10 Es erstellt den Spitznamen mit dem Benutzernamen TESTUSER für diese Datenquelle. Ein SQL Befehl gibt alle Daten aus der Tabelle aust1. Das Beispiel trennt die Verbindung und beendet die Sitzung.

set passthru testdbl0; create table t1 ( c1 decimal(13,0), c2 char(200), c3 int); create index i1_t1 on t1(c3); insert into t1 values(1,'Test',1); insert into t1 values(2,'Test 2',2); connect reset; connect to testdb2; create nickname remote_t1 for testdbl0."TESTUSER"."T1"; select * from remote_t1; connect reset; terminate;