使用 db2look 将数据库元数据从 Db2 复制到 Amazon RDS for Db2
db2look
是一款原生 Db2 工具,用于提取数据定义语言(DDL)文件、对象、授权、配置、WLM 和数据库布局。您可以使用 db2look
将数据库元数据从自行管理的 Db2 数据库复制到 Amazon RDS for Db2 数据库。有关更多信息,请参阅 IBM Db2 文档中的 Mimicking databases using db2look
复制数据库元数据
-
在自行管理的 Db2 系统上运行
db2look
工具以提取 DDL 文件。在以下示例中,将database_name
替换为 Db2 数据库的名称。db2look -d
database_name
-e -l -a -f -wlm -cor -createdb -printdbcfg -o db2look.sql -
如果您的客户端计算机可以访问源(自行管理的 Db2)数据库和 RDS for Db2 数据库实例,则可以通过直接连接到远程实例在客户端计算机上创建
db2look.sql
文件。然后对远程自行管理的 Db2 实例进行编目。-
对节点进行编目。在以下示例中,将
dns_ip_address
和port
替换为自行管理的 Db2 数据库的 DNS 名称或 IP 地址和端口号。db2 catalog tcpip node srcnode REMOTE
dns_ip_address
serverport
-
对数据库编目。在以下示例中,将
source_database_name
和source_database_alias
替换为自行管理的 Db2 数据库的名称和要用于此数据库的别名。db2 catalog database
source_database_name
assource_database_alias
at node srcnode \ authentication server_encrypt -
连接到源数据库。在以下示例中,将
source_database_alias
、user_id
和user_password
替换为您在上一步中创建的别名以及自行管理的 Db2 数据库的用户 ID 和密码。db2look -d
source_database_alias
-iuser_id
-wuser_password
-e -l -a -f -wlm \ -cor -createdb -printdbcfg -o db2look.sql
-
-
如果您无法从客户端计算机访问远程自行管理的 Db2 数据库,请将
db2look.sql
文件复制到客户端计算机上。然后对 RDS for Db2 数据库实例进行编目。-
对节点进行编目。在以下示例中,将
dns_ip_address
和port
替换为 RDS for Db2 数据库实例的 DNS 名称或 IP 地址和端口号。db2 catalog tcpip node remnode REMOTE
dns_ip_address
serverport
-
对数据库编目。在以下示例中,将
rds_database_name
和rds_database_alias
替换为 RDS for Db2 数据库的名称和要用于此数据库的别名。db2 catalog database
rds_database_name
asrds_database_alias
at node remnode \ authentication server_encrypt -
对管理 RDS for Db2 的管理员数据库进行编目。您不能使用此数据库存储任何数据。
db2 catalog database rdsadmin as rdsadmin at node remnode authentication server_encrypt
-
-
创建缓冲池和表空间。管理员没有创建缓冲池或表空间的权限。但是,您可以使用 Amazon RDS 存储过程来创建它们。
-
在
db2look.sql
文件中查找缓冲池和表空间的名称和定义。 -
使用 RDS for Db2 数据库实例的主用户名和主密码连接到 Amazon RDS。在以下示例中,用您自己的信息替换
master_username
和master_password
。db2 connect to rdsadmin user
master_username
usingmaster_password
-
通过调用
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
)" -
通过调用
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
')" -
对要添加的每个其它缓冲池或表空间重复步骤 c 或 d。
-
终止连接。
db2 terminate
-
-
创建表和对象。
-
使用 RDS for Db2 数据库实例的主用户名和主密码连接到 RDS for Db2 数据库。在以下示例中,用您自己的信息替换
rds_database_name
、master_username
和master_password
。db2 connect to
rds_database_name
usermaster_username
usingmaster_password
-
运行
db2look.sql
文件。db2 -tvf db2look.sql
-
终止连接。
db2 terminate
-