分类:
2008-05-15 08:31:57
来源:赛迪网 作者:小乔 |
清单 11. 导入源数据集的命令示例
以下是引用片段:
db2move targetdbname
import -u
username
-p
password
如果数据量非常大,这个过程将会非常耗时。
7. 检查数据集导入过程日志,排除可能的错误。
导入完成后,你需要检查导入过程日志,查看有无错误发生。如果有错误,你需要找出解决方法,然后从步骤 5 重新开始。
8. 在目标系统执行数据系统对象定义语句
修改步骤 4 生成的 ddl 语句文件,去除文件前端的数据库连接语句,保存后执行如下命令:
清单12. 命令示例
以下是引用片段:
db2 connect to targetdbname
user
username
using
password
db2 -tvf ddlfile > createSchema.log
db2 connect reset
9.检查数据对象生成日志,排除可能的错误
通常你会发现有很多创建表的语句执行失败的记录,不要紧张,这是正常的,因为前面的步骤中已经生成了所有的用户表。所以检查的焦点应该放在其他数据库对象(如视图和触发器等)的生成语句上。 如果数据库非常复杂,可能需要非常细致的检查日志,以确保所有数据对象都正确创建。
10. 执行后期检查
通常,用户可能碰到两种需要处理的情况。其一,如果数据库系统中有用 Java 编写的存储过程,那么需要注册存储过程的外部程序包。命令示例如下:
清单 13. 命令示例
以下是引用片段:
db2 call sqlj.install_jar ('jar_url','jar_id')
db2 drop procedure procedurename
db2 create procedure procedurename
external name '
jar_id:
classname' language java parameter style DB2GENERAL FENCED modifies sql data
db2 grant execute on procedure procedurename to public
其二,如果表定义中有数据库管理的自动增长列,比如表定义语句含有 "GENERATED BY DEFAULT AS IDENTITY"。那么你需要更新这些列的起始计数。命令示例如下:
清单 14. 命令示例
以下是引用片段:
db2 alter table
tabname
alter column
colname
restart with
newstartnumber
这个 newstartnumber 的多少是要根据目前表中该列的最大值来定的,具体公式是 newstartnumber = currentmaxnumber + 1。
11. 配置应用程序,连接数据库,测试迁移是否成功。
上述就是完整的 db2 跨平台数据库迁移步骤,笔者使用的 db2 版本是 8.2。无论如何,数据库迁移是个复杂的问题,其中难免有些情况笔者未曾遇到,欢迎有过类似经验的高手指教和共同讨论。 |