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:
-
Sie müssen den DRDA Wrapper im
UNFENCEDModus erstellen. Wenn Sie dies nicht tun, funktioniert der Verbund in RDS Db2 nicht. -
Sie müssen eingehenden und ausgehenden Datenverkehr von Ihrer RDS für DB2 Hostdatenbank zu Ihren Remote-Hostdatenbanken 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 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_namedurch den Namen des Servers, den Sie für den Verbund verwenden werden. Ersetzendb2_versionmit der Version Ihrer entfernten Db2-Datenbank. Ersetzenusernameandpasswordmit Ihren Anmeldeinformationen für die entfernte Db2-Datenbank, zu der Sie eine Verbindung herstellen möchten. Ersetzendb_name,dns_name, undportmit 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 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_nameandlibrary_namedurch einen Namen für Ihren DRDA Wrapper und die Wrapper-Bibliotheksdatei. Ersetzen server_namemit dem Namen des Servers, den Sie für den Verbund verwenden werden. Ersetzendb2_versionmit der Version Ihrer entfernten Db2-Datenbank. Ersetzenusernameandpasswordmit Ihren Anmeldeinformationen für die entfernte Db2-Datenbank, zu der Sie eine Verbindung herstellen möchten. Ersetzendns_name,port, unddb_namemit den entsprechenden Werten 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 for z/OS — Führen Sie die folgenden Befehle aus. SQL Ersetzen Sie im folgenden Beispiel
wrapper_nameandlibrary_namedurch einen Namen für Ihren DRDA Wrapper und die Wrapper-Bibliotheksdatei. Ersetzen server_namemit dem Namen des Servers, den Sie für den Verbund verwenden werden. Ersetzendb2_versionmit der Version Ihrer entfernten Db2-Datenbank. Ersetzenusernameandpasswordmit Ihren Anmeldeinformationen für die entfernte Db2-Datenbank, zu der Sie eine Verbindung herstellen möchten. Ersetzendns_name,port, unddb_namemit den entsprechenden Werten 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 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 serverserver_nameoptions (REMOTE_AUTHID 'username', REMOTE_PASSWORD 'password');
Weitere Informationen finden Sie unter Benutzerzuordnungen im
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.
-
Öffnen und schließen Sie eine Sitzung, um SQL sie an eine Datenquelle zu senden. Ersetzen Sie im folgenden Beispiel
server_namedurch 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_name,data_type, undvaluedurch die entsprechenden Elemente für Ihre Tabelle.create tabletable_name(column_namedata_type(value),column_namedata_type(value);Weitere Informationen finden Sie in der CREATETABLEErklärung
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_name,column_name, undcolumnx_valuemit Ihren 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 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_namedurch den Namen Ihrer entfernten Db2-Datenbank. Ersetzennicknamemit einem Namen. Ersetzenserver_nameandtable_namemit dem Namen des Remoteservers und der Tabelle auf dem Server, auf dem Sie Operationen ausführen möchten. Ersetzenusernamemit den Informationen für Ihren Remoteserver. Ersetzensql_commandmit der Operation, die 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 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
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:
-
RDSfür Db2 unterstützt nur die Wrapper-Methode. ODBC
-
Wenn Sie eine explizite Definition eines Wrappers erstellen, müssen Sie die Option auf setzen.
DB2_FENCED'N'Eine Liste der gültigen Wrapper-Optionen für finden Sie ODBC unter ODBCOptionenim IBM Db2 -Dokumentation. -
Sie müssen eingehenden und ausgehenden Datenverkehr von Ihrer RDS für DB2 Host-Datenbank 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 driver? ODBC
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
Themen
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 serverserver_nametypewrapper_typeversiondb_versionoptions (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
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 serverserver_nameoptions (REMOTE_AUTHID 'username', REMOTE_PASSWORD 'password');
Weitere Informationen finden Sie unter Benutzerzuordnungen im
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.
-
Öffnen und schließen Sie eine Sitzung, um SQL sie an eine Datenquelle zu senden. Ersetzen Sie im folgenden Beispiel
server_namedurch 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_name,data_type, undvaluedurch die entsprechenden Elemente für Ihre Tabelle.create tabletable_name(column_namedata_type(value),column_namedata_type(value);Weitere Informationen finden Sie in der CREATETABLEErklärung
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_name,column_name, undcolumnx_valuemit Ihren 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 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_namedurch den Namen Ihrer entfernten Db2-Datenbank. Ersetzennicknamemit einem Namen. Ersetzenserver_nameandtable_namemit dem Namen des Remoteservers und der Tabelle auf dem Server, auf dem Sie Operationen ausführen möchten. Ersetzenusernamemit den Informationen für Ihren Remoteserver. Ersetzensql_commandmit der Operation, die 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 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;