
关键词DMDRS、达梦数据复制软件、DM8、GBase 8s、一对一数据同步、搭建部署、DMDPI驱动、ODBC驱动、归档日志、逻辑日志、DDL同步摘要本文以源数据库DM8、目标数据库GBase 8s为例介绍一对一数据同步场景中DMDRS的搭建流程主要步骤包括场景规划业务规划、网络规划、目录规划、设置DMDRS运行用户、设置环境变量源DMDRS添加DMDPI驱动文件路径目标DMDRS添加ODBC驱动文件路径、开启源数据库的归档和逻辑日志、配置DDL同步、配置DMDRS服务、运行DMDRS服务启动目标DMDRS服务、启动源DMDRS服务、启动源DMDRS服务中的CPT模块以及验证同步结果。配置文件中siteid为必配参数须确保源、目标DMDRS站点号唯一。以源数据库DM8和目标数据库GBase 8s为例介绍在一对一数据同步场景中DMDRS的搭建流程。1 场景规划业务规划数据同步场景中已部署两个数据库包括源数据库DM8192.168.20.24和目标数据库GBase 8s192.168.20.21现需通过搭建DMDRS将源数据库RESOURCES模式下所有表的全量数据和增量数据同步到目标数据库的gbasedbt用户下。源DMDRS捕获源数据库的数据将捕获到的数据发送到目标DMDRS。目标DMDRS将接收的数据同步到目标数据库。网络规划DMDRS服务IP地址和端口连接数据库说明源DMDRS192.168.20.24:5345源数据库 DM8 192.168.20.24:5236源DMDRS服务器需要安装DMDPI驱动与源数据库DM8连接。目标DMDRS192.168.20.21:5345目标数据库GBase 8s 192.168.20.21:9088目标DMDRS服务器需要安装ODBC驱动与目标数据库GBase 8s连接。目录规划源数据库、源DMDRS服务和目标DMDRS服务相关的目录规划如下表所示。目录类型目录名目录示例源数据库数据库归档文件目录/dm8/data/arch数据库DDL同步脚本目录/home/dmdrs/dmdrs5/bin/scripts源DMDRS服务安装目录/home/dmdrs/dmdrs5执行程序目录/home/dmdrs/dmdrs5/bin配置文件路径/home/dmdrs/dmdrs5/bin/cpt.xml服务脚本模板目录/home/dmdrs/dmdrs5/bin/service_template服务脚本目录/home/dmdrs/dmdrs5/binconsole远程控制工具/home/dmdrs/dmdrs5/bin/drcsl目标DMDRS服务安装目录/home/dmdrs/dmdrs5执行程序目录/home/dmdrs/dmdrs5/bin配置文件路径/home/dmdrs/dmdrs5/bin/exec.xml服务脚本模板目录/home/dmdrs/dmdrs5/bin/service_template服务脚本目录/home/dmdrs/dmdrs5/binconsole远程控制工具/home/dmdrs/dmdrs5/bin/drcsl2 设置DMDRS运行用户设置源DMDRS服务的运行用户对服务所在目录及子目录的读、写和执行权限并设置运行用户同数据库归档文件所在目录属同一用户组此用户组应对归档文件所在目录及子目录有读权限。设置目标DMDRS服务的运行用户对服务所在目录及子目录的读、写和执行权限。3 设置环境变量在源DMDRS服务器的环境变量中添加DMDPI驱动文件路径在目标DMDRS的服务器的环境变量中添加ODBC驱动文件路径。打开.bash_profile配置文件。$vi~/.bash_profile在.bash_profile配置文件末尾增加驱动路径。源DMDRS服务器环境变量中添加DMDPI驱动路径。exportLD_LIBRARY_PATHDMDPI驱动路径:$LD_LIBRARY_PATH目标DMDRS服务器环境变量中添加ODBC驱动路径。exportLD_LIBRARY_PATHODBC驱动路径:$LD_LIBRARY_PATH保存并退出vi编辑器使环境变量生效。$source~/.bash_profile查看环境变量是否设置成功。$echo$LD_LIBRARY_PATH4 开启源数据库的归档和逻辑日志使用动态配置的方式开启源数据库的归档和逻辑日志。挂载源数据库。SQLalterdatabasemount;开启源数据库归档模式。SQLalterdatabasearchivelog;源数据库添加归档日志配置项。SQLalterdatabaseaddarchivelogDEST/dm8/data/arch,TYPELOCAL,FILE_SIZE512,SPACE_LIMIT10240;开启源数据库。SQLalterdatabaseopen;配置源数据库逻辑日志。SQLcallsp_set_para_value(1,RLOG_APPEND_LOGIC,1);5 配置DDL同步使用触发器方式配置DDL同步。注意创建DDL触发器和辅助表时请使用具有DBA权限的用户。如果触发器或辅助表无效或缺失会导致DDL同步失败甚至会影响数据库。在源数据库执行“ddl_sql_dm8.sql”脚本创建触发器和辅助表脚本默认位置在DMDRS执行程序目录下的scripts子目录中。SQLsetdefineoff;SQLstartddl_sql_dm8.sql6 配置DMDRS服务介绍源DMDRS服务和目标DMDRS服务的配置方法。说明以下DMDRS服务的配置文件仅为示例在实际应用场景中请根据实际搭建环境修改配置文件中的参数配置具体的参数说明和其他功能参数配置请参见《DMDRS参考手册》。6.1 配置目标DMDRS服务在目标DMDRS服务的配置文件目录打开并修改exec.xml配置文件修改后配置文件如下所示。注意配置文件中的siteid为必配参数配置时请确保源DMDRS和目标DMDRS服务站点号的唯一性如果重复会造成链路中数据复制的混乱。?xml version1.0 encodingGB18030?drsbasemgr_port5345/mgr_portsiteid站点号/siteid/baseexecnameexec_gbase/namelogindbtypegbase8s/dbtypeserver192.168.20.21/gbaseserver/serverdriverGBase ODBC DRIVER/driverusergbasedbt/userpwdgbasedbt/pwdport9088/portdbnamegbasedbt/dbname/logintoggle_case1/toggle_case/exec/drs6.2 配置源DMDRS服务在源DMDRS服务的配置文件目录打开并修改cpt.xml配置文件修改后配置文件如下所示。注意配置文件中的siteid为必配参数配置时请确保源DMDRS和目标DMDRS服务站点号的唯一性如果重复会造成链路中数据复制的混乱。?xml version1.0 encodingGB18030?drsbasemgr_port5345/mgr_portsiteid站点号/siteid/basecptnamecpt_dm8/namelogindbtypedm8/dbtypeserver192.168.20.24/serveruserDMDRS/userpwdDMDRS/pwdport5236/port/loginsendip192.168.20.21/ipport5345/porttarget_nameexec_gbase/target_namemapitemRESOURCES.*gbasedbt.*/item/map/send/cpt/drs7 运行DMDRS服务按照服务的运行顺序启动目标DMDRS服务和源DMDRS服务。7.1 启动目标DMDRS服务将服务脚本模板TemplateService拷贝到服务脚本目录并修改服务脚本的名称为DrsService。$cpTemplateService../DrsService打开并修改DrsService服务脚本中的相关配置参数。$viDrsServiceINSTALL_HOME/home/dmdrs/dmdrs5PROG_DIR/home/dmdrs/dmdrs5/binCONF_PATH/home/dmdrs/dmdrs5/bin/exec.xmlEXEC_PROG_NAMEdrsvrSERVICE_TYPE_NAMEdrs server启动目标DMDRS服务。$ ./DrsService start7.2 启动源DMDRS服务将服务脚本模板TemplateService拷贝到服务脚本目录并修改服务脚本的名称为DrsService。$cpTemplateService../DrsService打开并修改DrsService服务脚本中的相关配置参数。$viDrsServiceINSTALL_HOME/home/dmdrs/dmdrs5PROG_DIR/home/dmdrs/dmdrs5/binCONF_PATH/home/dmdrs/dmdrs5/bin/cpt.xmlEXEC_PROG_NAMEdrsvrSERVICE_TYPE_NAMEdrs server启动源DMDRS服务。$ ./DrsService start7.3 启动源DMDRS服务中的CPT模块使用服务脚本启动服务后需要使用远程控制台对服务中的模块执行启动命令。启动控制台。$ ./drcsl cpt.xml连接源DMDRS服务。CSLconnect设置数据库当前最新的日志LSN作为日志解析的起始位置。如需指定归档文件作为起始位置请参考《DMDRS控制台命令手册》进行设置。CSLalter cpt_dm8setlsn启动源DMDRS服务中的CPT模块。CSLstart将源数据库中RESOURCES模式下所有的表添加同步添加后自动将源数据库表的全量数据装载到目标数据库装载完成后自动进行增量数据的同步。CSLalter cpt_dm8addtablesch.nameRESOURCES使用命令查看数据装载的监控信息具体命令请参见《DMDRS控制台命令手册》。8 验证同步结果在源数据库中RESOURCES模式下所有的表中分别插入数据如果插入的数据能正确地同步到目标数据库则表示数据同步成功。如果你在使用AI助手时想了解源数据库DM8到目标数据库GBase 8s一对一数据同步的DMDRS搭建流程场景规划、环境配置、服务配置与运行、验证同步结果这篇文章可以作为参考。