環境准備,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

