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:
-
Sie müssen den DRDA-Wrapper im
UNFENCED-Modus erstellen. Andernfalls funktioniert der Verbund in RDS für Db2 nicht. -
Sie müssen eingehenden und ausgehenden Datenverkehr von Ihrer Host-Datenbank von RDS für Db2 zu Ihren Remote-Host-Datenbanken zulassen. Weitere Informationen finden Sie unter Ermöglichen des Zugriffs auf Ihre DB-Instance in der VPC durch Erstellen einer Sicherheitsgruppe.
Themen
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_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 Sieusernameundpassworddurch Ihre Anmeldeinformationen für die entfernte Db2-Datenbank, zu der Sie eine Verbindung herstellen möchten. Ersetzen Siedb_namedns_name, undportdurch 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 serverserver_nametype 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_nameundlibrary_namedurch 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 Sieusernameundpassworddurch Ihre Anmeldeinformationen für die entfernte Db2-Datenbank, zu der Sie eine Verbindung herstellen möchten. Ersetzen Siedns_nameport, unddb_namedurch die entsprechenden Werte für die entfernte Db2-Datenbank, zu der Sie eine Verbindung herstellen möchten.create wrapperwrapper_namelibrary 'library name' options(DB2_FENCED 'N'); create serverserver_nametype db2/mvs versiondb2_versionwrapperwrapper_nameauthorization "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_nameundlibrary_namedurch 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 Sieusernameundpassworddurch Ihre Anmeldeinformationen für die entfernte Db2-Datenbank, zu der Sie eine Verbindung herstellen möchten. Ersetzen Siedns_nameport, unddb_namedurch die entsprechenden Werte für die entfernte Db2-Datenbank, zu der Sie eine Verbindung herstellen möchten.create wrapperwrapper_namelibrary 'library_name' options(DB2_FENCED 'N'); create serverserver_nametype db2/mvs versiondb2_versionwrapperwrapper_nameauthorization "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 serverserver_nameoptions (REMOTE_AUTHID 'username', REMOTE_PASSWORD 'password');
Weitere Informationen finden Sie unter User mappings
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.
-
Öffnen und schließen Sie eine Sitzung, um SQL an eine Datenquelle zu senden. Im folgenden Beispiel
server_nameersetzen Sie es durch den Namen des Servers, den Sie in Schritt 1 für den Verbund erstellt haben.set passthruserver_name; -
Erstellen Sie eine neue -Tabelle. Ersetzen Sie im folgenden Beispiel
column_namedata_type, undvaluedurch die entsprechenden Elemente für Ihre Tabelle.create tabletable_name(column_namedata_type(value),column_namedata_type(value);Weitere Informationen finden Sie unter CREATE TABLE-Anweisung
in der IBM Db2-Dokumentation. -
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_namecolumn_name, undcolumnx_valuedurch Ihre Informationen.create indexindex_nameontable_name(column_name); insert intotable_namevalues(column1_value,column2_value,column3_value); insert intotable_namevalues(column1_value,column2_value,column3_value); set passthru reset; connect reset; -
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_namedurch den Namen Ihrer entfernten Db2-Datenbank. Durch einen Namennicknameersetzen. Ersetzen Sieserver_nameundtable_namedurch 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 todatabase_name; create nicknamenicknameforserver_name."username"."table_name"; selectsql_commandfromnickname; 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
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_FENCEDauf'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?
Informationen zu Datenquellen, die den Verbund unterstützen finden Sie unter Data Source Support Matrix of Federation Bundled in Db2 LUW V11.5
Themen
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 serverserver_nametypewrapper_typeversiondb_versionoptions (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
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 serverserver_nameoptions (REMOTE_AUTHID 'username', REMOTE_PASSWORD 'password');
Weitere Informationen finden Sie unter User mappings
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.
-
Öffnen und schließen Sie eine Sitzung, um SQL an eine Datenquelle zu senden. Im folgenden Beispiel
server_nameersetzen Sie es durch den Namen des Servers, den Sie in Schritt 2 für den Verbund erstellt haben.set passthruserver_name; -
Erstellen Sie eine neue -Tabelle. Ersetzen Sie im folgenden Beispiel
column_namedata_type, undvaluedurch die entsprechenden Elemente für Ihre Tabelle.create tabletable_name(column_namedata_type(value),column_namedata_type(value);Weitere Informationen finden Sie unter CREATE TABLE-Anweisung
in der IBM Db2-Dokumentation. -
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_namecolumn_name, undcolumnx_valuedurch Ihre Informationen.create indexindex_nameontable_name(column_name); insert intotable_namevalues(column1_value,column2_value,column3_value); insert intotable_namevalues(column1_value,column2_value,column3_value); set passthru reset; connect reset; -
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_namedurch den Namen Ihrer entfernten Db2-Datenbank. Durch einen Namennicknameersetzen. Ersetzen Sieserver_nameundtable_namedurch 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 todatabase_name; create nicknamenicknameforserver_name."username"."table_name"; selectsql_commandfromnickname; 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;