DMHS同步之MYSQL to MYSQL

news2024/9/22 5:36:00

一、环境情况

image.png

二、源端及目的端安装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
 

图片1.png


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.png

2.源端执行copy命令,copy完成后,执行start cpt命令启动cpt模块,完成同步
copy 0 “sch.name=’dmtest’” create|insert|dict|lsn

复制

图片3.png

八、同步测试

1.新建表

源端:
 

image.png


目的端:

image.png

2.插入数据

源端:
 

image.png


目的端:

image.png

3.更新数据

源端:
 

image.png


目的端:

image.png

4.删除数据

源端:
 

image.png


目的端:

image.png

5.删除表

源端:
 

image.png


目的端:
 

image.png


以上测试均正常执行,同步正常。

九、注意事项

1.须在源端MySQL数据库配置文件my.cnf 中增加配置项:
log-bin=mysql-bin
binlog_format=row
max_allowed_packet=100M

复制

开启MySQL的binlog,并重启MySQL数据库

图片4.png

2.DMHS同步不支持以下同步:
  1. 不支持加密数据的同步。
  2. 对主键的更新,不支持类似 update t set key=key+n 的操作。
  3. 仅支持 mysql 单机数据库。

分享到此,感谢阅读。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1535084.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用 React antd 的ProFormSelect组件 搜索查询 多选的写法

使用 React antd 的ProFormSelect组件 搜索查询 多选的写法 需求&#xff1a;需要一个搜索框&#xff0c;可以选择员工&#xff0c;&#xff08;员工人数多无法一次性获取&#xff0c;全部放入options中&#xff09;&#xff0c;所以需要使用搜索功能&#xff0c;而且是可以多…

WebXR实践——利用aframe框架浏览器展示全景图片

一、效果 话不多说&#xff0c;先上效果 二、代码 index.html <!DOCTYPE html> <html><head><meta charset"utf-8"><title>360&deg; Image</title><meta name"description" content"360&deg; Imag…

【QT入门】 Qt槽函数五种常用写法介绍

声明&#xff1a;该专栏为本人学习Qt知识点时候的笔记汇总&#xff0c;希望能给初学的朋友们一点帮助(加油&#xff01;) 往期回顾&#xff1a; 【QT入门】实现一个简单的图片查看软件-CSDN博客 【QT入门】图片查看软件(优化)-CSDN博客 【QT入门】 lambda表达式(函数)详解-CSDN…

odoo扩展导出pdf功能

1. 说明: odoo原生导出功能扩展导出pdf文件功能, 如有额外需求请联系博主 2. 版本说明: odoo版本: odoo15 其他odoo版本未进行测试,如有需要自行测试 3. 地址: 该补丁代码放在github仓库, 地址: https://github.com/YSL-Alpaca/odoo_export_pdf 4. 改补丁依赖于第三方软件wkh…

数学建模(灰色关联度 python代码 案例)

目录 介绍&#xff1a; 模板&#xff1a; 案例&#xff1a;哪些原因影响结婚率 数据标准化&#xff1a; 灰色关联度系数&#xff1a; 完整代码&#xff1a; 结果&#xff1a; 介绍&#xff1a; 灰色关联度是一种多指标综合评价方法&#xff0c;用于分析和评价不同指标之…

【MySQL】对表的相关操作(DDL)

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习计网、mysql和算法 ✈️专栏&#xff1a;MySQL学习 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac…

软件杯 深度学习 大数据 股票预测系统 - python lstm

文章目录 0 前言1 课题意义1.1 股票预测主流方法 2 什么是LSTM2.1 循环神经网络2.1 LSTM诞生 2 如何用LSTM做股票预测2.1 算法构建流程2.2 部分代码 3 实现效果3.1 数据3.2 预测结果项目运行展示开发环境数据获取 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天…

AI助力生产制造质检,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建工业生产制造场景下的瓷砖瑕疵检测识别分析系统

瓷砖生产环节一般经过原材料混合研磨、脱水、压胚、喷墨印花、淋釉、烧制、抛光&#xff0c;最后进行质量检测和包装。得益于产业自动化的发展&#xff0c;目前生产环节已基本实现无人化。而质量检测环节仍大量依赖人工完成。一般来说&#xff0c;一条产线需要配数名质检工&…

塔楼VR火灾逃生应急安全教育突破了传统模式

城镇化的高速发展&#xff0c;给消防安全带来了严峻的挑战&#xff0c;尤其是人员密集的办公场所&#xff0c;如何预防火灾发生&#xff0c;学习火灾成因&#xff0c;减少火灾发生避免不必要的损失&#xff0c;成为安全应急科普的重中之重。 通过模拟真实的办公场所火灾场景&am…

JVM监控工具

JVM监控工具 jps 查看系统中运行的java进程id PS D:\practise\test> jps 22672 Jps 13688 RemoteMavenServer36 1068 14188 TestApplication PS D:\practise\test> jmap 用来查看进行内存信息&#xff0c;实例个数以及占用内存大小 jmap -histo 进程id PS D:\prac…

Python使用PaddleSpeech实现语音识别(ASR)、语音合成(TTS)

目录 安装 语音识别 补全标点 语音合成 参考 PaddleSpeech是百度飞桨开发的语音工具 安装 注意&#xff0c;PaddleSpeech不支持过高版本的Python&#xff0c;因为在高版本的Python中&#xff0c;飞桨不再提供paddle.fluid API。这里面我用的是Python3.7 需要通过3个pip…

华为北向网管NCE开发教程(5)打包org.omg.CosNotification找不到

1问题描述 在IDE中&#xff0c;代码能正常运行&#xff0c;但是打包的时候&#xff0c;会抱不到一些类 2问题原因 导入的本地包中&#xff0c;能在IDE中找到&#xff0c;但是在使用maven打包时&#xff0c;maven找不到这些依赖包 3解决办法 将依赖包通过maven安装到maven…

基于python+vue灾害应急救援平台flask-django-php-nodejs

灾害应急救援平台的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品&#xff0c;体验高科技时代带给人们的方便&#xff0c;同时也能让用户体会到与以往常规产品不同的体验风格。 与安卓&#xff0c;iOS相比较起来&#xff0c;…

python银行柜台管理系统flask-django-php-nodejs

相比于以前的传统手工管理方式&#xff0c;智能化的管理方式可以大幅降低银行的运营人员成本&#xff0c;实现了银行柜台的标准化、制度化、程序化的管理&#xff0c;有效地防止了银行柜台的随意管理&#xff0c;提高了信息的处理速度和精确度&#xff0c;能够及时、准确地查询…

Linux:Prometheus+Grafana+睿象云告警平台(3)

在上一章我进行了Prometheus和Grafana的基础搭建以及部署 Linux&#xff1a;Prometheus的源码包安装及操作&#xff08;2&#xff09;-CSDN博客https://blog.csdn.net/w14768855/article/details/136855988?spm1001.2014.3001.5501 1.注册 在监控中必不可少的就是监控告警&am…

螺旋卫星通信天线设计与有限元分析matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 卫星搭载用于通讯的螺旋型天线&#xff0c;卫星尺寸&#xff1a; 10cm*10cm*30cm&#xff1b;天线类型&#xff1a;螺旋&#xff1b;天线UHF&#xff08;约1GHz – 3GHz&#…

【精彩回顾】百度智能云千帆产品3月21日发布会

3月21日&#xff0c;AI Cloud Day&#xff1a;百度智能云千帆产品发布会在北京举办。会议聚焦百度智能云千帆大模型平台最新进展&#xff0c;分享思考与实践。百度智能云在发布会期间宣布&#xff1a; >>满足企业“效价比”核心诉求&#xff0c;千帆ModelBuilder大模型服…

clickhouse sql使用

1、arrayMap(fun1,arr1)使用 第一个参数是一个 lambda 函数&#xff0c;第二个参数是一个集合 eg、select arrayMap(x->x1,[1,2,3]) 对集合中每个数1 2、arrayJoin(arr1) 将集合由行转列 eg、 select arrayJoin([1,2,3]) eg、select arrayJoin(arrayMap(x->x1,[1,2,3])) …

学工系统0day挖掘-危害拉满

前言: 21年的挖的漏洞了 漏洞均已提交且均已修复,这里文章只做技术交流 正文: 漏洞挖掘过程: 起因是这样的 20年简单挖了一下这个学校,但是没把shell拿了 后面随着学习21年又回来看了看这个系统,果然发觉了很多新的东西,脱敏了就写文章下。 漏洞1:未授权批量挖掘:…

【C++】---string的模拟

【C】---string的模拟 一、string类实现1.string类的构造函数2.swap&#xff08;&#xff09;函数3.拷贝构造函数4.赋值运算符重载5.析构6.迭代器7.operator[ ]8.size9.c_str&#xff08;&#xff09;10.reserve&#xff08;&#xff09;11.resize&#xff08;&#xff09;12.p…