db2look を使用して Db2 から Amazon RDS for Db2 にデータベースメタデータをコピーする - Amazon Relational Database Service

db2look を使用して Db2 から Amazon RDS for Db2 にデータベースメタデータをコピーする

db2look は、データ定義言語 (DDL) ファイル、オブジェクト、認証、設定、WLM、およびデータベースレイアウトを抽出するネイティブ Db2 ツールです。db2look を使用して、セルフマネージド Db2 データベースから Amazon RDS for Db2 データベースにデータベースメタデータをコピーできます。詳細については、IBM Db2 ドキュメントの「Mimicking databases using db2look」を参照してください。

データベースメタデータをコピーするには
  1. セルフマネージド Db2 システムで db2look ツールを実行し、DDL ファイルを抽出します。次の例では、database_name を Db2 データベースの名前に置き換えます。

    db2look -d database_name -e -l -a -f -wlm -cor -createdb -printdbcfg -o db2look.sql
  2. クライアントマシンがソース (セルフマネージド Db2) データベースと RDS for Db2 DB インスタンスにアクセスできる場合は、リモートインスタンスに直接アタッチすることで、クライアントマシンで db2look.sql ファイルを作成できます。次に、リモートのセルフマネージド Db2 インスタンスをカタログ化します。

    1. ノードをカタログ化します。次の例では、dns_ip_addressport を、DNS 名または IP アドレス、セルフマネージド Db2 データベースのポート番号に置き換えます。

      db2 catalog tcpip node srcnode REMOTE dns_ip_address server port
    2. データベースをカタログ化します。次の例では、source_database_namesource_database_alias を、セルフマネージド Db2 データベースの名前と、このデータベースに使用するエイリアスに置き換えます。

      db2 catalog database source_database_name as source_database_alias at node srcnode \ authentication server_encrypt
    3. ソースデータベースにアタッチします。次の例では、source_database_aliasuser_iduser_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
  3. クライアントマシンからリモートのセルフマネージド Db2 データベースにアクセスできない場合は、db2look.sql ファイルをクライアントマシンにコピーします。 次に、RDS for Db2 DB インスタンスをカタログ化します。

    1. ノードをカタログ化します。次の例では、dns_ip_addressport を、DNS 名または IP アドレスと、RDS for Db2 DB インスタンスのポート番号に置き換えます。

      db2 catalog tcpip node remnode REMOTE dns_ip_address server port
    2. データベースをカタログ化します。次の例では、rds_database_namerds_database_alias を、RDS for Db2 データベースの名前と、このデータベースに使用するエイリアスに置き換えます。

      db2 catalog database rds_database_name as rds_database_alias at node remnode \ authentication server_encrypt
    3. RDS for Db2 を管理する管理データベースをカタログ化します。このデータベースを使用してデータを保存することはできません。

      db2 catalog database rdsadmin as rdsadmin at node remnode authentication server_encrypt
  4. バッファプールとテーブルスペースを作成します。管理者には、バッファプールまたはテーブルスペースを作成する権限がありません。ただし、Amazon RDS ストアドプロシージャを使用して作成することができます。

    1. db2look.sql ファイル内のバッファプールとテーブルスペースの名前と定義を見つけます。

    2. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して Amazon RDS に接続します。次の例では、master_usernamemaster_password をユーザー自身の情報に置き換えます。

      db2 connect to rdsadmin user master_username using master_password
    3. rdsadmin.create_bufferpool を呼び出してバッファプールを作成します。詳細については、「rdsadmin.create_bufferpool」を参照してください。

      db2 "call rdsadmin.create_bufferpool( 'database_name', 'buffer_pool_name', buffer_pool_size, 'immediate', 'automatic', page_size, number_block_pages, block_size)"
    4. rdsadmin.create_tablespace を呼び出してテーブルスペースを作成します。詳細については、「rdsadmin.create_tablespace」を参照してください。

      db2 "call rdsadmin.create_tablespace( 'database_name', 'tablespace_name', 'buffer_pool_name', tablespace_initial_size, tablespace_increase_size, 'tablespace_type')"
    5. 追加するバッファプールまたはテーブルスペースごとに、ステップ c または d を繰り返します。

    6. 接続を終了します。

      db2 terminate
  5. テーブルとオブジェクトを作成します。

    1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、RDS for Db2 データベースに接続します。次の例では、rds_database_namemaster_usernamemaster_password をユーザー自身の情報に置き換えます。

      db2 connect to rds_database_name user master_username using master_password
    2. db2look.sql ファイルを実行します。

      db2 -tvf db2look.sql
    3. 接続を終了します。

      db2 terminate