INSERT コマンドを使用して Db2 から Amazon RDS for Db2 にデータをインポートする - Amazon Relational Database Service

INSERT コマンドを使用して Db2 から Amazon RDS for Db2 にデータをインポートする

INSERT コマンドを使用して、セルフマネージド Db2 サーバーから Amazon RDS for Db2 データベースにデータを挿入できます。この移行アプローチでは、リモート RDS for Db2 DB インスタンスのニックネームを使用します。セルフマネージド Db2 データベース (ソース) は、RDS for Db2 データベース (ターゲット) に接続できる必要があります。

重要

INSERT コマンドメソッドは、小さなテーブルの移行に便利です。セルフマネージド Db2 データベースと RDS for Db2 データベース間のネットワーク帯域幅が制限されている場合は、別の移行アプローチを使用することをお勧めします。詳細については、「ネイティブ Db2 ツールを使用して Db2 から Amazon RDS for Db2 にデータを移行する」を参照してください。

セルフマネージド Db2 データベースから RDS for Db2 データベースにデータをコピーするには
  1. セルフマネージド Db2 インスタンスで RDS for Db2 DB インスタンスをカタログ化します。

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

      db2 catalog tcpip node remnode REMOTE dns_ip_address SERVER port
    2. データベースをカタログ化します。次の例では、rds_database_name を RDS for Db2 DB インスタンスのデータベースの名前に置き換えます。

      db2 catalog database rds_database_name as remdb at node remnode \ authentication server_encrypt
  2. セルフマネージド Db2 インスタンスでフェデレーションを有効にします。次の例では、source_database_name をセルフマネージド Db2 インスタンスのデータベースの名前に置き換えます。

    db2 update dbm cfg using FEDERATED YES source_database_name
  3. RDS for Db2 DB インスタンスでテーブルを作成します。

    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
  4. ソースデータベースにアタッチします。次の例では、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
  5. フェデレーションを設定し、セルフマネージド Db2 インスタンスの RDS for Db2 データベーステーブルのニックネームを作成します。

    1. ローカルデータベースに接続します。次の例では、source_database_name をセルフマネージド Db2 インスタンスのデータベースの名前に置き換えます。

      db2 connect to source_database_name
    2. Db2 データソースにアクセスするためのラッパーを作成します。

      db2 create wrapper drda
    3. フェデレーションデータベースでデータソースを定義します。次の例では、adminadmin_password をセルフマネージド Db2 インスタンスの認証情報に置き換えます。rds_database_name を RDS for Db2 DB インスタンスのデータベースの名前に置き換えます。

      db2 "create server rdsdb2 type DB2/LUW version '11.5.9.0' \ wrapper drda authorization "admin" password "admin_password" \ options( dbname 'rds_database_name', node 'remnode')"
    4. 2 つのデータベースのユーザーをマッピングします。次の例では、master_usernamemaster_password を RDS for Db2 DB インスタンスの認証情報に置き換えます。

      db2 "create user mapping for user server rdsdb2 \ options (REMOTE_AUTHID 'master_username', REMOTE_PASSWORD 'master_password')"
    5. RDS for Db2 サーバーへの接続を確認します。

      db2 set passthru rdsdb2
    6. リモート RDS for Db2 データベースのテーブルのニックネームを作成します。次の例では、NICKNAMETABLE_NAME をテーブルのニックネームとテーブルの名前に置き換えます。

      db2 create nickname REMOTE.NICKNAME for RDSDB2.TABLE_NAME.NICKNAME
  6. リモート RDS for Db2 データベースのテーブルにデータを挿入します。セルフマネージド Db2 インスタンスのローカルテーブルの select ステートメントでニックネームを使用します。次の例では、NICKNAMETABLE_NAME をテーブルのニックネームとテーブルの名前に置き換えます。

    db2 "INSERT into REMOTE.NICKNAME select * from RDS2DB2.TABLE_NAME.NICKNAME"