达蒙数据库迁移

但使书种多,会有岁稔时。这篇文章主要讲述达蒙数据库迁移相关的知识,希望能为你提供帮助。

数据库迁移原数据库:ORACLE              新数据库版本:达蒙V8


数据库迁移整体思路:
按照迁移的顺序,先迁移表,然后再迁移数据、视图、存储过程、函数等。
oracle数据库向达蒙V8版本数据迁移
【达蒙数据库迁移】(1)准备工作:尽量使oracle与达蒙V8两者配置一致,并注意DM8一些地方可能和Oracle不相同,如varchar字段最大长度限制不同等,需提前知道。?
      (2)先把oracle得表空间都在DM上手动建出来?
create tablespace "TEST" datafile /dm/data/DMDB/TEST.DBF size 64 test on; ?
  (3)然后每个表空间,建出用户?
CREATE USER TEST IDENTIFIED BY TEST DEFAULT TABLESPACE TEST; ?
可以使用PL/SQL先把模式里,所有内容取出为sql,然后逐一执行,PL/SQL界面顶部:工具→导出用户对象.
1. 迁移表
打开DTS工具,点击新建工程,并创建迁移。




建议一个一个模式的迁移,这样出问题时处理起来会很方便。这里以单个模式迁移为例。只勾选表,其他不勾选,并把“目录”、“公共同义词”、“上下文”取消勾选,为了没有多余对象出现。选好后点击“下一步”。?

点击“选择”,将所有模式里所有对象全选。并点击“转换”。?

勾选表定义、主键、保留主键类型、表及字段注释,其他不勾选。?

记得勾选“应用当前选项到其他同类对象”,点击“选择”全部,然后“下一步”。?

审阅迁移任务,看情况点击“下一步”或 “完成”,执行表结构的迁移。?
2.迁数据
表结构迁移好后,再迁移数据。同理,按照“3.迁移表”走到勾选模式的位置,也是同样的设置方法,点击“下一步”。


点击“选择”,并点击“转换”,勾选“数据”,启用标志列插入、显示行数、拷贝记录。如果之前迁移过数据,那还可以勾选“删除后拷贝记录”。还可以看情况勾选并行导出,其他不勾选。记得勾选,应用当前选项到其他同类对象,并“选择”全部。


然后下一步进行迁移即可。迁移数据后可能会出现无效视图等报错,先记录,后续会再迁一次。此时可以在左侧栏“迁移”处,右键,新建迁移,创建新的工程继续迁移其他内容。后续同样问题,依然可以用此方法。
3.迁约束、索引
数据迁移后,再迁移约束、索引。同理,按照“3.迁移表”走到勾选模式的位置,也是同样的设置方法,点击“下一步”。?

点击“选择”,并点击“转换”,勾选“约束”,全勾,勾选“索引”,该选项无下级选项。记得勾选,应用当前选项到其他同类对象,并“选择”全部。?

然后下一步进行迁移即可。?
4.迁移视图?
约束、索引迁移后,再迁移视图。同理,按照“3.迁移表”走到勾选模式的位置,也是同样的设置方法,,但要勾选视图。点击“下一步。


点击“选择”,并点击“转换”,勾选,应用当前选项到其他同类对象,并“选择”全部,然后下一步进行迁移即可。迁移后的视图若有编译失败,可以使用“DM管理工具”(Manager)登录DM8,找到视图的对象,右键选择“编译”,对视图进行重新编译和调试。?
5.迁移存储过程/函数?
视图迁移后,再迁移存储过程/函数。同理,按照“3.迁移表”走到勾选模式的位置,也是同样的设置方法,但要勾选存储过程/函数,点击“下一步。?

点击“选择”,并点击“转换”,勾选,应用当前选项到其他同类对象,并“选择”全部,然后下一步进行迁移即可。迁移后若有编译失败,可以使用“DM管理工具”(Manager)登录DM8,找到存储过程/函数的对象,右键选择“编译”,进行重新编译和调试。?
6.迁移自定义类型?
存储过程/函数迁移后,再迁移自定义类型。同理,按照“3.迁移表”走到勾选模式的位置,也是同样的设置方法,但要勾选自定义类型,点击“下一步。?


点击“选择”,并点击“转换”,勾选,应用当前选项到其他同类对象,并“选择”全部,然后下一步进行迁移即可。迁移后若有编译失败,可以使用“DM管理工具”(Manager)登录DM8,找到自定义类型的对象,右键选择“编译”,进行重新编译和调试。?
7.迁移失败的数据、约束、索引?
也是按照上方步骤,将失败的重新进行迁移即可。记得勾选,应用当前选项到其他同类对象,并“选择”全部。?
8.迁移剩下的物化视图、序列、触发器、包、同义词?
也是按照上方步骤,将失败的重新进行迁移即可。记得勾选,应用当前选项到其他同类对象,并“选择”全部。?
9.验证数据?
可以使用如下语句查看模式下对象数量是否一致?
select owner,object_type,count(*) from all_objects group by owner,object_type order by 1; ?
至此,一个模式就迁移完成了,其他模式也是如此。?













    推荐阅读