- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
DB2下数据转移任务操作实例
录入:edatop.com 点击:
使用别名在另一个数据库中创建表拷贝
除了可以在一个数据库中的表空间之间转移表之外,还可以在不同的数据库之间转移表。这意味着:通过使用 LOAD FROM CURSOR,也可以把表从一个数据库转移到另一个数据库。这可以通过两种方法完成:
方法 1 - 在目标数据库中,使用 DB2 的联邦数据库机制访问源数据库。
方法 2 - 使用 LOAD FROM CURSOR 命令的远程访问特性。
这两种方法各有优点,下面分别讨论。
方法1 使用 DB2 的联邦数据库机制
通过对源数据库执行联邦访问来复制表内容。方法 1 要求目标数据库被配置为联邦数据库。因此,对应的 DB2 实例的 FEDERATED 参数必须设置为 YES(UPDATE DBM CFG)。在修改 DBM CFG 参数 FEDERATED 之后,必须重新启动 DB2 实例(db2stop/db2start)。在这个示例场景中,源和目标数据库在同一个 DB2 实例中运行。创建一个名为 MYSAMPLE 的空数据库作为目标数据库。对于没有特殊需求的测试数据库,可以使用 CREATE DATABASE 命令创建此数据库,不需要其他选项。
清单 8. 在 DBM CFG 中启用联邦数据库支持并创建空的目标数据库 MYSAMPLE
与前面一样,必须在目标数据库 MYSAMPLE 中创建一个空表,它的结构与 SAMPLE 数据库中的 SALES 表相同。因此,应该使用 db2look 实用程序提取源数据库中 SALES 表的 DDL。
清单 9. 使用 db2look 实用程序提取源表 SALES 的 DDL
db2look 调用的结果是 sales.ddl 文件,其中包含 SALES 表的 CREATE TABLE 语句。如果在 SALES 表上定义了约束和/或索引,也会提取出对应的定义并写到 sales.ddl 文件中。清单 10 显示这些结果。
清单 10. db2look 调用的结果文件 sales.ddl
在对目标数据库 MYSAMPLE 执行 sales.ddl 文件中的语句之前,在文本编辑器中打开此文件并对生成的语句做两处修改:
在文件的开头,db2look 为源数据库 SAMPLE 生成 CONNECT 语句。因为希望对目标数据库 MYSAMPLE 执行下面的语句,所以要相应地修改 CONNECT 语句。
因为在目标数据库 MYSAMPLE 中没有用于存储用户数据的表空间 IBMDB2SAMPLREL,所以要把 CREATE TABLE 语句中的表空间名替换为 USERSPACE1。
清单 11. 结果文件 sales.ddl 中创建目标表所需的修改
在修改 sales.ddl 文件之后,通过调用 DB2 CLP (command line processor) 执行此脚本。
清单 12. 在 MYSAMPLE 数据库中创建目标表
到目前为止,只在目标数据库 MYSAMPLE 中创建了 SALES 表的空拷贝。准备数据转移操作的下一步是把源数据库 SAMPLE 编目为远程数据库。显然,这对于这个示例场景并不是必需的,因为源和目标数据库在同一个服务器上的同一个 DB2 实例中运行。但是在真实的环境中,必须对运行目标数据库的 DB2 实例执行以下 CATALOG 命令,从而允许对源数据库进行 TCP/IP 访问。
清单 13. 在节点和数据库目录中创建访问 SAMPLE 数据库所需的条目
准备 LOAD FROM CURSOR 操作的最后一步是配置对源数据库 SAMPLE 中 SALES 表的联邦访问。这需要在目标数据库 MYSAMPLE 中创建对另一个数据库执行联邦访问所需的几个特殊对象:
上一篇:10G
EPON
将在
FTTB/C/N
率先应用
下一篇:移动WiMAX产业链逐步完善
WiMAX终端已超百款