

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 db2look 將資料庫中繼資料從 Db2 複製到 Amazon RDS for Db2
<a name="db2-native-db2-tools-db2look"></a>

`db2look` 是一種原生 Db2 工具，可擷取資料定義語言 (DDL) 檔案、物件、授權、組態、WLM 和資料庫配置。您可以使用 `db2look` 將資料庫中繼資料從自我管理的 Db2 資料庫複製到 Amazon RDS for Db2 資料庫。如需詳細資訊，請參閱 IBM Db2 文件中的[使用 db2look 模擬資料庫](https://www.ibm.com/docs/en/db2/11.5?topic=tools-db2look)。

**複製資料庫中繼資料**

1. 在自我管理的 Db2 系統上執行 `db2look` 工具，以擷取 DDL 檔案。在下列範例中，將 *database\$1name* 取代為 Db2 資料庫的名稱。

   ```
   db2look -d database_name -e -l -a -f -wlm -cor -createdb -printdbcfg -o db2look.sql
   ```

1. 如果您的用戶端電腦可以存取來源 (自我管理的 Db2) 資料庫和 RDS for Db2 資料庫執行個體，則您可以直接連接到遠端執行個體，在用戶端電腦上建立 `db2look.sql` 檔案。然後為遠端自我管理 Db2 執行個體編製目錄。

   1. 為節點編製目錄。在下列範例中，將 *dns\$1ip\$1address* 和 *port* 取代為 DNS 名稱或 IP 位址，以及自我管理 Db2 資料庫的連接埠號碼。

      ```
      db2 catalog tcpip node srcnode REMOTE dns_ip_address server port
      ```

   1. 為資料庫編製目錄。在下列範例中，將 *source\$1database\$1name* 和 *source\$1database\$1alias* 取代為自我管理 Db2 資料庫的名稱，以及您要用於此資料庫的別名。

      ```
      db2 catalog database source_database_name as source_database_alias at node srcnode \ 
          authentication server_encrypt
      ```

   1. 連接至來源資料庫。在下列範例中，將 *source\$1database\$1alias*、*user\$1id* 和 *user\$1password* 取代為您在上一個步驟中建立的別名，以及自我管理 Db2 資料庫的使用者 ID 和密碼。

      ```
      db2look -d source_database_alias -i user_id -w user_password -e -l -a -f -wlm \
          -cor -createdb -printdbcfg -o db2look.sql
      ```

1. 如果您無法從用戶端電腦存取遠端自我管理 Db2 資料庫，請將 `db2look.sql` 檔案複製到用戶端電腦。然後為 RDS for Db2 資料庫執行個體編製目錄。

   1. 為節點編製目錄。在下列範例中，將 *dns\$1ip\$1address* 和 *port* 取代為 DNS 名稱或 IP 位址，以及 RDS for Db2 資料庫執行個體的連接埠號碼。

      ```
      db2 catalog tcpip node remnode REMOTE dns_ip_address server port
      ```

   1. 為資料庫編製目錄。在下列範例中，將 *rds\$1database\$1name* 和 *rds\$1database\$1alias* 取代為 RDS for Db2 資料庫的名稱，以及您要用於此資料庫的別名。

      ```
      db2 catalog database rds_database_name as rds_database_alias at node remnode \ 
          authentication server_encrypt
      ```

   1. 為管理 Db2 RDS 的管理員資料庫編製目錄。您無法使用此資料庫來存放任何資料。

      ```
      db2 catalog database rdsadmin as rdsadmin at node remnode authentication server_encrypt
      ```

1. 建立緩衝集區和資料表空間。管理員沒有建立緩衝集區或資料表空間的權限。不過，您可以使用 Amazon RDS 預存程序來建立這些項目。

   1. 尋找 `db2look.sql` 檔案中緩衝集區和資料表空間的名稱和定義。

   1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 Amazon RDS。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

      ```
      db2 connect to rdsadmin user master_username using master_password
      ```

   1. 呼叫 `rdsadmin.create_bufferpool` 來建立緩衝集區。如需詳細資訊，請參閱[rdsadmin.create\$1bufferpool](db2-sp-managing-buffer-pools.md#db2-sp-create-buffer-pool)。

      ```
      db2 "call rdsadmin.create_bufferpool(
          'database_name', 
          'buffer_pool_name', 
          buffer_pool_size, 
          'immediate', 
          'automatic', 
          page_size, 
          number_block_pages, 
          block_size)"
      ```

   1. 呼叫 `rdsadmin.create_tablespace` 來建立資料表空間。如需詳細資訊，請參閱[rdsadmin.create\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-create-tablespace)。

      ```
      db2 "call rdsadmin.create_tablespace(
          'database_name', 
          'tablespace_name',
          'buffer_pool_name', 
          tablespace_initial_size, 
          tablespace_increase_size, 
          'tablespace_type')"
      ```

   1. 針對您要新增的每個額外緩衝集區或資料表空間，重複步驟 c 或 d。

   1. 終止您的連線。

      ```
      db2 terminate
      ```

1. 建立資料表和物件。

   1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 RDS for Db2 資料庫。在下列範例中，將 *rds\$1database\$1name*、*master\$1username* 和 *master\$1password* 取代為您自己的資訊。

      ```
      db2 connect to rds_database_name user master_username using master_password
      ```

   1. 執行 `db2look.sql` 檔案。

      ```
      db2 -tvf db2look.sql
      ```

   1. 終止您的連線。

      ```
      db2 terminate
      ```