场景
从ORACLE迁移数据至DM8的方法很多,常用的有DTS迁移工具、ETL工具,还可以通过DMHS同步,kettle工具,快速装载等诸多方式实现。
对于一些语法复杂度不高的应用系统,借助于DM8对ORACLE高程度的语法兼容性,通过DBLINK也可实现便捷的数据迁移、同步。
尤其是对于一些运维场景,需要从ORACLE增量更新数据到DM8库的,较为方便。
因此做个举例,记录参考。
前提
1.A库ORACLE和B库DM8,网络互通
2.有建库脚本(初始化数据库对象的整套sql)
3.搭建DM8到ORACLE的DBLINK
说明
DBLINK搭建
在之前的博文中,已经收集整理,这里直接引用:
https://mp.csdn.net/mp_blog/creation/editor/122689342
建库脚本
这里指的是,应用系统在新的环境部署时,初始化数据库对象的整套SQL脚本。
这个脚本之前对标ORACLE环境,在DM8环境基本也能成功执行。对于一般复杂度不高的应用系统,语法问题的可能性较低,即使有,稍有修改就可使用。(如果创建数据库对象时,如package、type、function等语法问题较多的,不适用此方法)
示例:
步骤
1.执行建库脚本
在DM8目标库中,执行建库脚本,创建和ORACLE一致的数据库对象。
2.创建DM8到ORACLE的DBLINK
具体步骤参考说明中的链接
3.清空DM8中的表
select 'truncate table "'||owner||'".'||table_name||';' from dba_tables where owner='DM-DW-PLATFORM';
复制
truncate table "DM-DW-PLATFORM".AGENT_INFO; truncate table "DM-DW-PLATFORM".ALERT_RULE; truncate table "DM-DW-PLATFORM".DB_ARCH; truncate table "DM-DW-PLATFORM".DB_DEADLOCK; truncate table "DM-DW-PLATFORM".DB_FILE_LOG; truncate table "DM-DW-PLATFORM".DB_INFO; truncate table "DM-DW-PLATFORM".DB_LOG; truncate table "DM-DW-PLATFORM".DB_SESSION_ACTIVE; truncate table "DM-DW-PLATFORM".DB_SESSION_COUNT; truncate table "DM-DW-PLATFORM".DB_SQL; truncate table "DM-DW-PLATFORM".DB_SQL_ANALYZE; truncate table "DM-DW-PLATFORM".DB_SQL_EXPLAIN; truncate table "DM-DW-PLATFORM".DB_STATS; truncate table "DM-DW-PLATFORM".DB_TABLESPACE; truncate table "DM-DW-PLATFORM".DB_TASK; truncate table "DM-DW-PLATFORM".DM_INI; truncate table "DM-DW-PLATFORM".DM_INI_ALTER; truncate table "DM-DW-PLATFORM".DM_INI_ALTER_DETAIL; truncate table "DM-DW-PLATFORM".DM_INI_FILE; truncate table "DM-DW-PLATFORM".MONITOR_PANEL_CUSTOM; truncate table "DM-DW-PLATFORM".MONITOR_SERVER; truncate table "DM-DW-PLATFORM".MONITOR_SWITCH;
复制
4.使用DBLINK,从ORACLE向DM8插入表数据
语法格式如下:
insert into "DM-DW-PLATFORM".T_DB_SQL_EXPLAIN select * from T_DB_SQL_EXPLAIN@link02 ; commit; insert into "DM-DW-PLATFORM".MONITOR_PANEL_CUSTOM select * from MONITOR_PANEL_CUSTOM@link02 ; commit; insert into "DM-DW-PLATFORM".T_NPARAM select * from T_NPARAM@link02 ; commit; insert into "DM-DW-PLATFORM".T_GINPARAM select * from T_GINPARAM@link02 ; commit; insert into "DM-DW-PLATFORM".T_INPARAM select * from T_INPARAM@link02 ; commit; insert into "DM-DW-PLATFORM".T_RGINPARAM select * from T_RGINPARAM@link02 ; commit; insert into "DM-DW-PLATFORM".T_OPTION select * from T_OPTION@link02 ; commit; insert into "DM-DW-PLATFORM".T_OPTIONSTRIKE select * from T_OPTIONSTRIKE@link02 ; commit; insert into "DM-DW-PLATFORM".T_RIKE select * from T_RIKE@link02 ; commit; insert into "DM-DW-PLATFORM".T_ONDTL select * from T_ONDTL@link02 ; commit; insert into "DM-DW-PLATFORM".T_DTL select * from T_DTL@link02 ; commit; insert into "DM-DW-PLATFORM".T_POSDTL select * from T_POSDTL@link02 commit;
复制
5.增量更新
只需修改步骤4中的select语句,增加where条件,过滤出增量数据,作为结果集插入DM8即可。如下:
insert into "DM-DW-PLATFORM".T_DB_SQL_EXPLAIN select * from T_DB_SQL_EXPLAIN@link02 where create_time>='20221021'; commit; insert into "DM-DW-PLATFORM".MONITOR_PANEL_CUSTOM select * from MONITOR_PANEL_CUSTOM@link02 where create_time>='20221021'; commit;
本文为达梦在线服务平台【与达梦同行】征文活动投稿文章,活动详情 【与达梦同行】 🏆🏆🏆 第一届达梦数据库技术征文大赛来啦!🚀🚀🚀 | 达梦技术社区
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。