使用 INSERT 命令将数据从 Db2 导入到 Amazon RDS for Db2 - Amazon Relational Database Service

使用 INSERT 命令将数据从 Db2 导入到 Amazon RDS for Db2

您可以从自行管理的 Db2 服务器使用 INSERT 命令将您的数据插入到 Amazon RDS for Db2 数据库中。使用这种迁移方法,您可以为远程 RDS for Db2 数据库实例使用昵称。自行管理的 Db2 数据库(源)必须能够连接到 RDS for Db2 数据库(目标)。

重要

INSERT 命令方法对于迁移小型表很有用。如果自行管理的 Db2 数据库和 RDS for Db2 数据库之间的网络带宽有限,我们建议您使用不同的迁移方法。有关更多信息,请参阅 使用原生 Db2 工具将数据从 Db2 迁移到 Amazon RDS for Db2

将数据从自行管理的 Db2 数据库复制到 RDS for Db2 数据库
  1. 在自行管理的 Db2 实例上对 RDS for Db2 数据库实例进行编目。

    1. 对节点进行编目。在以下示例中,将 dns_ip_addressport 替换为自行管理的 Db2 数据库的 DNS 名称或 IP 地址和端口号。

      db2 catalog tcpip node remnode REMOTE dns_ip_address SERVER port
    2. 对数据库编目。在以下示例中,将 rds_database_name 替换为 RDS for Db2 数据库实例上的数据库名称。

      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 数据库实例创建表。

    1. 对节点进行编目。在以下示例中,将 dns_ip_addressport 替换为自行管理的 Db2 数据库的 DNS 名称或 IP 地址和端口号。

      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 数据库实例上的数据库名称。

      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. 映射两个数据库上的用户。在以下示例中,将 master_usernamemaster_password 替换为 RDS for Db2 数据库实例的凭证。

      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"