DM数据库要从一个内网迁移到外网,数据库版本是一样的,请问系统有哪些参数需要做两边一致性检查才能保证数据导入成功呢。
dmp导出导入时,主要是CHARSET、CASE_SENSITIVE、LENGTH_IN_CHAR要保持一致,但是目前新版本已经取消LENGTH_IN_CHAR参数了。
如果是全库迁移可以整库备份还原,恢复后数据完全一样
dminit 初始化数据参数需要保持一致即可。
可以尝试把备份直接拷贝到外网服务器,只要外网服务器数据库版本高于等于内网即可,还原备份后什么都不需要变动。
右键选择【新建评估】,输入评估名称和评估描述,即可创建评估,如下图所示:
目前达梦迁移工具支持的迁移评估如下图所示:
以ORACLE迁移达梦评估为例:
输入数据源(Oracle数据库)的信息:主机名 (IP) 、端口,服务名(Oracle 默认服务名 ORCL),角色(默认),用户名和口令,要确认数据库信息正确,保持开启状态,Oracle监听已启动,然后点击【下一步】。如下图所示:
选择评估对象模式以及数据对象类型,点击【下一步】。
选择评估的模式,点击【下一步】。
选择评估的具体数据对象,点击【下一步】。
迁移评估对象详情总览,点击下一步。
点击【完成】,迁移评估开始,等待迁移评估结束,查看迁移报告。
评估报告选项如下:
点击“不兼容”,点击“详情”我们可以了解到具体不兼容原因,并进行修改,补充到“转换后SQL”模块中。
点击【修改】。
手动进行语法修改后,点击【校验】。
将修改后的SQL保存下来,后面迁移时可用,然后关闭。
5.3 创建迁移
右键选择【新建迁移】,输入迁移名称和迁移描述,即可创建迁移,如下图以ORACLE迁移到DM为例:
输入迁移名称:Oracle-DM,点击【确定】按钮,完成迁移的创建,如下图所示:
选中新建的迁移,即可查看迁移工具的欢迎界面,介绍了迁移工具的支持情况等信息,如下图所示:
5.3.1 选择数据源和目的库
在欢迎界面点击【下一步】,选择要迁移的方式,以Oracle迁移到DM数据库为例,如下图所示
输入数据源(Oracle数据库)的信息:主机名 (IP) 、端口,服务名(Oracle 默认服务名ORCL),角色(默认),用户名和口令,要确认数据库信息正确,保持开启状态,Oracle 监听已启动。如下图所示:
在创建连接Oracle数据库时,默认不需要修改驱动,如果迁移过程中报错提示有驱动相关的错误,建议通过指定驱动的方式来连接数据库,驱动可以在 Oracle官网获取与Oracle迁移版本相对应的驱动。
dts工具迁移时配置上这个,解决字符存储问题
建议检查源库与目标库的初始化参数是否一致,在进行迁移
-- 1.字符集
SELECT 'UNICODE字符集',DECODE(UNICODE,'0','0-GB18030','1','UTF-8','2','EUC-KR') union
-- 2.大小写敏感
SELECT 'CASE_SENSITIVE大小写敏感',DECODE(SF_GET_CASE_SENSITIVE_FLAG,'0','N-不敏感','1','Y-敏感')union
-- 3.char是否以字符为单位
SELECT 'LENGTH_IN_CHAR是否以字符为单位',DECODE(PARA_VALUE,0,'0-否',1,'1-是') FROM V$DM_INI WHERE "V$DM_INI".PARA_NAME='LENGTH_IN_CHAR' union
-- 4.页大小,DM建议32K
select 'page_size页大小',page()/1024||'KB' union
SELECT '簇大小',cast(SF_GET_EXTENT_SIZE() as varchar) union
-- 5. 兼容性
select 'COMPATIBLE_MODE数据库兼容',DECODE(PARA_VALUE,0,'不兼容',1,'1-SQL92',2,'2-Oracle',3,'3-MSSQLServer',4,'4-MySQL',5,'5-DM6',6,'6-Teradata') from v$dm_ini where para_name='COMPATIBLE_MODE' union
-- 6.其他,关键字,特殊参数
select 'EXCLUDE_RESERVED_WORDS关键字过滤',PARA_VALUE from v$dm_ini where para_name='EXCLUDE_RESERVED_WORDS' union
--7. 空格填充,Oracle兼容必选
select 'BLANK_PAD_MODE空格填充',PARA_VALUE from v$dm_ini where para_name LIKE '%BLANK_PAD_MODE%'

数据库实例初始化参数一致就可以