使用 db2look 将数据库元数据从 Db2 复制到 Amazon RDS for Db2 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 db2look 将数据库元数据从 Db2 复制到 Amazon RDS for Db2

db2look 是一款原生 Db2 工具,用于提取数据定义语言(DDL)文件、对象、授权、配置、WLM 和数据库布局。您可以使用 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 数据库实例,则可以通过直接连接到远程实例在客户端计算机上创建 db2look.sql 文件。然后对远程自行管理的 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
    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 数据库实例进行编目。

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

      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 数据库实例的主用户名和主密码连接到 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 数据库实例的主用户名和主密码连接到 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