Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Federación de Amazon RDS para Db2

Modo de enfoque
Federación de Amazon RDS para Db2 - Amazon Relational Database Service

Puede usar su base de datos de Amazon RDS para Db2 como base de datos federada. Tras configurar la federación de RDS para Db2, podrá acceder a los datos de varias bases de datos de su base de datos de RDS para Db2 y consultarlos. La federación evita tener que migrar datos a su base de datos de RDS para Db2 o consolidar los datos en una única base de datos.

Al utilizar la base de datos de RDS para Db2 como base de datos federada, puede seguir accediendo a todas las características de RDS para Db2 y aprovechar varios Servicios de AWS, al mismo tiempo que mantiene los datos en distintas bases de datos. Puede configurar tanto una federación homogénea, que conecta diferentes bases de datos del mismo tipo, como una federación heterogénea, que conecta diferentes bases de datos de diferentes tipos.

Primero debe conectar la base de datos de Db2 de RDS para Db2 a bases de datos remotas. A continuación, puede ejecutar consultas en todas las bases de datos conectadas. Por ejemplo, puede ejecutar una instrucción JOIN de SQL que combine las tablas de su base de datos de RDS para Db2 con las tablas de una base de datos remota de Db2 en z/OS.

Federación homogénea

Puede configurar una federación homogénea entre su base de datos de RDS para Db2 y la siguiente familia de productos de Db2:

  • Db2 para Linux, UNIX y Windows (LUW)

  • Db2 iSeries

  • Db2 para z/OS

La federación homogénea de RDS para Db2 no admite las siguientes acciones:

  • Ejecución de comandos CATALOG para configurar un directorio de nodos y una base de datos remota en una base de datos de host de RDS para Db2

  • Configuración del equilibrio de carga de trabajo (WLB) al federarse a Db2 en z/OS

  • Configuración del archivo de configuración del controlador del servidor de datos de IBM (db2dsdriver.cfg)

La federación homogénea de RDS para Db2 tiene los siguientes requisitos:

Paso 1: creación de un contenedor de DRDA y un servidor federado

Para una federación homogénea, cree un contenedor DRDA y un servidor federado. La conexión al host remoto utiliza HOST, PORT y DBNAME.

Elija uno de los siguientes métodos según el tipo de base de datos de Db2 remota:

  • Base de datos Db2 para Linux, UNIX y Windows (LUX): ejecute los siguientes comandos de SQL. En el siguiente ejemplo, sustituya server_name por el nombre del servidor que utilizará para la federación. Sustituya db2_version por la versión de la base de datos de Db2 remota. Sustituya username y password por las credenciales de la base de datos remota de Db2 a la que desee conectarse. Sustituya db_name, dns_name y port por los valores correspondientes para la base de datos de Db2 remota a la que desee conectarse.

    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');

    Ejemplo

    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: ejecute los siguientes comandos de SQL. En el siguiente ejemplo, sustituya wrapper_name y library_name por un nombre para el contenedor DRDA y el archivo de biblioteca del contenedor. Sustituya server_name por el nombre del servidor que usará para la federación. Sustituya db2_version por la versión de la base de datos de Db2 remota. Sustituya username y password por las credenciales de la base de datos remota de Db2 a la que desee conectarse. Sustituya dns_name, port y db_name por los valores correspondientes para la base de datos de Db2 remota a la que desee conectarse.

    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');

    Ejemplo

    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 para z/OS: ejecute los siguientes comandos de SQL. En el siguiente ejemplo, sustituya wrapper_name y library_name por un nombre para el contenedor DRDA y el archivo de biblioteca del contenedor. Sustituya server_name por el nombre del servidor que usará para la federación. Sustituya db2_version por la versión de la base de datos de Db2 remota. Sustituya username y password por las credenciales de la base de datos remota de Db2 a la que desee conectarse. Sustituya dns_name, port y db_name por los valores correspondientes para la base de datos de Db2 remota a la que desee conectarse.

    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');

    Ejemplo

    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');

Paso 2: creación de un mapeo de usuario

Cree un mapeo de usuario para asociar su servidor federado a su servidor de origen de datos ejecutando el siguiente comando de SQL. En el siguiente ejemplo, sustituya server_name por el nombre del servidor remoto en el que desee realizar las operaciones. Este es el servidor que creó en el paso 1. Sustituya username y password por sus credenciales para este servidor remoto.

create user mapping for user server server_name options (REMOTE_AUTHID 'username', REMOTE_PASSWORD 'password');

Para obtener más información, consulte User mappings en la documentación de IBM Db2.

Paso 3: comprobación de la conexión

Compruebe la conexión para confirmar que la configuración de la federación se ha realizado correctamente. Abra una sesión para enviar comandos de SQL nativos a su origen de datos remoto mediante el comando SET PASSTHRU y, a continuación, cree una tabla en el servidor de datos remoto.

  1. Abra y cierre una sesión para enviar SQL a un origen de datos. En el siguiente ejemplo, sustituya server_name por el nombre del servidor que creó para la federación en el paso 1.

    set passthru server_name;
  2. Cree una nueva tabla. En el siguiente ejemplo, sustituya column_name, data_type y value por los elementos correspondientes de la tabla.

    create table table_name ( column_name data_type(value), column_name data_type(value);

    Para obtener más información, consulte CREATE TABLE statement en la documentación de IBM Db2.

  3. Cree un índice, inserte los valores de las filas en la tabla y restablezca la conexión. Al restablecer la conexión, se pierde la conexión, pero se conservan los procesos de backend. En el siguiente ejemplo, sustituya index_name, table_name, column_name y columnx_value por su información.

    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. Conéctese a su base de datos de Db2 remota, cree un apodo para su servidor remoto y realice operaciones. Cuando haya terminado de acceder a los datos de la base de datos remota de Db2, restablezca y, a continuación, finalice la conexión. En el ejemplo siguiente, sustituya database_name por el nombre de su base de datos de Db2 remota. Sustituya nickname por un nombre. Sustituya server_name y table_name por el nombre del servidor remoto y la tabla de ese servidor en los que quiera realizar operaciones. Sustituya username por la información de su servidor remoto. Sustituya sql_command por la operación que se va a realizar en el servidor remoto.

    connect to database_name; create nickname nickname for server_name."username"."table_name"; select sql_command from nickname; connect reset; terminate;

Ejemplo

El siguiente ejemplo crea una sesión de transferencia para permitir las operaciones en el servidor federado de testdb10.

Después, crea la tabla t1 con tres columnas con distintos tipos de datos.

A continuación, el ejemplo crea el índice i1_t1 en tres columnas de la tabla t1. Después, inserta dos filas con los valores de estas tres columnas y, a continuación, se desconecta.

Por último, el ejemplo se conecta a la base de datos remota de Db2 testdb2 y se crea un apodo para la tabla t1 en el servidor federado testdb10. Crea el apodo con el nombre de usuario TESTUSER de ese origen de datos. Un comando de SQL genera todos los datos de la tabla t1. El ejemplo desconecta y finaliza la sesión.

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;

Federación heterogénea

Puede configurar una federación heterogénea entre la base de datos de RDS para Db2 y otros orígenes de datos, como Oracle y Microsoft SQL Server. Para obtener una lista completa de los orígenes de datos compatibles con Db2 LUW, consulte Data Source Support Matrix of Federation Bundled in Db2 LUW V11.5 el sitio de soporte de IBM.

La federación heterogénea de RDS para Db2 no admite los siguientes elementos:

  • Contenedores nativos para los demás orígenes de datos

  • Contenedores JDBC para los demás orígenes de datos

  • Federación a orígenes de datos de Sybase, Informix y Teradata, porque estos orígenes de datos requieren la instalación del software cliente en RDS para Db2

La federación heterogénea de RDS para Db2 tiene los siguientes requisitos:

Para obtener información sobre la federación a Oracle, consulte How to query Oracle by using Db2 Federation and the ODBC driver? en el sitio de soporte de IBM.

Para obtener información sobre los orígenes de datos compatibles con la federación, consulte Data Source Support Matrix of Federation Bundled in Db2 LUW V11.5 el sitio de soporte de IBM.

Paso 1: creación de un contenedor de ODBC

Cree un contenedor ejecutando el siguiente comando:

db2 "create wrapper odbc options( module '/home/rdsdb/sqllib/federation/odbc/lib/libodbc.so')"

Paso 2: creación de un servidor federado

Cree un servidor federado ejecutando el siguiente comando. En el siguiente ejemplo, sustituya server_name por el nombre del servidor que utilizará para la federación. Sustituya wrapper_type por el contenedor apropiado. Sustituya db_version por la versión de la base de datos remota. Sustituya dns_name, port y db_name por los valores correspondientes para la base de datos remota a la que desee conectarse.

db2 "create server server_name type wrapper_type version db_version options (HOST 'dns_name', PORT 'port', SERVICE_NAME 'service_name')“

Para obtener información sobre los tipos de contenedores, consulte Data Source Support Matrix of Federation Bundled in Db2 LUW V11.5 el sitio de soporte de IBM.

Ejemplo

El siguiente ejemplo crea un servidor federado para una base de datos de Oracle remota.

db2 "create server server1 type oracle_odbc version 12.1 options (HOST 'test1.amazon.com', PORT '1521', SERVICE_NAME 'pdborcl.amazon.com')“

Paso 3: creación de un mapeo de usuario

Cree un mapeo de usuario para asociar su servidor federado a su servidor de origen de datos ejecutando el siguiente comando de SQL. En el siguiente ejemplo, sustituya server_name por el nombre del servidor remoto en el que desee realizar las operaciones. Este es el servidor que creó en el paso 2. Sustituya username y password por sus credenciales para este servidor remoto.

create user mapping for user server server_name options (REMOTE_AUTHID 'username', REMOTE_PASSWORD 'password');

Para obtener más información, consulte User mappings en la documentación de IBM Db2.

Paso 4: comprobación de la conexión

Compruebe la conexión para confirmar que la configuración de la federación se ha realizado correctamente. Abra una sesión para enviar comandos de SQL nativos a su origen de datos remoto mediante el comando SET PASSTHRU y, a continuación, cree una tabla en el servidor de datos remoto.

  1. Abra y cierre una sesión para enviar SQL a un origen de datos. En el siguiente ejemplo, sustituya server_name por el nombre del servidor que creó para la federación en el paso 2.

    set passthru server_name;
  2. Cree una nueva tabla. En el siguiente ejemplo, sustituya column_name, data_type y value por los elementos correspondientes de la tabla.

    create table table_name ( column_name data_type(value), column_name data_type(value);

    Para obtener más información, consulte CREATE TABLE statement en la documentación de IBM Db2.

  3. Cree un índice, inserte los valores de las filas en la tabla y restablezca la conexión. Al restablecer la conexión, se pierde la conexión, pero se conservan los procesos de backend. En el siguiente ejemplo, sustituya index_name, table_name, column_name y columnx_value por su información.

    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. Conéctese a su base de datos de Db2 remota, cree un apodo para su servidor remoto y realice operaciones. Cuando haya terminado de acceder a los datos de la base de datos remota de Db2, restablezca y, a continuación, finalice la conexión. En el ejemplo siguiente, sustituya database_name por el nombre de su base de datos de Db2 remota. Sustituya nickname por un nombre. Sustituya server_name y table_name por el nombre del servidor remoto y la tabla de ese servidor en los que quiera realizar operaciones. Sustituya username por la información de su servidor remoto. Sustituya sql_command por la operación que se va a realizar en el servidor remoto.

    connect to database_name; create nickname nickname for server_name."username"."table_name"; select sql_command from nickname; connect reset; terminate;

Ejemplo

El siguiente ejemplo crea una sesión de transferencia para permitir las operaciones en el servidor federado de testdb10.

Después, crea la tabla t1 con tres columnas con distintos tipos de datos.

A continuación, el ejemplo crea el índice i1_t1 en tres columnas de la tabla t1. Después, inserta dos filas con los valores de estas tres columnas y, a continuación, se desconecta.

Por último, el ejemplo se conecta a la base de datos remota de Db2 testdb2 y se crea un apodo para la tabla t1 en el servidor federado testdb10. Crea el apodo con el nombre de usuario TESTUSER de ese origen de datos. Un comando de SQL genera todos los datos de la tabla t1. El ejemplo desconecta y finaliza la sesión.

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;

En esta página

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.