当前位置: 网学 > 编程文档 > SQL SERVER > 正文

DB2 跨平台数据库迁移步骤和注意事项

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/19
下载{$ArticleTitle}原创论文样式
。对于数据库系统,通常都是先生成数据系统对象,如表,视图,触发器等,然后再导入数据集。而上述步骤中却是先导入数据集,然后再生成数据对象定义。 这能行的通吗?对于DB2来说,这完全行得通,因为db2move命令在导入数据集时,会自动生成表和索引。这样的顺序对于复杂数据对象定义的数据库迁移是唯一可行的顺序,因为复杂数据库中往往包含诸多复杂的数据约束语句, 它们会造成数据集导入时的种种问题。

  清单 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。无论如何,数据库迁移是个复杂的问题,其中难免有些情况笔者未曾遇到,欢迎有过类似经验的高手指教和共同讨论。

  • 上一篇资讯: Access之图像文件的存储
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号