一、环境情况
二、源端及目的端安装MySQL,可参考网上资料,此处省略安装过程
三、目的端安装配置unixODBC
1.上传unixODBC-2.3.12.tar.gz包到/opt下
2.解压
cd /opt
tar -zvxf unixODBC-2.3.12.tar.gz
复制
3.安装
cd unixODBC-2.3.11
./configure --prefix=/usr/local/unixODBC-2.3.12 --includedir=/usr/include --libdir=/usr/lib -bindir=/usr/bin --sysconfdir=/etc
make && make install
复制
4.安装完成后,通过odbcinst -j查看unixODBC安装情况,如下报错
odbcinst -j
odbcinst: error while loading shared libraries: libodbcinst.so.2: cannot open shared object file: No such file or directory
执行ldconfig命令解决
复制
四、目的端安装 MySQL ODBC驱动程序
1.下载mysql-connector-odbc二进制文件
2.解压mysql-connector-odbc
tar -zvxf mysql-connector-odbc-8.0.22-linux-glibc2.12-x86-64bit
复制
3.拷贝文件
cp -r mysql-connector-odbc-8.0.22-linux-glibc2.12-x86-64bit /usr/local/mysqlodbc8
复制
4.设置环境变量
echo “export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mysqlodbc8/lib” >>/etc/profile
source /etc/profile
复制
五、目的端配置 unixODBC
1.odbcinst.ini用于列出已安装的 ODBC 数据库驱动程序
cat /etc/odbcinst.ini
[root@ecs-3893 etc]# cat odbcinst.ini
[MySQL ODBC 5.1 Driver]
Driver = /usr/local/mysqlodbc8/lib/libmyodbc8w.so
FileUsage = 1
[root@ecs-3893 etc]#
复制
2.odbc.ini用于定义数据源
cat /etc/odbc.ini
[root@ecs-3893 etc]# cat odbc.ini
[mysqlfordmhs]
Description = MySQL test database
Driver = MySQL ODBC 5.1 Driver
Server = 127.0.0.1
User = root
Password = root.123
Port = 3306
[root@ecs-3893 etc]#
复制
3.测试odbc连接MySQL
[root@ecs-3893 etc]# isql mysqlfordmhs
+---------------------------------------+
| Connected!
|
| sql-statement
| help [tablename]
| echo [string]
| quit
|
+---------------------------------------+
复制
六、源端目的端安装DMHS及配置
1.安装
[root@ecs-dd4b opt]# ./dmhs_V4.3.28_mysql8_rev150391_rh7_64_20240124_sp4.bin -i
Extract install files.........
1.English(English)
2.Simplified Chinese(简体中文)
Select the language to install[2.Simplified Chinese(简体中文)]:
/tmp/DMHSInstall/install.log
1.免费试用达梦数据实时同步
2.使用已申请的Key文件
验证许可证文件[1.免费试用达梦数据实时同步]:
1.精简版
2.完整版(web客户端)
3.自定义
安装类型[1.精简版]:
1.实时同步软件服务器
2.远程部署工具
3.实时同步软件配置助手
4.手册
所需磁盘空间:454 MB
安装目录: [/opt/dmhs]/dmhs
1.统一部署
2.现在初始化
是否初始化达梦数据实时同步系统[1.统一部署]:
正在安装
default start ... default finished.
server start ... server finished.
hs_agent start ... hs_agent finished.
hsca start ... hsca finished.
doc start ... doc finished.
postinstall start ... postinstall finished.
正在创建快捷方式
安装成功
远程部署工具配置
远程部署工具名称[HsAgent]:
主机Ip(外网)[192.168.0.209](192.168.0.209):
远程部署工具管理端口[5456](1000-65535):
内置数据库轮询间隔[3](1-60):
内置数据库IP[]:192.168.0.209
内置数据库端口[15236](1000-65535):
内置数据库用户名[SYSDBA]:
内置数据库密码[SYSDBA]:
服务脚本环境变量设置
依赖库路径
提示:此配置项供用户配置源或目的数据库依赖库路径和odbc依赖库路径, 多个路径以":"隔开(例:/opt/dmdbms/bin:/usr/local/lib),此配置项会添加到服务脚本的NEED_LIB_PATH的变量值中。
请配置依赖库路径:
远程控制服务
1.自动
2.手动
启动方式:[2.手动]
正在创建远程控制服务
达梦数据实时同步V4.0安装完成
更多安装信息,请查看安装日志文件:
/dmhs/log/install.log
复制
[root@ecs-dd4b opt]# cd /dmhs/bin
2.根据需求配置源端同步配置文件dmhs.hs
[root@ecs-3893 bin]# cat dmhs.hs
<?xml version="1.0" encoding="GB2312"?>
<dmhs>
<base>
<lang>ch</lang>
<mgr_port>6345</mgr_port>
<ckpt_interval>45</ckpt_interval>
<siteid>1</siteid>
<version>2.0</version>
</base>
<cpt>
<db_type>mysql</db_type>
<db_server>127.0.0.1</db_server>
<db_port>3306</db_port>
<db_name>dmtest</db_name>
<db_user>root</db_user>
<db_pwd>root.123</db_pwd>
<ddl_mask>op:obj</ddl_mask>
<char_code>PG_UTF8</char_code>
<net_turns>0</net_turns>
<cpt_mask>arch_read:post:parse</cpt_mask>
<arch>
<clear_interval>600</clear_interval>
<clear_flag>0</clear_flag>
<dir>/usr/local/mysql/data</dir>
</arch>
<send>
<ip>192.168.0.209</ip>
<mgr_port>6345</mgr_port>
<data_port>6346</data_port>
<filter>
<enable>
<item>dmtest.*</item>
</enable>
</filter>
</send>
</cpt>
</dmhs>
注意<dir>标签中填写/etc/my.cnf配置文件中datadir内容
复制
3.目的端dmhs.hs
[root@ecs-dd4b bin]# cat dmhs.hs
<?xml version="1.0" encoding="GB2312"?>
<dmhs>
<base>
<lang>ch</lang>
<mgr_port>6345</mgr_port>
<ckpt_interval>45</ckpt_interval>
<siteid>2</siteid>
<version>2.0</version>
</base>
<exec>
<recv>
<data_port>6346</data_port>
</recv>
<db_type>mysql</db_type>
<db_server>127.0.0.1</db_server>
<db_port>3306</db_port>
<db_name>dmtest</db_name>
<db_user>root</db_user>
<db_pwd>root.123</db_pwd>
<exec_policy>2</exec_policy>
<char_code>PG_UTF8</char_code>
<save_point_times>3</save_point_times>
</exec>
</dmhs>
复制
<exec_policy>:事务入库出错时的执行策略。
- 0:忽略出错的事务后继续执行,该策略是丢弃掉整个出错的事务。
- 1:中断执行,该策略是如果入库发生错误,便终止同步进程,等待人工修复错误。
- 2:忽略出错的操作后继续执行,出错事务中的其它操作会继续进行入库,该参数和0的区别在于,0 会保证事务的完整性,而它不保证,实现尽可能同步数据。
更多参数使用参考/dmhs/doc下《DMHS 达梦数据实时同步软件参考手册》文档。
4.源端检查依赖包ldd libcpt_mysql.so
[root@ecs-3893 bin]# ldd libcpt_mysql.so
libmysqlclient.so.21通常在/usr/local/mysql/lib下,可将此路径加入环境变量中:
vi /etc/profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mysql/lib:/usr/local/mysqlodbc8/lib:/usr/lib
source /etc/profile
复制
5.目的端检查依赖包ldd libdmhs_exec.so
[root@ecs-dd4b bin]# ldd libdmhs_exec.so
如有libodbc.so.1=>no found 项,可设置软连接解决:
find / -name libodbc.so*
ls -s /usr/lib/libodbc.so /usr/lib/libodbc.so.1
复制
七、完成同步需求
1.目的端启动exec模块,生成辅助表
cd /dmhs/bin
./dmhs_console
start exec
观察日志
tail -100f log/dmhs_202403.log
复制
2.源端执行copy命令,copy完成后,执行start cpt命令启动cpt模块,完成同步
copy 0 “sch.name=’dmtest’” create|insert|dict|lsn
复制
八、同步测试
1.新建表
源端:
目的端:
2.插入数据
源端:
目的端:
3.更新数据
源端:
目的端:
4.删除数据
源端:
目的端:
5.删除表
源端:
目的端:
以上测试均正常执行,同步正常。
九、注意事项
1.须在源端MySQL数据库配置文件my.cnf 中增加配置项:
log-bin=mysql-bin
binlog_format=row
max_allowed_packet=100M
复制
开启MySQL的binlog,并重启MySQL数据库
2.DMHS同步不支持以下同步:
- 不支持加密数据的同步。
- 对主键的更新,不支持类似 update t set key=key+n 的操作。
- 仅支持 mysql 单机数据库。
分享到此,感谢阅读。