环境准备,mysql 及达梦数据库安装忽略
| ip | 数据库 | 操作系统 |
源端 | 192.168.153.102 | mysql 5.7 | centos 7.6 |
目的端 | 192.168.153.101 | dm8 | centos 7.6 |
源端odbc配置
安装GCC,可以通过rpm -qa |grep gcc 检查是否已经安装了gcc。若没有,则通过该 yum install gcc命令安装
上传安装包unixODBC、mysql Connector
安装ODBC
[root@node1 pack]# tar -zxvf unixODBC-2.3.0.tar.gz
[root@node1 pack]# cd unixODBC-2.3.0/
[root@node1 unixODBC-2.3.0]# ./configure --prefix=/usr/local/unixODBC-2.3.0 --includedir=/usr/include --libdir=/usr/local/lib -bindir=/usr/bin --sysconfdir=/usr/local/etc
[root@node1 unixODBC-2.3.0]# make
[root@node1 unixODBC-2.3.0]# make install
安装完成之后:
/usr/bin下有这些文件:
odbcinst
odbc_config
iusql
isql
dltest
/usr/local/lib下有这些文件:
-rwxr-xr-x. 1 root root 969 5月 7 09:42 libodbccr.la
lrwxrwxrwx. 1 root root 18 5月 7 09:42 libodbccr.so -> libodbccr.so.1.0.0
lrwxrwxrwx. 1 root root 18 5月 7 09:42 libodbccr.so.1 -> libodbccr.so.1.0.0
-rwxr-xr-x. 1 root root 491080 5月 7 09:42 libodbccr.so.1.0.0
-rwxr-xr-x. 1 root root 981 5月 7 09:42 libodbcinst.la
lrwxrwxrwx. 1 root root 20 5月 7 09:42 libodbcinst.so -> libodbcinst.so.1.0.0
lrwxrwxrwx. 1 root root 20 5月 7 09:42 libodbcinst.so.1 -> libodbcinst.so.1.0.0
-rwxr-xr-x. 1 root root 563520 5月 7 09:42 libodbcinst.so.1.0.0
-rwxr-xr-x. 1 root root 957 5月 7 09:42 libodbc.la
lrwxrwxrwx. 1 root root 16 5月 7 09:42 libodbc.so -> libodbc.so.1.0.0
lrwxrwxrwx. 1 root root 16 5月 7 09:42 libodbc.so.1 -> libodbc.so.1.0.0
-rwxr-xr-x. 1 root root 2144768 5月 7 09:42 libodbc.so.1.0.0
安装mysql connect驱动
下载地址(tar.gz):https://dev.mysql.com/downloads/connector/odbc/
[root@node1 pack]# tar -zxvf mysql-connector-odbc-5.1.11-linux-glibc2.3-x86-64bit.tar.gz
[root@node1 pack]# cd mysql-connector-odbc-5.1.11-linux-glibc2.3-x86-64bit/lib
[root@node1 lib]# cp libmyodbc5.so /usr/local/lib
进入到mysql的解压文件的bin目录下,进行注册驱动:
[root@node1 bin]# pwd
/pack/mysql-connector-odbc-5.1.11-linux-glibc2.3-x86-64bit/bin
[root@node1 bin]# ./myodbc-installer -d -a -n "MySQL ODBC 5.1 Driver" -t "DRIVER=/usr/lib/libmyodbc5.so;SETUP=/usr/lib/libmyodbc5.so"
./myodbc-installer: error while loading shared libraries: libodbc.so.1: cannot open shared object file: No such file or directory
###这里的报错是因为动态库没加载进来,解决方法:
[root@node1 bin]# echo "/usr/local/lib" >> /etc/ld.so.conf
[root@node1 bin]# ldconfig
或没有这个文件,可用以下方法,配置好之后重启数据库服务
ln -s /usr/lib64/libodbc.so.2.0.0 /usr/lib64/libodbc.so.1
ln -s /usr/lib64/libodbcinst.so.2.0.0 /usr/lib64/libodbcinst.so.1
再执行注册:
[root@node1 bin]# ./myodbc-installer -d -a -n "MySQL ODBC 5.1 Driver" -t "DRIVER=/usr/lib/libmyodbc5.so;SETUP=/usr/lib/libmyodbc5.so"
Success: Usage count is 1 ####这一步说明注册成功。
现在配置odbc.ini文件
文件位置可用改命令查看:
[root@node1 bin]# odbcinst -j
unixODBC 2.3.0
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini ###这个文件就是配置文件
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
配置文件odbc.ini参数。
[mysqltest]
Driver = /usr/local/lib/libmyodbc5.so
Description = MyODBC 5 Driver DSN
SERVER = 192.168.153.102
PORT = 3306
USER = root
Password = dm123
Database = mysql
OPTION = 3
charset = UTF8
配置/usr/local/etc/odbc.ini参数
[mysqltest]
Driver = /usr/local/lib/libmyodbc5.so
Description = MyODBC 5 Driver DSN
SERVER = 192.168.153.102
PORT = 3306
USER = root
Password = dm123
Database = mysql
OPTION = 3
charset = UTF8
配置完了之后,执行isql 连接名
[root@node1 bin]# service mysql start
Starting MySQL.. SUCCESS!
mysql数据库创建测试数据库mydm及表
达梦数据库创建模式名MYSQL,将源库下mydm数据存到达梦的MYSQL模式下
CREATE SCHEMA MYSQL AUTHORIZATION SYSDBA;
创建dmhs安装目录
mkdir -p /dmhs
加载本地mysql动态库
DMHS 在运行时,需要加载本地 MYSQL 动态库,linux/unix 平台下为 libmysqlclient.so。在 部 署 DMHS 之 前 , 需 将 libmysqlclient.so 所 在 目 录 添 加 到 共 享 库 路 径 变 量 中 。libmysqlclient.so 通常位于/usr/local/mysql/lib 目录中中。在 LINUX/UNIX 系统中,设置的方法如下:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH: /usr/local/mysql/lib
当在系统中未找到 libmysqlclient.so 文件,但存在 libmysqlclient.so***的文件,可使用命令 ln -s libmysqlclient.so**** libclntsh.so 创建一个软链接。
dmhs安装
./dmhs_V4.1.1_mysql_rev98507_rh6_64_veri_20210330.bin -i
Extract install files.........
1.英文(English)
2.简体中文(简体中文)
请选择安装语言[2.简体中文(简体中文)]:2
/tmp/DMHSInstall/install.log
1.免费试用达梦数据实时同步
2.使用已申请的Key文件
验证许可证文件[1.免费试用达梦数据实时同步]:2
Key文件路径:/mnt/dmhs36041257.key
Key文件限制信息如下:
有效日期:2021-06-25
用户名称:达梦公司产品试用
服务器颁布类型:试用版
发布类型:企业版
Key类型:企业版
授权用户数:无限制
并发连接数:无限制
1.精简版
2.完整版(web客户端)
3.自定义
安装类型[1.精简版]:2
1.实时同步软件服务器
2.远程部署工具
3.实时同步软件客户端
4.内置数据库
5.实时同步软件配置助手
6.手册
所需磁盘空间:832 MB
安装目录: [/opt/dmhs]/dmhs
该路径不为空,是否继续安装?[Y or N]y
安装路径可能存在覆盖安装
1.统一部署
2.现在初始化
是否初始化达梦数据实时同步系统[1.统一部署]:
正在安装
default start ... default finished.
server start ... server finished.
hs_agent start ... hs_agent finished.
webmanager start ... webmanager finished.
db start ... db finished.
hsca start ... hsca finished.
doc start ... doc finished.
doc start ... doc finished.
postinstall start ... postinstall finished.
正在创建快捷方式
安装成功
远程部署工具配置
远程部署工具名称[HsAgent]:
主机Ip(外网)[192.168.122.1](192.168.122.1,192.168.153.102):192.168.153.102
远程部署工具管理端口[5456](1000-65535):
内置数据库轮询间隔[3](1-60):
内置数据库IP[192.168.122.1]:192.168.153.102
内置数据库端口[15236]:
内置数据库用户名[SYSDBA]:
内置数据库密码[SYSDBA]:
服务脚本环境变量设置
依赖库路径
提示:此配置项供用户配置源或目的数据库依赖库路径和odbc依赖库路径, 多个路径以":"隔开(例:/opt/dmdbms/bin:/usr/local/lib),此配置项会添加到服务脚本的NEED_LIB_PATH的变量值中。
请配置依赖库路径:/usr/local/mysql/lib
内置数据库服务
1.自动
2.手动
启动方式:[2.手动]
正在创建内置数据库服务
初始化内置数据库
远程控制服务
1.自动
2.手动
启动方式:[2.手动]
正在创建远程控制服务
web服务
1.自动
2.手动
启动方式:[2.手动]
正在创建web服务
达梦数据实时同步V4.0安装完成
更多安装信息,请查看安装日志文件:
/dmhs/log/install.log
UNIX/LINUX 平台中,DMHS 目的端安装完成之后,可将目录切换到 DMHS软件目录,通过命令 ldd libdmhs_exec.so,查看 DMHS 日志执行模块链接是否正常。
1开启源端数据库的 binlog 及 binlog format
DMHS 通过分析 MYSQL 数据库的 binlog 日志来捕获数据库的增量数据,DMHS 运行之前,必须将数据库 binlog 打开,同时将 binlog format 设置为 row 模式。修改的参数均涉及数据库初始过程,修改参数后,需重启生效。如需操作,需确认工作环境能停机维护。具体操作过程如下:
1) 开启 mysql 的 binlog,修改 binlog format。
修改 mysql 启动配置文件,windows 平台下,配置文件为安装目录下的 my.ini,linux/unix平台下,配置文件为/etc/my.cnf。在配置文件[mysqld]标记后添加或修改配置参数 log-bin 及binlog_format,如下所示:
log-bin=mysql-bin
binlog_format=row
其中,binlog_format 必须设置为 row。当包含 lob 数据的同步是,针对 lob 数据的大小,还需设置 max_allowed_packet,如下所示:
max_allowed_packet=100M
2) 重启数据库服务
3) 查看数据库 binlog 设置
show variables like 'log_bin';
查看数据库 binlog_format 设置
show variables like 'binlog_format';
源端配置dmhs.hs
<?xml version="1.0" encoding="GB2312"?>
<dmhs>
<base>
<lang>ch</lang>
<mgr_port>5345</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>mydm</db_name>
<db_user>root</db_user>
<db_pwd>dm123</db_pwd>
<ddl_mask>op:obj</ddl_mask>
<arch>
<clear_interval>600</clear_interval>
<clear_flag>0</clear_flag>
<dir>/usr/local/mysql/data</dir>
</arch>
<send>
<ip>192.168.153.101</ip>
<mgr_port>5345</mgr_port>
<data_port>5346</data_port>
<filter>
<enable>
<item>mydm.*</item>
</enable>
<map>
<item>mydm.*==MYSQL.*</item>
</map>
</filter>
</send>
</cpt>
</dmhs>
目的端dmhs.hs配置
<?xml version="1.0" encoding="GB2312"?>
<dmhs>
<base>
<lang>en</lang>
<mgr_port>5345</mgr_port>
<ckpt_interval>60</ckpt_interval>
<siteid>2</siteid>
<version>2.0</version>
</base>
<exec>
<recv>
<data_port>5346</data_port>
</recv>
<db_type>dm8</db_type>
<db_server>192.168.153.101</db_server>
<db_user>SYSDBA</db_user>
<db_pwd>SYSDBA</db_pwd>
<db_port>5236</db_port>
<db_name></db_name>
<exec_thr>4</exec_thr>
<exec_sql>1024</exec_sql>
<exec_trx> 5000 </exec_trx>
<exec_rows>1000</exec_rows>
</exec>
</dmhs>
目的端运行 DMHS 软件工具 MGR
./dmhs_server /dmhs/bin/dmhs.hs
端运行 DMHS 软件工具 dmhs_console,连接执行端 DMHS 服务
./dmhs_console
DMHS> connect 192.168.153.101:5345
启动日志执行模块
DMHS> start exec
如果报错,查看提示有某个so文件找不到,ldd 这个文件可查看缺少某些依赖包,将包复制到当前文件夹下(一般都在dm安装bin下面,可将bin下面所有so文件复制到dmhs的bin下面)
cp /dm8/bin/*.so ./
执行 ldd libdmhs_exec.so如没有提示有找不到某个文件时重启服务
源端运行 DMHS 软件工具 MGR
./dmhs_server /dmhs/bin/dmhs.hs
端运行 DMHS 软件工具 dmhs_console,连接源端 DMHS 服务,装载源端字典信息及历史数据
./dmhs_console
DMHS> connect 192.168.153.102:5345
DMHS> clear exec lsn
DMHS> LOAD 0 "SCH.NAME='mydm'"CREATE|INSERT|DICT
启动日志捕获器
DMHS> start cpt
源端MGR日志
目标端MGR日志
连接测试,看数据是否正确
ddl和dml实时同步测试ok