

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Amazon RDS untuk federasi Db2
<a name="db2-federation"></a>

Anda dapat menggunakan Amazon RDS untuk database Db2 sebagai database federasi. Setelah menyiapkan federasi untuk RDS untuk Db2, Anda akan dapat mengakses dan meminta data di beberapa database dari RDS Anda untuk database Db2. Federation menyelamatkan Anda dari kebutuhan untuk memigrasikan data ke RDS Anda untuk database Db2 atau mengkonsolidasikan data ke dalam satu database. 

Dengan menggunakan database RDS untuk Db2 Anda sebagai database federasi, Anda dapat terus mengakses semua fitur RDS untuk Db2 dan dapat memanfaatkan berbagai Layanan AWS, sambil menyimpan data Anda di database yang berbeda. Anda dapat mengatur federasi homogen yang menghubungkan database yang berbeda dari jenis yang sama, atau federasi heterogen yang menghubungkan database yang berbeda dari jenis yang berbeda.

Anda pertama kali menghubungkan database Db2 Anda di RDS untuk Db2 ke database jarak jauh. Kemudian Anda dapat menjalankan kueri terhadap semua database yang terhubung. Misalnya, Anda dapat menjalankan pernyataan SQL JOIN yang menggabungkan tabel di RDS Anda untuk database Db2 dengan tabel di Db2 jarak jauh pada database. z/OS 

**Topics**
+ [Federasi homogen](#db2-federation-homogeneous)
+ [Federasi heterogen](#db2-federation-heterogeneous)

## Federasi homogen
<a name="db2-federation-homogeneous"></a>

Anda dapat mengatur federasi homogen antara RDS Anda untuk database Db2 dan keluarga produk Db2 berikut:
+ Db2 untuk Linux, UNIX, Windows (LUW)
+ Db2 iSeries
+ Db2 untuk z/OS

RDS untuk federasi homogen Db2 tidak mendukung tindakan berikut:
+ Menjalankan `CATALOG` perintah untuk mengatur direktori node dan database jarak jauh pada RDS untuk database host Db2
+ Menyelesaikan Workload Balancing (WLB) saat federasi ke Db2 di z/OS
+ Mengkonfigurasi file konfigurasi driver server data IBM () `db2dsdriver.cfg`

RDS untuk federasi homogen Db2 memiliki persyaratan sebagai berikut:
+ Anda harus membuat pembungkus DRDA dalam `UNFENCED` mode. Jika tidak, maka federasi tidak akan berfungsi di RDS untuk Db2.
+ Anda harus mengizinkan lalu lintas masuk dan keluar dari RDS Anda untuk database host Db2 ke database host jarak jauh Anda. Untuk informasi selengkapnya, lihat [Memberikan akses ke instans DB di VPC Anda dengan membuat grup keamanan](CHAP_SettingUp.md#CHAP_SettingUp.SecurityGroup).

**Topics**
+ [Langkah 1: Buat pembungkus DRDA dan server federasi](#db2-federation-homogeneous-create)
+ [Langkah 2: Buat pemetaan pengguna](#db2-federation-homogeneous-map)
+ [Langkah 3: Periksa koneksi](#db2-federation-homogeneous-check)

### Langkah 1: Buat pembungkus DRDA dan server federasi
<a name="db2-federation-homogeneous-create"></a>

Untuk federasi homogen, buat pembungkus DRDA dan server federasi. Koneksi ke host jarak jauh menggunakan`HOST`,`PORT`, dan`DBNAME`. 

Pilih salah satu metode berikut berdasarkan jenis database Db2 jarak jauh Anda:
+ **Db2 untuk Linux, UNIX, dan Windows (LUX) database** - Jalankan perintah SQL berikut. Dalam contoh berikut, ganti *server\$1name* dengan nama server yang akan Anda gunakan untuk federasi. Ganti *db2\$1version* dengan versi database Db2 jarak jauh Anda. Ganti *username* dan *password* dengan kredensil Anda untuk database Db2 jarak jauh yang ingin Anda sambungkan. Ganti *db\$1name**dns\$1name*,, dan *port* dengan nilai yang sesuai untuk database Db2 jarak jauh yang ingin Anda sambungkan.

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

  **Contoh**

  ```
  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** - Jalankan perintah SQL berikut. Dalam contoh berikut, ganti *wrapper\$1name* dan *library\$1name* dengan nama untuk pembungkus DRDA Anda dan file pustaka [pembungkus](https://www.ibm.com/docs/en/db2/11.5?topic=wrapper-db2-library-files). Ganti *server\$1name* dengan nama server yang akan Anda gunakan untuk federasi. Ganti *db2\$1version* dengan versi database Db2 jarak jauh Anda. Ganti *username* dan *password* dengan kredensil Anda untuk database Db2 jarak jauh yang ingin Anda sambungkan. Ganti *dns\$1name**port*,, dan *db\$1name* dengan nilai yang sesuai untuk database Db2 jarak jauh yang ingin Anda sambungkan.

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

  **Contoh**

  ```
  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 untuk z/OS** - Jalankan perintah SQL berikut. Dalam contoh berikut, ganti *wrapper\$1name* dan *library\$1name* dengan nama untuk pembungkus DRDA Anda dan file pustaka [pembungkus](https://www.ibm.com/docs/en/db2/11.5?topic=wrapper-db2-library-files). Ganti *server\$1name* dengan nama server yang akan Anda gunakan untuk federasi. Ganti *db2\$1version* dengan versi database Db2 jarak jauh Anda. Ganti *username* dan *password* dengan kredensil Anda untuk database Db2 jarak jauh yang ingin Anda sambungkan. Ganti *dns\$1name**port*,, dan *db\$1name* dengan nilai yang sesuai untuk database Db2 jarak jauh yang ingin Anda sambungkan.

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

  **Contoh**

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

### Langkah 2: Buat pemetaan pengguna
<a name="db2-federation-homogeneous-map"></a>

Buat pemetaan pengguna untuk mengaitkan server federasi Anda dengan server sumber data Anda dengan menjalankan perintah SQL berikut. Dalam contoh berikut, ganti *server\$1name* dengan nama server jarak jauh dari yang Anda inginkan untuk melakukan operasi. Ini adalah server yang Anda buat di [langkah 1](#db2-federation-homogeneous-create). Ganti *username* dan *password* dengan kredensil Anda untuk server jarak jauh ini.

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

Untuk informasi selengkapnya, lihat [Pemetaan pengguna](https://www.ibm.com/docs/en/db2/11.5?topic=systems-user-mappings) dalam dokumentasi. IBM Db2

### Langkah 3: Periksa koneksi
<a name="db2-federation-homogeneous-check"></a>

Konfirmasikan bahwa pengaturan federasi Anda berhasil dengan memeriksa koneksi. Buka sesi untuk mengirim perintah SQL asli ke sumber data jarak jauh Anda menggunakan perintah SET PASSTHRU, lalu buat tabel di server data jarak jauh.

1. Buka dan tutup sesi untuk mengirimkan SQL ke sumber data. Dalam contoh berikut, ganti *server\$1name* dengan nama server yang Anda buat untuk federasi di langkah 1.

   ```
   set passthru server_name;
   ```

1. Buat tabel baru. Dalam contoh berikut, ganti*column\$1name*,*data\$1type*, dan *value* dengan item yang sesuai untuk tabel Anda.

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

    Untuk informasi selengkapnya, lihat [pernyataan CREATE TABLE](https://www.ibm.com/docs/en/db2-event-store/2.0.0?topic=statements-create-table) dalam IBM Db2 dokumentasi.

1. Buat indeks, masukkan nilai untuk baris ke dalam tabel, dan atur ulang koneksi. Menyetel ulang koneksi menjatuhkan koneksi tetapi mempertahankan proses back-end. Dalam contoh berikut, ganti*index\$1name*,*table\$1name*,*column\$1name*, dan *columnx\$1value* dengan informasi Anda. 

   ```
   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;
   ```

1. Hubungkan ke database Db2 jarak jauh Anda, buat nama panggilan untuk server jarak jauh Anda, dan lakukan operasi. Setelah Anda selesai mengakses data di database Db2 jarak jauh, atur ulang dan kemudian akhiri koneksi. Dalam contoh berikut, ganti *database\$1name* dengan nama database Db2 jarak jauh Anda. Ganti *nickname* dengan nama. Ganti *server\$1name* dan *table\$1name* dengan nama server dan tabel jarak jauh di server tempat Anda ingin melakukan operasi. Ganti *username* dengan informasi untuk server jarak jauh Anda. Ganti *sql\$1command* dengan operasi yang akan dilakukan di server jarak jauh.

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

**Contoh**

Contoh berikut membuat sesi pass-through untuk memungkinkan operasi pada server federasi. `testdb10` 

Selanjutnya, ia menciptakan tabel `t1` dengan tiga kolom dengan tipe data yang berbeda. 

Kemudian, contoh membuat indeks `i1_t1` pada tiga kolom dalam tabel`t1`. Setelah itu, ia menyisipkan dua baris dengan nilai untuk tiga kolom ini, dan kemudian terputus.

Terakhir, contoh terhubung ke database Db2 jarak jauh `testdb2` dan membuat nama panggilan untuk tabel ` t1` di server federasi. `testdb10` Ini menciptakan nama panggilan dengan nama pengguna `TESTUSER` untuk sumber data itu. Perintah SQL mengeluarkan semua data dari tabel. `t1` Contoh memutus dan mengakhiri sesi.

```
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;
```

## Federasi heterogen
<a name="db2-federation-heterogeneous"></a>

Anda dapat mengatur federasi heterogen antara RDS Anda untuk database Db2 dan sumber data lainnya seperti Oracle dan Microsoft SQL Server. Untuk daftar lengkap sumber data yang didukung Db2 LUW, lihat Data [Source Support Matrix of Federation Bundled in Db2 LUW V11.5 di](https://www.ibm.com/support/pages/data-source-support-matrix-federation-bundled-db2-luw-v115) situs IBM Support.

RDS untuk federasi heterogen Db2 tidak mendukung item berikut:
+ Pembungkus asli untuk sumber data lainnya
+ Pembungkus JDBC untuk sumber data lainnya
+ Federasi ke sumber data Sybase, Informix, dan Teradata karena sumber data ini memerlukan instalasi perangkat lunak klien pada RDS untuk Db2

RDS untuk federasi heterogen Db2 memiliki persyaratan sebagai berikut:
+ RDS untuk Db2 hanya mendukung metode pembungkus ODBC.
+ Jika Anda membuat definisi eksplisit dari pembungkus, maka Anda harus mengatur opsi `DB2_FENCED` ke. `'N'` Untuk daftar opsi pembungkus yang valid untuk ODBC, lihat [opsi ODBC dalam dokumentasi](https://www.ibm.com/docs/en/db2/11.5?topic=options-odbc). IBM Db2
+ Anda harus mengizinkan lalu lintas masuk dan keluar dari RDS Anda untuk database host Db2 ke database host jarak jauh Anda. Untuk informasi selengkapnya, lihat [Memberikan akses ke instans DB di VPC Anda dengan membuat grup keamanan](CHAP_SettingUp.md#CHAP_SettingUp.SecurityGroup).

Untuk informasi tentang federasi ke Oracle, lihat [Cara menanyakan Oracle dengan menggunakan Db2 Federation dan](https://www.ibm.com/support/pages/node/6431133) driver ODBC? di situs IBM Support.

Untuk informasi selengkapnya tentang sumber data yang mendukung federasi, lihat [Data Source Support Matrix of Federation Bundled in Db2 LUW V11.5](https://www.ibm.com/support/pages/node/957245) di situs IBM Support.

**Topics**
+ [Langkah 1: Buat pembungkus ODBC](#db2-federation-heteogenous-define-wrapper)
+ [Langkah 2: Buat server federasi](#db2-federation-heterogeneous-create)
+ [Langkah 3: Buat pemetaan pengguna](#db2-federation-heterogeneous-map)
+ [Langkah 4: Periksa koneksi](#db2-federation-heterogeneous-check)

### Langkah 1: Buat pembungkus ODBC
<a name="db2-federation-heteogenous-define-wrapper"></a>

Buat pembungkus dengan menjalankan perintah berikut:

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

### Langkah 2: Buat server federasi
<a name="db2-federation-heterogeneous-create"></a>

Buat server federasi dengan menjalankan perintah berikut. Dalam contoh berikut, ganti *server\$1name* dengan nama server yang akan Anda gunakan untuk federasi. Ganti *wrapper\$1type* dengan pembungkus yang sesuai. Ganti *db\$1version* dengan versi database jarak jauh Anda. Ganti *dns\$1name**port*,, dan *service\$1name* dengan nilai yang sesuai untuk database jarak jauh yang ingin Anda sambungkan. 

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

Untuk informasi tentang jenis pembungkus, lihat [Data Source Support Matrix of Federation Bundled in Db2 LUW V11.5](https://www.ibm.com/support/pages/node/957245) di situs IBM Support.

**Contoh**

Contoh berikut membuat server federasi untuk database Oracle jarak jauh.

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

### Langkah 3: Buat pemetaan pengguna
<a name="db2-federation-heterogeneous-map"></a>

Buat pemetaan pengguna untuk mengaitkan server federasi Anda dengan server sumber data Anda dengan menjalankan perintah SQL berikut. Dalam contoh berikut, ganti *server\$1name* dengan nama server jarak jauh dari yang Anda inginkan untuk melakukan operasi. Ini adalah server yang Anda buat di [langkah 2](#db2-federation-heterogeneous-create). Ganti *username* dan *password* dengan kredensialmu untuk server jarak jauh ini.

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

Untuk informasi selengkapnya, lihat [Pemetaan pengguna](https://www.ibm.com/docs/en/db2/11.5?topic=systems-user-mappings) dalam dokumentasi. IBM Db2

### Langkah 4: Periksa koneksi
<a name="db2-federation-heterogeneous-check"></a>

Konfirmasikan bahwa pengaturan federasi Anda berhasil dengan memeriksa koneksi. Buka sesi untuk mengirim perintah SQL asli ke sumber data jarak jauh Anda menggunakan perintah SET PASSTHRU, lalu buat tabel di server data jarak jauh.

1. Buka dan tutup sesi untuk mengirimkan SQL ke sumber data. Dalam contoh berikut, ganti *server\$1name* dengan nama server yang Anda buat untuk federasi di [langkah 2](#db2-federation-heterogeneous-create).

   ```
   set passthru server_name;
   ```

1. Buat tabel baru. Dalam contoh berikut, ganti*column\$1name*,*data\$1type*, dan *value* dengan item yang sesuai untuk tabel Anda.

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

    Untuk informasi selengkapnya, lihat [pernyataan CREATE TABLE](https://www.ibm.com/docs/en/db2-event-store/2.0.0?topic=statements-create-table) dalam IBM Db2 dokumentasi.

1. Buat indeks, masukkan nilai untuk baris ke dalam tabel, dan atur ulang koneksi. Menyetel ulang koneksi menjatuhkan koneksi tetapi mempertahankan proses back-end. Dalam contoh berikut, ganti*index\$1name*,*table\$1name*,*column\$1name*, dan *columnx\$1value* dengan informasi Anda. 

   ```
   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;
   ```

1. Hubungkan ke database Db2 jarak jauh Anda, buat nama panggilan untuk server jarak jauh Anda, dan lakukan operasi. Setelah Anda selesai mengakses data di database Db2 jarak jauh, atur ulang dan kemudian akhiri koneksi. Dalam contoh berikut, ganti *database\$1name* dengan nama database Db2 jarak jauh Anda. Ganti *nickname* dengan nama. Ganti *server\$1name* dan *table\$1name* dengan nama server dan tabel jarak jauh di server tempat Anda ingin melakukan operasi. Ganti *username* dengan informasi untuk server jarak jauh Anda. Ganti *sql\$1command* dengan operasi yang akan dilakukan di server jarak jauh.

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

**Contoh**

Contoh berikut membuat sesi pass-through untuk memungkinkan operasi pada server federasi. `testdb10` 

Selanjutnya, ia menciptakan tabel `t1` dengan tiga kolom dengan tipe data yang berbeda. 

Kemudian, contoh membuat indeks `i1_t1` pada tiga kolom dalam tabel`t1`. Setelah itu, ia menyisipkan dua baris dengan nilai untuk tiga kolom ini, dan kemudian terputus.

Terakhir, contoh terhubung ke database Db2 jarak jauh `testdb2` dan membuat nama panggilan untuk tabel ` t1` di server federasi. `testdb10` Ini menciptakan nama panggilan dengan nama pengguna `TESTUSER` untuk sumber data itu. Perintah SQL mengeluarkan semua data dari tabel. `t1` Contoh memutus dan mengakhiri sesi.

```
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;
```