Federazione Amazon RDS per Db2 - Amazon Relational Database Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Federazione Amazon RDS per Db2

Puoi usare il tuo database Amazon RDS for Db2 come database federato. Dopo aver configurato la federazione RDS per Db2, sarai in grado di accedere e interrogare i dati su più database dal tuo database RDS for Db2. La federazione ti evita di dover migrare i dati nel tuo database RDS for Db2 o di consolidare i dati in un unico database.

Utilizzando il database RDS for Db2 come database federato, è possibile continuare ad accedere a tutte le RDS funzionalità di Db2 e sfruttare diverse Servizi AWS, il tutto mantenendo i dati in database diversi. È possibile impostare sia una federazione omogenea che collega diversi database dello stesso tipo, sia una federazione eterogenea che collega diversi database di tipi diversi.

Per prima cosa connetti il tuo database Db2 RDS per Db2 a database remoti. Quindi puoi eseguire query su tutti i database collegati. Ad esempio, è possibile eseguire un'SQLJOINistruzione che unisce le tabelle del database RDS for Db2 con le tabelle di un database Db2 on z/OS remoto.

Federazione omogenea

Puoi configurare una federazione omogenea tra il tuo database RDS for Db2 e la seguente famiglia di prodotti Db2:

  • Db2 per Linux, UNIX Windows () LUW

  • Db2 iSeries

  • Db2 per z/OS

RDSper la federazione omogenea di Db2 non supporta le seguenti azioni:

  • Esecuzione di CATALOG comandi per configurare una directory di nodi e un database remoto su un database host RDS per Db2

  • Configurazione di Workload Balancing (WLB) durante la federazione a Db2 su z/OS

  • Configurazione del file di configurazione del driver del server di dati () IBM db2dsdriver.cfg

RDSper la federazione omogenea di Db2 sono presenti i seguenti requisiti:

Fase 1: Creare un DRDA wrapper e un server federato

Per una federazione omogenea, create un DRDA wrapper e un server federato. La connessione all'host remoto utilizzaHOST, e. PORT DBNAME

Scegliete uno dei seguenti metodi in base al tipo di database Db2 remoto:

  • Database Db2 per Linux e Windows (LUX): esegui i seguenti SQL comandi. UNIX Nell'esempio seguente, sostituisci server_name con il nome del server che utilizzerai per la federazione. Replace (Sostituisci) db2_version con la versione del tuo database Db2 remoto. Replace (Sostituisci) username e password con le tue credenziali per il database Db2 remoto a cui vuoi connetterti. Replace (Sostituisci) db_name, dns_namee port con i valori appropriati per il database Db2 remoto a cui vuoi connetterti.

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

    Esempio

    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 — Esegui i seguenti SQL comandi. Nell'esempio seguente, sostituisci wrapper_name e library_name con un nome per il DRDA wrapper e il file della libreria wrapper. Replace (Sostituisci) server_name con il nome del server che utilizzerai per la federazione. Replace (Sostituisci) db2_version con la versione del tuo database Db2 remoto. Replace (Sostituisci) username e password con le tue credenziali per il database Db2 remoto a cui desideri connetterti. Replace (Sostituisci) dns_name, porte db_name con i valori appropriati per il database Db2 remoto a cui vuoi connetterti.

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

    Esempio

    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 — Esegui i seguenti comandi. SQL Nell'esempio seguente, sostituisci wrapper_name e library_name con un nome per il DRDA wrapper e il file della libreria wrapper. Replace (Sostituisci) server_name con il nome del server che utilizzerai per la federazione. Replace (Sostituisci) db2_version con la versione del tuo database Db2 remoto. Replace (Sostituisci) username e password con le tue credenziali per il database Db2 remoto a cui desideri connetterti. Replace (Sostituisci) dns_name, porte db_name con i valori appropriati per il database Db2 remoto a cui vuoi connetterti.

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

    Esempio

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

Fase 2: Creare una mappatura utente

Crea una mappatura degli utenti per associare il tuo server federato al tuo server di origine dati eseguendo il comando seguente. SQL Nell'esempio seguente, sostituisci server_name con il nome del server remoto su cui si desidera eseguire le operazioni. Questo è il server che hai creato nel passaggio 1. Replace (Sostituisci) username e password con le tue credenziali per questo server remoto.

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

Per ulteriori informazioni, vedere Mappature degli utenti nella IBM Db2 documentazione.

Fase 3: Verificare la connessione

Verifica che la configurazione della federazione sia avvenuta correttamente controllando la connessione. Apri una sessione per inviare SQL comandi nativi all'origine dati remota utilizzando il SET PASSTHRU comando, quindi crea una tabella sul server di dati remoto.

  1. Apri e chiudi una sessione da inviare SQL a una fonte di dati. Nell'esempio seguente, sostituisci server_name con il nome del server creato per la federazione nel passaggio 1.

    set passthru server_name;
  2. Crea una nuova tabella. Nell'esempio seguente, sostituisci column_name, data_typee value con gli articoli appropriati per la tua tavola.

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

    Per ulteriori informazioni, si veda la CREATETABLEdichiarazione contenuta nel IBM Db2 documentazione.

  3. Create un indice, inserite i valori per le righe nella tabella e reimpostate la connessione. La reimpostazione della connessione interrompe la connessione ma mantiene i processi di back-end. Nell'esempio seguente, sostituisci index_name, table_name, column_namee columnx_value con le tue informazioni.

    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. Connect al database Db2 remoto, crea un nickname per il server remoto ed esegui operazioni. Quando hai finito di accedere ai dati nel database Db2 remoto, ripristina e quindi interrompi la connessione. Nell'esempio seguente, sostituisci database_name con il nome del database Db2 remoto. Replace (Sostituisci) nickname con un nome. Replace (Sostituisci) server_name e table_name con il nome del server remoto e della tabella su quel server su cui si desidera eseguire le operazioni. Replace (Sostituisci) username con le informazioni per il tuo server remoto. Replace (Sostituisci) sql_command con l'operazione da eseguire sul server remoto.

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

Esempio

L'esempio seguente crea una sessione pass-through per consentire le operazioni sul server federato. testdb10

Successivamente, crea la tabella t1 con tre colonne con diversi tipi di dati.

Quindi, l'esempio crea l'indice i1_t1 su tre colonne della tabellat1. Successivamente, inserisce due righe con valori per queste tre colonne e quindi si disconnette.

Infine, l'esempio si connette al database Db2 remoto testdb2 e crea un soprannome per la tabella t1 nel server federato. testdb10 Crea il nickname con il nome utente TESTUSER per quella fonte di dati. Un SQL comando restituisce tutti i dati della tabella. t1 L'esempio disconnette e termina la sessione.

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;

Federazione eterogenea

È possibile configurare una federazione eterogenea tra il database RDS for Db2 e altre fonti di dati come Oracle e Microsoft Server. SQL Per un elenco completo delle fonti di dati supportate da Db2, consulta Data Source LUW Support Matrix of Federation Bundled in Db2 LUW V11.5 sul sito di supporto. IBM

RDSper la federazione eterogenea di Db2 non supporta i seguenti elementi:

  • Wrapper nativi per le altre fonti di dati

  • JDBCwrapper per le altre fonti di dati

  • Federazione a sorgenti di dati Sybase, Informix e Teradata perché queste fonti di dati richiedono l'installazione del software client su Db2 RDS

RDSper la federazione eterogenea di Db2 sono presenti i seguenti requisiti:

Per informazioni sulla federazione con Oracle, vedi Come interrogare Oracle utilizzando Db2 Federation e il driver? ODBC sul sito IBM Support.

Per ulteriori informazioni sulle fonti di dati che supportano la federazione, consulta Data Source Support Matrix of Federation Bundled in Db2 LUW V11.5 sul sito di supporto. IBM

Fase 1: Creare un wrapper ODBC

Crea un wrapper eseguendo il seguente comando:

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

Fase 2: Creare un server federato

Creare un server federato eseguendo il comando seguente. Nell'esempio seguente, sostituisci server_name con il nome del server che utilizzerai per la federazione. Replace (Sostituisci) wrapper_type con l'apposito involucro. Replace (Sostituisci) db_version con la versione del tuo database remoto. Replace (Sostituisci) dns_name, porte service_name con i valori appropriati per il database remoto a cui desideri connetterti.

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

Per informazioni sui tipi di wrapper, vedere Data Source Support Matrix of Federation Bundled in Db2 LUW V11.5 sul sito di supporto. IBM

Esempio

L'esempio seguente crea un server federato per un database Oracle remoto.

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

Fase 3: Creare una mappatura degli utenti

Crea una mappatura degli utenti per associare il tuo server federato al tuo server di origine dati eseguendo il comando seguente. SQL Nell'esempio seguente, sostituisci server_name con il nome del server remoto su cui si desidera eseguire le operazioni. Questo è il server che hai creato nel passaggio 2. Replace (Sostituisci) username e password con le tue credenziali per questo server remoto.

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

Per ulteriori informazioni, vedere Mappature degli utenti nella IBM Db2 documentazione.

Fase 4: Verificare la connessione

Verifica che la configurazione della federazione sia avvenuta correttamente controllando la connessione. Apri una sessione per inviare SQL comandi nativi all'origine dati remota utilizzando il SET PASSTHRU comando, quindi crea una tabella sul server di dati remoto.

  1. Apri e chiudi una sessione da inviare SQL a una fonte di dati. Nell'esempio seguente, sostituisci server_name con il nome del server creato per la federazione nel passaggio 2.

    set passthru server_name;
  2. Crea una nuova tabella. Nell'esempio seguente, sostituisci column_name, data_typee value con gli articoli appropriati per la tua tavola.

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

    Per ulteriori informazioni, si veda la CREATETABLEdichiarazione contenuta nel IBM Db2 documentazione.

  3. Create un indice, inserite i valori per le righe nella tabella e reimpostate la connessione. La reimpostazione della connessione interrompe la connessione ma mantiene i processi di back-end. Nell'esempio seguente, sostituisci index_name, table_name, column_namee columnx_value con le tue informazioni.

    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. Connect al database Db2 remoto, crea un nickname per il server remoto ed esegui operazioni. Quando hai finito di accedere ai dati nel database Db2 remoto, ripristina e quindi interrompi la connessione. Nell'esempio seguente, sostituisci database_name con il nome del database Db2 remoto. Replace (Sostituisci) nickname con un nome. Replace (Sostituisci) server_name e table_name con il nome del server remoto e della tabella su quel server su cui si desidera eseguire le operazioni. Replace (Sostituisci) username con le informazioni per il tuo server remoto. Replace (Sostituisci) sql_command con l'operazione da eseguire sul server remoto.

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

Esempio

L'esempio seguente crea una sessione pass-through per consentire le operazioni sul server federato. testdb10

Successivamente, crea la tabella t1 con tre colonne con diversi tipi di dati.

Quindi, l'esempio crea l'indice i1_t1 su tre colonne della tabellat1. Successivamente, inserisce due righe con valori per queste tre colonne e quindi si disconnette.

Infine, l'esempio si connette al database Db2 remoto testdb2 e crea un soprannome per la tabella t1 nel server federato. testdb10 Crea il nickname con il nome utente TESTUSER per quella fonte di dati. Un SQL comando restituisce tutti i dati della tabella. t1 L'esempio disconnette e termina la sessione.

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;