总体架构
单进程多线程架构(进程名称dmhs_server)
源端主要线程:日志读、日志分析、日志发送、监听、调度管理
目标端主要线程:日志接收、日志执行、监听、调度管理
扩展功能模块: guard进程守护、stat监控统计、对比工具、WEB管理平台
主要技术特点
源端基于数据库日志分析进行增量数据捕获
目标端基于标准数据库接口进行增量数据应(ODBC、OCI接口)
以数据库事务为最小复制单位,确保复制数据的完整性和一致性
支持主流关系型数据库(DM系列、ORACLE系列、MySQL、PostgreSQL、DB2、SQL SERVER
支持多种软硬件平台、支持多种复制拓扑结构
支持断点续传、支持同步数据链路冗余
丰富的高级功能支持:文件转换、复杂拓扑、FTP架构、kafka支持、ETL支持
DMHS系统表
DMHS目标端在初始启动时,会在目标数据库中创建5张系统表
DMHS采用基于提交事务表的技术来保证复制事务的一致性(确定分析起始点、故障恢复)
提交事务表由DMHS自身进行维护,无需人工干预。此表是复制系统核心表,需要防止误删除
与提交事务表相关的两个控制参数
trxid_tables :设置提交事务表的个数,默认为1。避免提交事务表单表热点问题
trxid_table_depots: 仅适用于DM6,提交事务表是否分库创建
安装
支持命令行和图形化两种安装方式:
Linux环境
命令行方式: ./dmhs_V3.1.2_dm7_rev80312_rh6_64_20181024.bin -i
图形化方式: ./dmhs_V3.1.2_dm7_rev80312_rh6_64_20181024.bin
Windows环境
双击exe安装程序文件,根据安装向导提示完成安装过程。
配置捕获器准备工作:
1、DMHS配置需要设置管理端口号(mgr_port)和数据端口号(data_port),需要提供两个端口号,并确保可以使用。
2、在配置之前需要明确连接源端数据库的用户(db_user)及密码(db_pwd),该用户需要具有操作待同步表的权限。
3、确定是否有DDL同步需求,如果有,确定待同步的对象如表、视图、存储过程、函数、序列等,并且需要确定对象的操作如创建、删除、修改等。根据此同步需求设置ddl_mask参数值。
4、确定源端数据库的归档日志是否需要DMHS进行处理如删除、保留或转移。依据此需求设置clear_flag参数值。
5、确定需要进行数据同步的用户表(白名单及黑名单)及同步映射关系,并据此需求,完成filter及map元素项的参数值设置。
配置执行器准备工作:
1、准备执行器管理端口号(mgr_port)和数据端口号(data_port),需要提供两个端口号,并确保可以使用。
2、执行器中连接目标数据库的用户(db_user)及密码(db_pwd),该用户需要具有操作待同步表的权限。
DMHS的3种配置方式:
直接使用编辑器手动编辑dmhs.hs配置文件,文件位于bin目录下。
使用tool目录提供的配置助手图形化工具
使用WEB管理平台配置
将数据从Oracle数据库迁移到DM,通常采用DMHS同步方案
选择合理的迁移顺序:
先迁移表结构、再迁移表数据、最后迁移数据对象
对于数据量大的表单独迁移
对于大字段较多的表,需要修改批量的行数,以免造成迁移工具内存溢出。
表结构迁移时可能出现,无效的表名、标度大于精度等错误,统一迁移表结构再统一处理报错最方便。
数据迁移时,需要把数据量大的表区分出来,先迁移小表,再单独迁移大表。
Oracle归档保存时间有限,若数据量较大,可分批完成数据装载,单次装载时间不能超过归档保存时间,待实时同步将Oracle归档追平时可开始下一次装载
通过日志查看数据迁移时出现的报错,有表迁移失败需重新迁移。
当所有数据迁移完成后,可开启实时同步,开始增量数据迁移。
注意:需重点关注Oracle归档保存时间,如果开启实时同步时已经丢失,需重新装载全库数据。
文章
阅读量
获赞