Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Vous pouvez utiliser votre base de données Amazon RDS for Db2 en tant que base de données fédérée. Après avoir configuré la fédération RDS pour Db2, vous pourrez accéder aux données de plusieurs bases de données et les interroger à partir de votre base de données RDS pour DB2. La fédération vous évite d'avoir à migrer des données vers votre base de données RDS for DB2 ou à consolider les données dans une seule base de données.
En utilisant votre base de données RDS for Db2 en tant que base de données fédérée, vous pouvez continuer à accéder à toutes les fonctionnalités de RDS for DB2 et tirer parti de diverses Services AWS, tout en conservant vos données dans différentes bases de données. Vous pouvez configurer à la fois une fédération homogène qui connecte différentes bases de données du même type ou une fédération hétérogène qui connecte différentes bases de données de différents types.
Vous devez d'abord connecter votre base de données DB2 RDS pour Db2 à des bases de données distantes. Vous pouvez ensuite exécuter des requêtes sur toutes vos bases de données connectées. Par exemple, vous pouvez exécuter une SQL JOIN instruction qui joint des tables de votre base de données RDS for DB2 à des tables d'une base de données Db2 on z/OS distante.
Fédération homogène
Vous pouvez configurer une fédération homogène entre votre base de données RDS for Db2 et la famille de produits Db2 suivante :
-
DB2 pour LinuxUNIX, Windows () LUW
-
DB2 iSeries
-
Db2 pour z/OS
RDSpour DB2, la fédération homogène ne prend pas en charge les actions suivantes :
-
Exécution de
CATALOG
commandes pour configurer un répertoire de nœuds et une base de données distante sur une base de données hôte RDS pour DB2 -
Configuration de l'équilibrage de charge de travail (WLB) lors de la fédération vers DB2 sous z/OS
-
Configuration du fichier de configuration du pilote du serveur de IBM données (
db2dsdriver.cfg
)
RDSpour DB2, la fédération homogène répond aux exigences suivantes :
-
Vous devez créer le DRDA wrapper en
UNFENCED
mode. Si ce n'est pas le cas, la fédération ne fonctionnera pas RDS pour Db2. -
Vous devez autoriser le trafic entrant et sortant de votre RDS base de données hôte Db2 vers vos bases de données hôtes distantes. Pour de plus amples informations, veuillez consulter Donnez accès à votre instance de base VPC de données dans votre.
Rubriques
Étape 1 : créer un DRDA wrapper et un serveur fédéré
Pour une fédération homogène, créez un DRDA wrapper et un serveur fédéré. La connexion à l'hôte distant utilise HOST
PORT
, etDBNAME
.
Choisissez l'une des méthodes suivantes en fonction du type de votre base de données Db2 distante :
-
Base de données DB2 pour Linux et Windows (LUX) : exécutez les SQL commandes suivantes. UNIX Dans l'exemple suivant, remplacez
server_name
avec le nom du serveur que vous utiliserez pour la fédération. Remplacezdb2_version
avec la version de votre base de données Db2 distante. Remplacezusername
andpassword
avec vos informations d'identification pour la base de données Db2 distante à laquelle vous souhaitez vous connecter. Remplacezdb_name
,dns_name
, etport
avec les valeurs appropriées pour la base de données Db2 distante à laquelle vous souhaitez vous connecter.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
');Exemple
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 — Exécutez les SQL commandes suivantes. Dans l'exemple suivant, remplacez
wrapper_name
andlibrary_name
avec un nom pour votre DRDA wrapper et le fichier de bibliothèque de wrapper.Remplacez server_name
avec le nom du serveur que vous utiliserez pour la fédération. Remplacezdb2_version
avec la version de votre base de données Db2 distante. Remplacezusername
andpassword
avec vos informations d'identification pour la base de données Db2 distante à laquelle vous souhaitez vous connecter. Remplacezdns_name
,port
, etdb_name
avec les valeurs appropriées pour la base de données Db2 distante à laquelle vous souhaitez vous connecter.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
');Exemple
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 — Exécutez les commandes suivantesSQL. Dans l'exemple suivant, remplacez
wrapper_name
andlibrary_name
avec un nom pour votre DRDA wrapper et le fichier de bibliothèque de wrapper.Remplacez server_name
avec le nom du serveur que vous utiliserez pour la fédération. Remplacezdb2_version
avec la version de votre base de données Db2 distante. Remplacezusername
andpassword
avec vos informations d'identification pour la base de données Db2 distante à laquelle vous souhaitez vous connecter. Remplacezdns_name
,port
, etdb_name
avec les valeurs appropriées pour la base de données Db2 distante à laquelle vous souhaitez vous connecter.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
');Exemple
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');
Étape 2 : Création d'un mappage utilisateur
Créez un mappage utilisateur pour associer votre serveur fédéré à votre serveur de source de données en exécutant la SQL commande suivante. Dans l'exemple suivant, remplacez server_name
avec le nom du serveur distant sur lequel vous souhaitez effectuer des opérations. Il s'agit du serveur que vous avez créé à l'étape 1. Remplacez username
and password
avec vos informations d'identification pour ce serveur distant.
create user mapping for user server
server_name
options (REMOTE_AUTHID 'username
', REMOTE_PASSWORD 'password
');
Pour plus d'informations, consultez la section Mappages d'utilisateurs
Étape 3 : vérifier la connexion
Vérifiez que la configuration de votre fédération s'est bien déroulée en vérifiant la connexion. Ouvrez une session pour envoyer des SQL commandes natives à votre source de données distante à l'aide de la SET PASSTHRU commande, puis créez une table sur le serveur de données distant.
-
Ouvrez et fermez une session pour la soumettre SQL à une source de données. Dans l'exemple suivant, remplacez
server_name
avec le nom du serveur que vous avez créé pour la fédération à l'étape 1.set passthru
server_name
; -
Créez une nouvelle table. Dans l'exemple suivant, remplacez
column_name
,data_type
, etvalue
avec les éléments appropriés pour votre table.create table
table_name
(column_name
data_type
(value
),column_name
data_type
(value
);Pour plus d'informations, voir la CREATETABLEdéclaration
contenue dans le IBM Db2 . -
Créez un index, insérez des valeurs pour les lignes dans le tableau et réinitialisez la connexion. La réinitialisation de la connexion interrompt la connexion mais conserve les processus principaux. Dans l'exemple suivant, remplacez
index_name
,table_name
,column_name
, etcolumnx_value
avec vos informations.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; -
Connectez-vous à votre base de données Db2 distante, créez un surnom pour votre serveur distant et effectuez des opérations. Lorsque vous avez terminé d'accéder aux données de la base de données Db2 distante, réinitialisez puis mettez fin à la connexion. Dans l'exemple suivant, remplacez
database_name
avec le nom de votre base de données Db2 distante. Remplaceznickname
avec un nom. Remplacezserver_name
andtable_name
avec le nom du serveur distant et la table de ce serveur sur lequel vous souhaitez effectuer des opérations. Remplacezusername
avec les informations relatives à votre serveur distant. Remplacezsql_command
avec l'opération à effectuer sur le serveur distant.connect to
database_name
; create nicknamenickname
forserver_name
."username
"."table_name
"; selectsql_command
fromnickname
; connect reset; terminate;
Exemple
L'exemple suivant crée une session directe pour autoriser les opérations sur le serveur fédéré. testdb10
Ensuite, il crée la table t1
avec trois colonnes avec différents types de données.
Ensuite, l'exemple crée l'index i1_t1
sur trois colonnes de la tablet1
. Ensuite, il insère deux lignes contenant des valeurs pour ces trois colonnes, puis se déconnecte.
Enfin, l'exemple se connecte à la base de données Db2 distante testdb2
et crée un surnom pour la table sur t1
le serveur fédéré. testdb10
Il crée le surnom avec le nom d'utilisateur TESTUSER
pour cette source de données. Une SQL commande génère toutes les données de la tablet1
. L'exemple déconnecte et met fin à la session.
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;
Fédération hétérogène
Vous pouvez configurer une fédération hétérogène entre votre base de données RDS for Db2 et d'autres sources de données telles qu'Oracle et Microsoft SQL Server. Pour une liste complète des sources de données prises LUW en charge par Db2, consultez la Matrice de support des sources de données de la fédération fournie dans Db2 LUW V11.5
RDSpour DB2, la fédération hétérogène ne prend pas en charge les éléments suivants :
-
Wrappers natifs pour les autres sources de données
-
JDBCenveloppes pour les autres sources de données
-
Fédération avec les sources de données Sybase, Informix et Teradata, car ces sources de données nécessitent l'installation d'un logiciel client sur Db2 RDS
RDSpour DB2, la fédération hétérogène répond aux exigences suivantes :
-
RDScar Db2 ne prend en charge que la méthode ODBC wrapper.
-
Si vous créez une définition explicite d'un wrapper, vous devez définir l'option
DB2_FENCED
sur.'N'
Pour obtenir la liste des options d'encapsulation valides pourODBC, consultez ODBCles optionsdu IBM Db2 . -
Vous devez autoriser le trafic entrant et sortant de votre RDS base de données hôte Db2 vers votre base de données hôte distante. Pour de plus amples informations, veuillez consulter Donnez accès à votre instance de base VPC de données dans votre.
Pour plus d'informations sur la fédération avec Oracle, voir Comment interroger Oracle à l'aide de Db2 Federation et du ODBC pilote ?
Pour plus d'informations sur les sources de données qui prennent en charge la fédération, consultez la matrice de support des sources de données de la fédération fournie dans DB2 LUW V11.5 sur
Rubriques
Étape 1 : Création d'un ODBC wrapper
Créez un wrapper en exécutant la commande suivante :
db2 "create wrapper odbc options( module '/home/rdsdb/sqllib/federation/odbc/lib/libodbc.so')"
Étape 2 : Création d'un serveur fédéré
Créez un serveur fédéré en exécutant la commande suivante. Dans l'exemple suivant, remplacez server_name
avec le nom du serveur que vous utiliserez pour la fédération. Remplacez wrapper_type
avec l'emballage approprié. Remplacez db_version
avec la version de votre base de données distante. Remplacez dns_name
,
port
, et service_name
avec les valeurs appropriées pour la base de données distante à laquelle vous souhaitez vous connecter.
db2 "create server
server_name
typewrapper_type
versiondb_version
options (HOST 'dns_name
', PORT 'port
', SERVICE_NAME 'service_name
')“
Pour plus d'informations sur les types de wrapper, consultez la Matrice de support des sources de données de la fédération intégrée dans DB2 LUW V11.5
Exemple
L'exemple suivant crée un serveur fédéré pour une base de données Oracle distante.
db2 "create server server1 type oracle_odbc version 12.1 options (HOST 'test1.amazon.com', PORT '1521', SERVICE_NAME 'pdborcl.amazon.com')“
Étape 3 : Création d'un mappage utilisateur
Créez un mappage utilisateur pour associer votre serveur fédéré à votre serveur de source de données en exécutant la SQL commande suivante. Dans l'exemple suivant, remplacez server_name
avec le nom du serveur distant sur lequel vous souhaitez effectuer des opérations. Il s'agit du serveur que vous avez créé à l'étape 2. Remplacez username
and password
avec vos informations d'identification pour ce serveur distant.
create user mapping for user server
server_name
options (REMOTE_AUTHID 'username
', REMOTE_PASSWORD 'password
');
Pour plus d'informations, consultez la section Mappages d'utilisateurs
Étape 4 : Vérifiez la connexion
Vérifiez que la configuration de votre fédération s'est bien déroulée en vérifiant la connexion. Ouvrez une session pour envoyer des SQL commandes natives à votre source de données distante à l'aide de la SET PASSTHRU commande, puis créez une table sur le serveur de données distant.
-
Ouvrez et fermez une session pour la soumettre SQL à une source de données. Dans l'exemple suivant, remplacez
server_name
avec le nom du serveur que vous avez créé pour la fédération à l'étape 2.set passthru
server_name
; -
Créez une nouvelle table. Dans l'exemple suivant, remplacez
column_name
,data_type
, etvalue
avec les éléments appropriés pour votre table.create table
table_name
(column_name
data_type
(value
),column_name
data_type
(value
);Pour plus d'informations, voir la CREATETABLEdéclaration
contenue dans le IBM Db2 . -
Créez un index, insérez des valeurs pour les lignes dans le tableau et réinitialisez la connexion. La réinitialisation de la connexion interrompt la connexion mais conserve les processus principaux. Dans l'exemple suivant, remplacez
index_name
,table_name
,column_name
, etcolumnx_value
avec vos informations.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; -
Connectez-vous à votre base de données Db2 distante, créez un surnom pour votre serveur distant et effectuez des opérations. Lorsque vous avez terminé d'accéder aux données de la base de données Db2 distante, réinitialisez puis mettez fin à la connexion. Dans l'exemple suivant, remplacez
database_name
avec le nom de votre base de données Db2 distante. Remplaceznickname
avec un nom. Remplacezserver_name
andtable_name
avec le nom du serveur distant et la table de ce serveur sur lequel vous souhaitez effectuer des opérations. Remplacezusername
avec les informations relatives à votre serveur distant. Remplacezsql_command
avec l'opération à effectuer sur le serveur distant.connect to
database_name
; create nicknamenickname
forserver_name
."username
"."table_name
"; selectsql_command
fromnickname
; connect reset; terminate;
Exemple
L'exemple suivant crée une session directe pour autoriser les opérations sur le serveur fédéré. testdb10
Ensuite, il crée la table t1
avec trois colonnes avec différents types de données.
Ensuite, l'exemple crée l'index i1_t1
sur trois colonnes de la tablet1
. Ensuite, il insère deux lignes contenant des valeurs pour ces trois colonnes, puis se déconnecte.
Enfin, l'exemple se connecte à la base de données Db2 distante testdb2
et crée un surnom pour la table sur t1
le serveur fédéré. testdb10
Il crée le surnom avec le nom d'utilisateur TESTUSER
pour cette source de données. Une SQL commande génère toutes les données de la tablet1
. L'exemple déconnecte et met fin à la session.
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;