Verbund für Amazon RDS für Db2 - 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.

Verbund für Amazon RDS für Db2

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

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

Zunächst verbinden Sie Ihre Db2-Datenbank in RDS für Db2 mit Remote-Datenbanken. Anschließend können Sie Abfragen in allen Ihre verbundenen Datenbanken durchfü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-Datenbank verknüpft. z/OS

Homogener Verbund

Sie können einen homogenen Verbund zwischen Ihrer Datenbank von RDS für Db2 und der folgenden Db2-Produktfamilie einrichten:

  • Db2 für Linux, UNIX, Windows (LUW)

  • Db2 iSeries

  • Db2 für z/OS

Der homogene Verbund von RDS für Db2 unterstützt folgende Aktionen nicht:

  • Ausführen von CATALOG-Befehlen zum Einrichten eines Knotenverzeichnisses und einer Remote-Datenbank in einer Host-Datenbank von RDS für Db2

  • Einrichten von Workload-Balancing (WLB) beim Verbund mit Db2 auf z/OS

  • Konfigurieren der IBM-Datenservertreiber-Konfigurationsdatei (db2dsdriver.cfg)

Der homogene Verbund von RDS für Db2 hat die folgenden Anforderungen:

Schritt 1: Erstellen eines DRDA-Wrapper und eines Verbundservers

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

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

  • Datenbank von Db2 für Linux, UNIX und Windows (LUX) – Führen Sie die folgenden SQL-Befehle aus. Im folgenden Beispiel server_name ersetzen Sie es durch den Namen des Servers, den Sie für den Verbund verwenden werden. db2_versionErsetzen Sie durch die Version Ihrer entfernten Db2-Datenbank. Ersetzen Sie username und password durch Ihre Anmeldeinformationen für die entfernte Db2-Datenbank, zu der Sie eine Verbindung herstellen möchten. Ersetzen Sie db_namedns_name, und port durch die entsprechenden Werte 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 und library_name durch einen Namen für Ihren DRDA-Wrapper und die Wrapper-Bibliotheksdatei. server_nameErsetzen Sie es durch den Namen des Servers, den Sie für den Verbund verwenden werden. db2_versionErsetzen Sie durch die Version Ihrer entfernten Db2-Datenbank. Ersetzen Sie username und password durch Ihre Anmeldeinformationen für die entfernte Db2-Datenbank, zu der Sie eine Verbindung herstellen möchten. Ersetzen Sie dns_nameport, und db_name durch die entsprechenden Werte 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 für z/OS – Führen Sie die folgenden SQL-Befehle aus. Ersetzen Sie im folgenden Beispiel wrapper_name und library_name durch einen Namen für Ihren DRDA-Wrapper und die Wrapper-Bibliotheksdatei. server_nameErsetzen Sie es durch den Namen des Servers, den Sie für den Verbund verwenden werden. db2_versionErsetzen Sie durch die Version Ihrer entfernten Db2-Datenbank. Ersetzen Sie username und password durch Ihre Anmeldeinformationen für die entfernte Db2-Datenbank, zu der Sie eine Verbindung herstellen möchten. Ersetzen Sie dns_nameport, und db_name durch die entsprechenden Werte 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 einer 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 Fremdservers, auf dem Sie Operationen ausführen möchten. Dies ist der Server, den Sie in Schritt 1 erstellt haben. Ersetzen Sie username und password durch Ihre 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 User mappings in der IBM Db2-Dokumentation.

Schritt 3: Überprüfen der Verbindung

Vergewissern Sie sich, dass die Einrichtung Ihres Verbunds erfolgreich war, indem Sie die Verbindung überprüfen. Öffnen Sie eine Sitzung, um native SQL-Befehle mit dem Befehl SET PASSTHRU 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 an eine Datenquelle zu senden. Im folgenden Beispiel server_name ersetzen Sie es 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_namedata_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 unter CREATE TABLE-Anweisung in der 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 Beispielindex_name, table_namecolumn_name, und columnx_value durch Ihre 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 Verbindung zu Ihrer Remote-Db2-Datenbank her, erstellen Sie einen Spitznamen für Ihren Remote-Server und führen Sie Operationen aus. Wenn Sie den Zugriff auf Daten in der Remote-Db2-Datenbank abgeschlossen haben, 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. Durch einen Namen nickname ersetzen. Ersetzen Sie server_name und table_name durch den Namen des Remoteservers und der Tabelle auf dem Server, auf dem Sie Operationen ausführen möchten. usernameErsetzen Sie es durch die Informationen für Ihren Remoteserver. sql_commandErsetzen Sie durch den Vorgang, der 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 testdb10 zu ermöglichen.

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 Tabelle t1. Dann 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 Remote-Db2-Datenbank testdb2 her und erstellt einen Spitznamen für die Tabelle t1 auf dem Verbundserver testdb10. Es erstellt den Spitznamen mit dem Benutzernamen TESTUSER für diese Datenquelle. Ein SQL-Befehl gibt alle Daten aus der Tabelle t1 aus. 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 Verbund

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

Der heterogene Verbund von RDS für Db2 unterstützt die folgenden Elemente nicht:

  • Native Wrapper für die anderen Datenquellen

  • JDBC-Wrapper für die anderen Datenquellen

  • Verbund mit Sybase-, Informix- und Teradata-Datenquellen, da für diese Datenquellen eine Clientsoftwareinstallation auf RDS für Db2 erforderlich ist

Der heterogene Verbund von RDS für Db2 hat die folgenden Anforderungen:

  • RDS für Db2 unterstützt nur die ODBC-Wrapper-Methode.

  • Wenn Sie eine explizite Definition eines Wrappers erstellen, müssen Sie die Option DB2_FENCED auf 'N' setzen. Eine Liste der gültigen Wrapper-Optionen für ODBC finden Sie in der IBM Db2-Dokumentation unter ODBC options.

  • Sie müssen eingehenden und ausgehenden Datenverkehr von Ihrer Host-Datenbank von RDS für Db2 zu Ihrer Remote-Host-Datenbank zulassen. Weitere Informationen finden Sie unter Ermöglichen des Zugriffs auf Ihre DB-Instance in der VPC durch Erstellen einer Sicherheitsgruppe.

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

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

Schritt 1: Erstellen eines ODBC-Wrappers

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 eines Verbundservers

Erstellen Sie einen Verbundserver, indem Sie den folgenden Befehl ausführen. Im folgenden Beispiel server_name ersetzen Sie es durch den Namen des Servers, den Sie für den Verbund verwenden werden. Ersetzen Sie es wrapper_type durch den entsprechenden Wrapper. db_versionErsetzen Sie durch die Version Ihrer entfernten Datenbank. Ersetzen Sie dns_nameport, und service_name durch die entsprechenden Werte 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 Wrapper-Typen finden Sie unter Data Source Support Matrix of Federation Bundled in Db2 LUW V11.5 auf der IBM-Support-Website.

Beispiel

Im folgenden Beispiel wird ein Verbundserver für eine Remote-Oracle-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 einer 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 Sie username und password durch Ihre 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 User mappings in der IBM Db2-Dokumentation.

Schritt 4: Überprüfen der Verbindung

Vergewissern Sie sich, dass die Einrichtung Ihres Verbunds erfolgreich war, indem Sie die Verbindung überprüfen. Öffnen Sie eine Sitzung, um native SQL-Befehle mit dem Befehl SET PASSTHRU 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 an eine Datenquelle zu senden. Im folgenden Beispiel server_name ersetzen Sie es 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_namedata_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 unter CREATE TABLE-Anweisung in der 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 Beispielindex_name, table_namecolumn_name, und columnx_value durch Ihre 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 Verbindung zu Ihrer Remote-Db2-Datenbank her, erstellen Sie einen Spitznamen für Ihren Remote-Server und führen Sie Operationen aus. Wenn Sie den Zugriff auf Daten in der Remote-Db2-Datenbank abgeschlossen haben, 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. Durch einen Namen nickname ersetzen. Ersetzen Sie server_name und table_name durch den Namen des Remoteservers und der Tabelle auf dem Server, auf dem Sie Operationen ausführen möchten. usernameErsetzen Sie es durch die Informationen für Ihren Remoteserver. sql_commandErsetzen Sie durch den Vorgang, der 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 testdb10 zu ermöglichen.

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 Tabelle t1. Dann 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 Remote-Db2-Datenbank testdb2 her und erstellt einen Spitznamen für die Tabelle t1 auf dem Verbundserver testdb10. Es erstellt den Spitznamen mit dem Benutzernamen TESTUSER für diese Datenquelle. Ein SQL-Befehl gibt alle Daten aus der Tabelle t1 aus. 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;