DataSync数据迁移Oracle11g_to_GaussDB100小结

举报
易宝风继续吹 发表于 2019/12/28 17:47:40 2019/12/28
【摘要】 DataSync简介 DataSync是GaussDB 100的数据迁移工具,致力于实现其他商业数据库和GaussDB 100 之间高效、安全的数据同步。支持从Sybase、Oracle、MySQL、GaussDB 100 V100R003C10和SQL Server迁移数据至GaussDB 100 V300R001数据库。 支持GaussDB 100 V100R00...

DataSync简介

DataSync是GaussDB 100的数据迁移工具,致力于实现其他商业数据库和GaussDB 100

之间高效、安全的数据同步。支持从Sybase、Oracle、MySQL、GaussDB 100

V100R003C10和SQL Server迁移数据至GaussDB 100 V300R001数据库。

支持GaussDB 100 V100R003C10在线迁移和SybaseOracleMySQL

GaussDB 100 V100R003C10SQL Server离线迁移两种数据迁移方式。

 

支持情况

1.DataSyncOracle支持自动创建主

键、外键、非空约束、索引和Range分区,以及全局临时表,其中外键约束子

句仅支持ON DELETE { CASCADE | SET NULL },不支持创建注释。

 

2.实验中发现多个表之间外键递归依赖时会报错(被依赖的表不存在),只能手动创建,若外键较多手动工作量会比较大,和研发沟通后了解到新版本DataSync加入了create_pk_and_index_after_import配置参数在导入数据后创建索引及主外键可以解决此问题,11月可能会对外发布,具体时间尚未确定。

 

3.DataSync不支持将源库的视图、存储过程、函数、序列、触发器、同名词同

步到目标库。

 

下表列举了目前已知DataSync对Oracle数据库对象的支持情况,建议在项目应用前先了解使用场景中的实际需求,对需要另行处理的额外工作量有所预估。

 

数据库对象

是否支持

新版本差异(预计11月发布)

主键


外键

是,但外键约束子

句仅支持ON DELETE { CASCADE | SET NULL },但被依赖的表要先于外键存在

使用create_pk_and_index_after_import配置参数在导入数据后创建,可以规避创建失败的错误

非空约束


索引


Range分区


全局临时表


注释


视图


存储过程


函数


序列


触发器


同义词


自定义类型


 

 

使用

安装

下载地址:https://support.huawei.com/carrier/navi?coltype=software#allProduct=true&col=software&path=PBI1-8132379/PBI1-8132381/PBI1-8132383/PBI1-9399774

选择Gauss100 OLTP V300R001C00SPC205——〉GAUSSDB100-V300R001C00-DATASYNC.tar.gz

 

填写下载申请:

版本使用原因:06入网测试

版本使用区域:研发使用

版本使用代表处:研发使用

版本相信信息说明:XXXX实验室使用,用于ISV产品和GaussDB数据库的对接和迁移测试

 

Linux上解压即可使用

注:需要工具部署的服务器能同时连接源数据库和目标数据库。

如果将工具部署到目标数据库所在服务器上,则需要以GaussDB 100数据库安装用

户运行迁移工具。

配置

Config目录下:

cfg.ini:flow_type导入/导出/导入并导出、源库、目标库、服务器

exp_onj.ini:用户迁移数据,只有部分库和表需要迁移时,则用户可以配置导出或导入这些库和表。此文件可以不配置。

    exclusive_obj.ini:不导入/不导出的库和表的配置

加密

需要对以下3个密码加密后再填写cfg.ini

java -jar DSS.jar -pwd <password type>, -password <password type>

password type:

1--export database

2--import database

3--import server

 

执行

java -jar DSS.jar -p config/cfg.ini -i config/exp_obj.ini -e config/exclusive_obj.ini

 
 DdlSync阶段常见错误:


1577526152191880.png

源库Oracle权限不足时,授予dba权限:如grant dba to lhy

若报错密码无效,重新加密

若报如下外键错误

[gaussdba@gaussdb01 DataSync]$ cat ./logs/reports_2019-10-31/16h-18m-37s/dss_error_log.log

2019-10-31 16:20:06 PM [Thread: main:89976 ][ Class:com.huawei.dss.envconvert.ddlvalidator.impl.DdlValidatorImpl >> Method: com.huawei.dss.envconvert.ddlvalidator.impl.DdlValidatorImpl.isCreateSuccess(DdlValidatorImpl.java:1086) ]

ERROR:[SYSMAN.MGMT_INV_FILE create foreign key] create error : com.huawei.gauss.exception.GaussException: [errorCode=GS-00650, SQLState='28000', reason='errLine = 0, errColumn = 0, errMsg=The column referenced by a foreign key was not the unique index or primary key of the referenced table,ioClient:@10b9db7b', sql=alter table LHY.MGMT_INV_FILE add constraint FILE_LAST_PATCH_FK foreign key(LAST_PATCH_GUID) references LHY.MGMT_INV_PATCH(PATCH_GUID), sessionId=180]

2019-10-31 16:20:07 PM [Thread: main:90877 ][ Class:com.huawei.dss.schedule.DssEntrance >> Method: com.huawei.dss.schedule.DssEntrance.main(DssEntrance.java:109) ]

 

找到references对应的表,在Oracle中查看DDL,手动在GaussDB100中创建,重新用DataSync导入,若还有这类错误,继续手动创建references所指被依赖的表

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。