达梦数据复制软件DMDRS安装使用(MYSQL-->DM)

源端(MYSQL端)DMDRS安装

1、DMDRS部署

./dmdrs_rev191718_x86_rh6_64_20250619.bin -i

安装过程忽略,源端只需要安装代理即可

-----------安装组件-----------
请选择需要安装的组件
1.安装达梦数据融合管理平台
2.安装代理

2、my.cnf配置

设置MySQL数据库配置文件“my.ini”或“my.cnf”中server-id参数,设置log_bin参数值为mysql-bin,binlog_format参数值为row。当应用场景包含LOB数据的同步时,需要设置max_allowed_packet参数

[mysqld]
server-id=1
log_bin=mysql-bin
binlog_format=row
max_allowed_packet=100M

设置完需要重启数据库,如果一开始就设置过就不用重启了。

3、创建复制用户

CREATE USER 'DMDRS'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'Dmdrs@123.com';
GRANT PROCESS ON *.* TO 'DMDRS'@'%';
GRANT REPLICATION CLIENT ON *.* TO 'DMDRS'@'%';
GRANT SELECT ON *.* TO 'DMDRS'@'%';
GRANT LOCK TABLES ON *.* TO 'DMDRS'@'%';
flush privileges;

4、离线安装gcc-c++及相关依赖包

cd gcc
rpm -ivh *.rpm 

5、安装ODBC

tar -zxvf unixODBC-2.3.0.tar.gz
cd unixODBC-2.3.0
./configure
make && make install

6、配置ODBC

vi /usr/local/etc/odbcinst.ini
[MySQL ODBC 8.0 Driver]
Driver=/usr/local/lib/libmyodbc8a.so
UsageCount=3
vi /usr/local/etc/odbc.ini
[MYSQL]
Description = MYSQL ODBC DSN
Driver = MySQL ODBC 8.0 Driver
SERVER = 10.73.82.231
PORT = 3306
UID = DMDRS
PWD = Dmdrs@123.com
DATABASE=test
charset=utf8

7、测试是否正常

isql -v MYSQL
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+

8、安装MYSQL驱动

tar xvf mysql-connector-odbc-8.0.20-linux-glibc2.12-x86-64bit.tar.gz
cd mysql-connector-odbc-8.0.20-linux-glibc2.12-x86-64bit
cd lib
cp * /usr/local/lib
cd …/bin
cp * /usr/local/bin
myodbc-installer -a -d -n “MySQL ODBC 8.0 Driver” -t “Driver=/usr/local/lib/libmyodbc8w.so”
myodbc-installer -a -d -n “MySQL ODBC 8.0 Driver” -t “Driver=/usr/local/lib/libmyodbc8a.so”

如果安装数据库驱动报错 error while loading shared libraries: libodbc.so.2: cannot open shared object file: No such file or directory 解决办法: 做软链接

ln -sf libodbc.so.1.0.0 libodbc.so.2

9、环境变量配置

vi /etc/profile
添加
export LD_LIBRARY_PATH=/home/mysql/dmdrs5/bin/lib:/usr/local/lib:$LD_LIBRARY_PATH
source /etc/profile

配置完环境变量后需要进行校验确保已识别到对应的数据库驱动

cd /home/mysql/dmdrs5/bin
ldd libdbmysql.so
[mysql@middleware-231 bin]$ ldd libdbmysql.solinux-vdso.so.1 =>  (0x00007ffc012ed000)libc.so.6 => /lib64/libc.so.6 (0x00007fa9575d6000)libm.so.6 => /lib64/libm.so.6 (0x00007fa9572d4000)librt.so.1 => /lib64/librt.so.1 (0x00007fa9570cc000)libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa956eb0000)libdl.so.2 => /lib64/libdl.so.2 (0x00007fa956cac000)libdrpub.so => ./libdrpub.so (0x00007fa95541f000)libmysqlclient.so.18 => ./libmysqlclient.so.18 (0x00007fa954e04000)/lib64/ld-linux-x86-64.so.2 (0x00007fa957bcd000)libstdc++.so.6 => /home/mysql/dmdrs5/bin/lib/libstdc++.so.6 (0x00007fa957c62000)libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fa954bee000)

如果提示not fund则需要安装相应的库文件

10、配置dmdrs配置

cd /home/mysql/dmdrs5/bin/
vi cpt.xml
<?xml version="1.0" encoding="GB18030"?>
<drs><base><mgr_port>5345</mgr_port>     <siteid>1</siteid><mem_size>8</mem_size> </base><cpt><name>cpt_mysql</name><ddl_mask>TABLE:INDEX:CREATE:ALTER:TRUNCATE:DROP</ddl_mask><login><dbtype>mysql</dbtype><server>10.73.82.231</server><dbname>test</dbname><user>DMDRS</user><pwd>Dmdrs@123.com</pwd><port>3306</port></login><send><ip>10.73.93.44</ip><port>5345</port><target_name>exec_dm8</target_name><map><item>test.*==test.*</item><item>test1.*==test1.*</item></map></send></cpt>
</drs>

11、前台启动确认是否可以启动

./drsvr cpt.xml 
MGR[INFO]:  DRS start up, current version: V5.2.3.2-Build(2025.05.17-189541_trunc)_64 (Feiteng)(Enterprise Edition)
MGR[INFO]:  Module is loaded. module: cpt_mysql
MGR[INFO]:  Initializing the cache module. path: ./cpt_mysql/CACHE_mtnoh_cpt_mysql, buffers size: 512 MB
MGR[INFO]:  SITEID: 1 NAME: ORACLEWH-STODB57-R220KV2 MEMCHECK: 0 PORT: 5345 GROUP: 0 VERSION: 1 PATH: cpt.xml
CMD>

12、配置成服务脚本

cp /home/mysql/dmdrs5/bin/service_template/TemplateService /home/mysql/dmdrs5/bin/DrsServer_cpt
vi /home/mysql/dmdrs5/bin/DrsServer_cpt
--修改以下内容
#set execute environment
#REPLACE INSTALL_HOME path
INSTALL_HOME=/home/mysql/dmdrs5
#REPLACE program dir
PROG_DIR=/home/mysql/dmdrs5/bin
#REPLACE program config path
#If drs server is BP node and wants to startup without drs.xml,please specify the running port in CONF_PATH,for example,CONF_PATH="-port 5345"
CONF_PATH=/home/mysql/dmdrs5/bin/cpt.xml
#REPLACE need library path, LD_LIBRARY_PATH/LIBPATH
NEED_LIB_PATH=/home/mysql/dmdrs5/bin#REPLACE program name, drsvr/dssvr/dvsvr
EXEC_PROG_NAME=drsvr
#REPLACE service type,  drs server/dss server/dvs server
SERVICE_TYPE_NAME="drs server"

13、启动源端DMDRS

cd /home/mysql/dmdrs5/bin
./DrsServer_cpt start
Starting DrsServer_cpt                           [ OK ]

目的端(DM端)DMDRS安装

1、DMDRS安装

./dmdrs_rev191718_x86_rh6_64_20250619.bin -i

安装过程忽略,目的端将数据整合平台和代理都装上

-----------安装组件-----------
请选择需要安装的组件
1.安装达梦数据融合管理平台
2.安装代理

1、创建复制用户

CREATE TABLESPACE DMDRS DATAFILE 'DMDRS.DBF' SIZE 2048 AUTOEXTEND ON MAXSIZE 67108863;
CREATE USER "DMDRS" IDENTIFIED BY "Dmdrs@123.com" DEFAULT TABLESPACE "DMDRS";
GRANT "DBA" TO "DMDRS";

2、创建要同步的用户对应的表空间

create tablespace TEST DATAFILE 'TEST.dbf' size 2048 AUTOEXTEND ON MAXSIZE 67108863;
create user TEST identified by "Test@123.com" default tablespace TEST;

3、配置环境变量

vi /etc/profile 添加

export LD_LIBRARY_PATH=/home/dmdba/dmdbms/bin:$LD_LIBRARY_PATH

source /etc/profile 配置完环境变量后需要进行校验确保已识别到对应的数据库驱动 达梦端可以通过以下命令进行确定:

[root@middleware-44 ~]# cd /home/dmdba/dmdrs5/bin
[root@middleware-44 bin]# ldd libdredm.solinux-vdso.so.1 (0x00007ffde2d9f000)libc.so.6 => /usr/lib64/libc.so.6 (0x00007f04b0c51000)libm.so.6 => /usr/lib64/libm.so.6 (0x00007f04b0ace000)librt.so.1 => /usr/lib64/librt.so.1 (0x00007f04b0ac3000)libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007f04b0aa2000)libdl.so.2 => /usr/lib64/libdl.so.2 (0x00007f04b0a9d000)libdrpub.so => ./libdrpub.so (0x00007f04af210000)libdrnet.so => ./libdrnet.so (0x00007f04aeff7000)libdrcache.so => ./libdrcache.so (0x00007f04aed92000)libdmdpi.so => /home/dmdba/dmdbms/bin/libdmdpi.so (0x00007f04ae09b000)libdmfldr.so => /home/dmdba/dmdbms/bin/libdmfldr.so (0x00007f04adf52000)libdrxml.so => ./libdrxml.so (0x00007f04add42000)libdveng.so => ./libdveng.so (0x00007f04adb32000)libdrs2d.so => ./libdrs2d.so (0x00007f04ad91b000)/lib64/ld-linux-x86-64.so.2 (0x00007f04b11fd000)libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f04ad768000)libgcc_s.so.1 => /usr/lib64/libgcc_s.so.1 (0x00007f04ad74f000)

4、配置DMDRS服务

vi exec.xml

<?xml version="1.0" encoding="GB18030"?>
<drs><base><mgr_port>5345</mgr_port><siteid>2</siteid></base><exec><name>exec_dm8</name><login><dbtype>dm8</dbtype><server>10.73.93.44</server><user>DMDRS</user><pwd>Dmdrs@123.com</pwd><port>5236</port>    </login></exec>
</drs>

5、前台启动确认是否启动成功

./drsvr exec.xml 
MGR[INFO]:  DRS start up, current version: V5.2.3.2-Build(2025.05.17-189541_trunc)_64 (Feiteng)(Enterprise Edition)
MGR[INFO]:  Module is loaded. module: exec_dm8
MGR[INFO]:  Initializing the cache module. path: ./exec_dm8/CACHE_exec_dm8, cache size: 512 MB
MGR[INFO]:  SITEID: 2 NAME: ORACLEWH-STODB67-R220KV2 MEMCHECK: 0 PORT: 5345 GROUP: 0 VERSION: 1 PATH: exec.xml
MGR[INFO]:  Module is starting. module: exec_dm8 
MGR[INFO]:  The module is running. module: exec_dm8 
EXE[INFO]:  Set the character set on the executing end. char_code: UTF8
EXE[INFO]:  EXEC: DBTYPE:DM8 SERVER=192.168.61.162;USER=DMDRS;PORT=5236;
CMD>

6、配置成服务

cp /home/dmdba/dmdrs5/bin/service_template/TemplateService /home/dmdba/dmdrs5/bin/DrsServer_exec
vi /home/dmdba/dmdrs5/bin/DrsServer_exec
--修改以下内容
#set execute environment
#REPLACE INSTALL_HOME path
INSTALL_HOME=/home/dmdba/dmdrs5
#REPLACE program dir
PROG_DIR=/home/dmdba/dmdrs5/bin
#REPLACE program config path
#If drs server is BP node and wants to startup without drs.xml,please specify the running port in CONF_PATH,for example,CONF_PATH="-port 5345"
CONF_PATH=/home/dmdba/dmdrs5/bin/exec.xml
#REPLACE need library path, LD_LIBRARY_PATH/LIBPATH
NEED_LIB_PATH=/home/dmdba/dmdrs5/bin#REPLACE program name, drsvr/dssvr/dvsvr
EXEC_PROG_NAME=drsvr
#REPLACE service type,  drs server/dss server/dvs server
SERVICE_TYPE_NAME="drs server"

7、启动服务

cd /home/dmdba/dmdrs5/bin
./DrsServer_exec start
Starting DrsServer_exec                           [ OK ]

启动源端(MYSQL端)控制台

cd /home/mysql/dmdrs5/bin
./drcsl cpt.xml
--连接源DMDRS服务
CSL> connect 127.0.0.1:5345 
--设置lsn
CSL> alter cpt_mysql set lsn
CSL> alter cpt_mysql add table "sch.name in('TEST')" dict|drop|create|index|insert
--如果是拷贝多个库则这样写
CSL> alter cpt_mysql add table "sch.name in('TEST','TEST1')" dict|drop|create|index|insert
CSL[INFO]:  [INPUT CMD: alter cpt_mysql add table "sch.name in('TEST','TEST1')" dict|drop|create|index|insert]
MGR[WARN]:  包含不支持的掩码,将忽略此掩码继续装载 |DICT
MGR[INFO]:  获取到装载掩码组合 mask: |CREATE|DROP|INSERT|INDEX|TABLE
MGR[WARN]:  检测到TRUNCATE/DROP/CLEAR掩码,会对执行端目标表进行相应操作,再进行装载!请确认是否继续?(Y/N) 
y
命令执行成功 
CSL> start cpt
CSL[INFO]:  [INPUT CMD: start cpt]
MGR[INFO]:  模块正在启动 module: cpt_mysql 
MGR[INFO]:  设置当前时环境时区 TZ=CST-8
MGR[INFO]:  模块已经处于运行状态 module: cpt_mysql 
命令执行成功 --查看正在装载的表
CSL>show cpt_mysql load table running