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:
-
CATALOG
Befehle 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
UNFENCED
Modus 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 Sie Zugriff auf Ihre DB-Instance in Ihrem, VPC indem Sie eine Sicherheitsgruppe erstellen.
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_name
durch den Namen des Servers, den Sie für den Verbund verwenden werden. Ersetzendb2_version
mit der Version Ihrer entfernten Db2-Datenbank. Ersetzenusername
andpassword
mit Ihren Anmeldeinformationen für die entfernte Db2-Datenbank, zu der Sie eine Verbindung herstellen möchten. Ersetzendb_name
,dns_name
, undport
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
andlibrary_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. Ersetzendb2_version
mit der Version Ihrer entfernten Db2-Datenbank. Ersetzenusername
andpassword
mit Ihren Anmeldeinformationen für die entfernte Db2-Datenbank, zu der Sie eine Verbindung herstellen möchten. Ersetzendns_name
,port
, unddb_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 serverserver_name
type db2/mvs versiondb2_version
wrapperwrapper_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
andlibrary_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. Ersetzendb2_version
mit der Version Ihrer entfernten Db2-Datenbank. Ersetzenusername
andpassword
mit Ihren Anmeldeinformationen für die entfernte Db2-Datenbank, zu der Sie eine Verbindung herstellen möchten. Ersetzendns_name
,port
, unddb_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 serverserver_name
type db2/mvs versiondb2_version
wrapperwrapper_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
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_name
durch den Namen des Servers, den Sie in Schritt 1 für den Verbund erstellt haben.set passthru
server_name
; -
Erstellen Sie eine neue Tabelle. Ersetzen Sie im folgenden Beispiel
column_name
,data_type
, undvalue
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. -
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_value
mit Ihren Informationen.create index
index_name
ontable_name
(column_name
); insert intotable_name
values(column1_value
,column2_value
,column3_value
); insert intotable_name
values(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_name
durch den Namen Ihrer entfernten Db2-Datenbank. Ersetzennickname
mit einem Namen. Ersetzenserver_name
andtable_name
mit dem Namen des Remoteservers und der Tabelle auf dem Server, auf dem Sie Operationen ausführen möchten. Ersetzenusername
mit den Informationen für Ihren Remoteserver. Ersetzensql_command
mit der Operation, die auf dem Remoteserver ausgeführt werden soll.connect to
database_name
; create nicknamenickname
forserver_name
."username
"."table_name
"; selectsql_command
fromnickname
; 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 Sie Zugriff auf Ihre DB-Instance in Ihrem, VPC indem Sie eine Sicherheitsgruppe erstellen.
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 server
server_name
typewrapper_type
versiondb_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
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
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_name
durch den Namen des Servers, den Sie in Schritt 2 für den Verbund erstellt haben.set passthru
server_name
; -
Erstellen Sie eine neue Tabelle. Ersetzen Sie im folgenden Beispiel
column_name
,data_type
, undvalue
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. -
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_value
mit Ihren Informationen.create index
index_name
ontable_name
(column_name
); insert intotable_name
values(column1_value
,column2_value
,column3_value
); insert intotable_name
values(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_name
durch den Namen Ihrer entfernten Db2-Datenbank. Ersetzennickname
mit einem Namen. Ersetzenserver_name
andtable_name
mit dem Namen des Remoteservers und der Tabelle auf dem Server, auf dem Sie Operationen ausführen möchten. Ersetzenusername
mit den Informationen für Ihren Remoteserver. Ersetzensql_command
mit der Operation, die auf dem Remoteserver ausgeführt werden soll.connect to
database_name
; create nicknamenickname
forserver_name
."username
"."table_name
"; selectsql_command
fromnickname
; 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;