

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

# 使用 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\_name}} 取代為 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\_ip\_address}} 和 {{port}} 取代為 DNS 名稱或 IP 位址，以及自我管理 Db2 資料庫的連接埠號碼。

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

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

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

   1. 連接至來源資料庫。在下列範例中，將 {{source\_database\_alias}}、{{user\_id}} 和 {{user\_password}} 取代為您在上一個步驟中建立的別名，以及自我管理 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\_ip\_address}} 和 {{port}} 取代為 DNS 名稱或 IP 位址，以及 RDS for Db2 資料庫執行個體的連接埠號碼。

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

   1. 為資料庫編製目錄。在下列範例中，將 {{rds\_database\_name}} 和 {{rds\_database\_alias}} 取代為 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\_username}} 和 {{master\_password}} 取代為您自己的資訊。

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

   1. 呼叫 `rdsadmin.create_bufferpool` 來建立緩衝集區。如需詳細資訊，請參閱[rdsadmin.create\_bufferpool](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\_tablespace](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\_database\_name}}、{{master\_username}} 和 {{master\_password}} 取代為您自己的資訊。

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

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

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

   1. 終止您的連線。

      ```
      db2 terminate
      ```