配置DMHS同步工具(dm8-Oracle12c)


一、环境准备

ip地址软件
源端达梦192.168.10.20dmhs_V4.2.90_dm8_rev110412_rh6_64_veri_20220620_sp2.bin
目的端oracle12c192.168.10.10dmhs_V4.2.90_oracle_rev109839_rh6_64_veri_20220614.bin

1.两端关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

2.两端字符集编码保持一致

查看oracle字符集:

select userenv('language') from dual;

查看达梦字符集:

SELECT '字符集',DECODE(UNICODE,'0','GB18030','1','UTF-8','2','EUC-KR')

二、源端(达梦)软件安装

1.软件安装

[root@localhost ~]# mkdir /data/dmhs
[root@localhost ~]# chown -R dmdba:dinstall /data/dmhs
[root@localhost data]# su - dmdba
上一次登录:五 71 10:25:24 CST 2022pts/1[dmdba@localhost ~]$ cd /data/
[dmdba@localhost data]$ ll
总用量 493588
-rwxr-xr-x. 1 root root 505430587 628 14:50 dmhs_V4.2.90_dm8_rev110412_rh6_64_veri_20220620_sp2.bin


[dmdba@localhost data]$ ./dmhs_V4.2.90_dm8_rev110412_rh6_64_veri_20220620_sp2.bin -i
Extract install files..........

1.英文(English)
2.简体中文(简体中文)
请选择安装语言[2.简体中文(简体中文)]:
/tmp/DMHSInstall/install.log
1.免费试用达梦数据实时同步
2.使用已申请的Key文件
验证许可证文件[1.免费试用达梦数据实时同步]:
1.精简版
2.完整版(web客户端)
3.自定义
安装类型[1.精简版]:2
1.实时同步软件服务器
2.远程部署工具
3.实时同步软件客户端
4.内置数据库
5.实时同步软件配置助手
6.手册
所需磁盘空间:897 MB
安装目录: [/home/dmdba/dmhs]/data/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.10.20):
远程部署工具管理端口[5456](1000-65535):
内置数据库轮询间隔[3](1-60):
内置数据库IP[192.168.122.1]:
内置数据库端口[15236]:
内置数据库用户名[SYSDBA]:
内置数据库密码[SYSDBA]:
服务脚本环境变量设置
依赖库路径
提示:此配置项供用户配置源或目的数据库依赖库路径和odbc依赖库路径, 多个路径以":"隔开(:/opt/dmdbms/bin:/usr/local/lib),此配置项会添加到服务脚本的NEED_LIB_PATH的变量值中。
请配置依赖库路径:/dm8/bin/:/usr/local/lib
内置数据库服务
1.自动
2.手动
启动方式:[2.手动]
正在创建内置数据库服务
初始化内置数据库
远程控制服务
1.自动
2.手动
启动方式:[2.手动]
正在创建远程控制服务
web服务
1.自动
2.手动
启动方式:[2.手动]
正在创建web服务
达梦数据实时同步V4.0安装完成
更多安装信息,请查看安装日志文件:
/data/dmhs/log/install.log
上传oci
[dmdba@localhost ~]$ unzip so.zip
[dmdba@localhost ~]$ cd so/
[dmdba@localhost so]$ cp libdmoci.so /data/dmhs/bin
[dmdba@localhost data]$ cd /data/dmhs/bin
[dmdba@localhost bin]$ ldd libcpt_dm8.so 
	linux-vdso.so.1 =>  (0x00007ffc9afe3000)
	libc.so.6 => /lib64/libc.so.6 (0x00007fda0ae71000)
	libm.so.6 => /lib64/libm.so.6 (0x00007fda0ab6f000)
	librt.so.1 => /lib64/librt.so.1 (0x00007fda0a967000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fda0a74b000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007fda0a547000)
	libdmhs_pub.so => ./libdmhs_pub.so (0x00007fda0a20f000)
	libdmhs_net.so => ./libdmhs_net.so (0x00007fda09fad000)
	libdmhs_ld_dm8.so => ./libdmhs_ld_dm8.so (0x00007fda09d3e000)
	libdmhs_ucvt.so => ./libdmhs_ucvt.so (0x00007fda097e3000)
	libdmoci.so => ./libdmoci.so (0x00007fda08d74000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fda0b50d000)
	libdmhs_bool_parse.so => ./libdmhs_bool_parse.so (0x00007fda08b64000)
	libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fda0885d000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fda08647000)

2.检查归档

确认归档是否开启,如果没有,需要开启归档
查询归档是否开启:

select arch_mode from v$database; (Y为开启)

开启归档语句:

./disql SYSDBA/SYSDBA@localhost:5236
alter database mount;
alter database archivelog;
alter database add archivelog 'TYPE=LOCAL,DEST=/dm8/arch,FILE_SIZE=1024, SPACE_LIMIT=10240';
alter database open;

3.开启逻辑日志

查询逻辑日志是否开启:

SELECT PARA_VALUE FROM SYS.V$DM_INI WHERE PARA_NAME = 'RLOG_APPEND_LOGIC';1为开启)
SP_SET_PARA_VALUE(2,'RLOG_APPEND_LOGIC',1);--重启数据库生效

4.开启DDL同步

(根据实际需求确定是否需要),这里不开启DDL同步

./disql SYSDBA/SYSDBA@localhost:5236 
start /data/dmhs/scripts/ddl_sql_dm8.sql

三、目的端(oracle)

1.软件安装

[root@localhost ~]# mkdir /data/dmhs
[root@localhost ~]# chown -R oracle:oinstall /data/dmhs/
[root@localhost ~]# cd /data/
[root@localhost data]# ll
总用量 492320
drwxr-xr-x. 2 oracle oinstall         6 71 14:44 dmhs
-rw-r--r--. 1 oracle oinstall 504132386 628 14:50 dmhs_V4.2.90_oracle_rev109839_rh6_64_veri_20220614.bin
[root@localhost data]# chmod +x dmhs_V4.2.90_oracle_rev109839_rh6_64_veri_20220614.bin 
[root@localhost data]# su - oracle
上一次登录:五 71 14:27:55 CST 2022pts/0[oracle@localhost ~]$ cd /data/
[oracle@localhost data]$ ./dmhs_V4.2.90_oracle_rev109839_rh6_64_veri_20220614.bin -i
Extract install files..........

1.英文(English)
2.简体中文(简体中文)
请选择安装语言[2.简体中文(简体中文)]:
/tmp/DMHSInstall/install.log
1.免费试用达梦数据实时同步
2.使用已申请的Key文件
验证许可证文件[1.免费试用达梦数据实时同步]:
1.精简版
2.完整版(web客户端)
3.自定义
安装类型[1.精简版]:2
1.实时同步软件服务器
2.远程部署工具
3.实时同步软件客户端
4.内置数据库
5.实时同步软件配置助手
6.手册
所需磁盘空间:892 MB
安装目录: [/home/oracle/dmhs]/data/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.10.10):
远程部署工具管理端口[5456](1000-65535):
内置数据库轮询间隔[3](1-60):
内置数据库IP[192.168.122.1]:
内置数据库端口[15236]:
内置数据库用户名[SYSDBA]:
内置数据库密码[SYSDBA]:
服务脚本环境变量设置
依赖库路径
提示:此配置项供用户配置源或目的数据库依赖库路径和odbc依赖库路径, 多个路径以":"隔开(:/opt/dmdbms/bin:/usr/local/lib),此配置项会添加到服务脚本的NEED_LIB_PATH的变量值中。
请配置依赖库路径:
Oracle字符集
提示:注意此处配置为ORACLE数据库的NLS_LANG,此配置项由源端数据库字符集编码格式决定,需与源端字符集编码适配。
1.SIMPLIFIED CHINESE_CHINA.ZHS32GB18030
2.SIMPLIFIED CHINESE_CHINA.AL32UTF8
3.TRADITIONAL CHINESE_TAIWAN.ZHT16BIG5
4.TRADITIONAL CHINESE_TAIWAN.AL32UTF8
5.AMERICAN_AMERICA.AL32UTF8
6.AMERICAN_AMERICA.WE8ISO8859P1
7.AMERICAN_AMERICA.WE8ISO8859P15
8.AMERICAN_AMERICA.ZHS16GBK
9.不设置
请配置Oracle字符集[9.不设置]:8
内置数据库服务
1.自动
2.手动
启动方式:[2.手动]
正在创建内置数据库服务
初始化内置数据库


远程控制服务
1.自动
2.手动
启动方式:[2.手动]正在创建远程控制服务
web服务
1.自动
2.手动
启动方式:[2.手动]正在创建web服务
达梦数据实时同步V4.0安装完成
更多安装信息,请查看安装日志文件:
/data/dmhs/log/install.log

2.测试连接

[oracle@localhost admin]$ tnsping orclpdb

TNS Ping Utility for Linux: Version 12.2.0.1.0 - Production on 06-7-2022 14:11:46

Copyright (c) 1997, 2016, Oracle.  All rights reserved.

已使用的参数文件:
/home/oracle/app/oracle/product/12.1.0/db_1/network/admin/sqlnet.ora


已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orclpdb)))
OK (0 毫秒)

3. odbc配置

[root@localhost local]# odbcinst -j
unixODBC 2.3.1
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

[root@localhost ~]# vim /etc/odbcinst.ini
[Oracle 12c ODBC driver]
Description=Oracle in OraDb12c
Driver=/home/oracle/app/oracle/product/12.1.0/db_1/lib/libsqora.so.12.1

确认是否缺少依赖包

[oracle@localhost ~]$ ldd /home/oracle/app/oracle/product/12.1.0/db_1/lib/libsqora.so.12.1ldd: 警告: 你没有执行权限  `/home/oracle/app/oracle/product/12.1.0/db_1/lib/libsqora.so.12.1'
	linux-vdso.so.1 =>  (0x00007ffeb5dda000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f64d8289000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f64d7f87000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f64d7d6b000)
	libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f64d7b51000)
	librt.so.1 => /lib64/librt.so.1 (0x00007f64d7949000)
	libaio.so.1 => /lib64/libaio.so.1 (0x00007f64d7747000)
	libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f64d752d000)
	libclntsh.so.12.1 => /home/oracle/app/oracle/product/12.1.0/db_1/lib/libclntsh.so.12.1 (0x00007f64d3a85000)
	libclntshcore.so.12.1 => /home/oracle/app/oracle/product/12.1.0/db_1/lib/libclntshcore.so.12.1 (0x00007f64d34b7000)
	libodbcinst.so.2 => /lib64/libodbcinst.so.2 (0x00007f64d32a5000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f64d2ed7000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f64d2cc1000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f64d8750000)
	libmql1.so => /home/oracle/app/oracle/product/12.1.0/db_1/lib/libmql1.so (0x00007f64d2a4a000)
	libipc1.so => /home/oracle/app/oracle/product/12.1.0/db_1/lib/libipc1.so (0x00007f64d2617000)
	libnnz12.so => /home/oracle/app/oracle/product/12.1.0/db_1/lib/libnnz12.so (0x00007f64d1ece000)
	libons.so => /home/oracle/app/oracle/product/12.1.0/db_1/lib/libons.so (0x00007f64d1c80000)
	libltdl.so.7 => /lib64/libltdl.so.7 (0x00007f64d1a76000)


Oracle创建用户

SQL> create user hs_oracle identified by hs_oracle;
SQL>grant dba to hs_oracle;
SQL> grant connect to hs_oracle;
SQL>grant select on sys.user$ to hs_oracle;
SQL>grant select on sys.col$ to hs_oracle;
SQL>grant select on sys.obj$ to hs_oracle;
SQL>grant select on sys.cdef$ to hs_oracle;

[root@localhost ~]# vim /etc/odbc.ini
[DMHS]
Description = Oracle in OraDb12c
Driver = Oracle 12c ODBC driver
SERVER = 192.168.10.10
UserID = system
Password = Admin123
Servername = orclpdb
PORT = 1521

[oracle@localhost ~]$ isql dmhs -v
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> 

四、配置文件

源端(达梦)

[dmdba@localhost ~]$ cd /data/dmhs/bin
[dmdba@localhost bin]$ vim dmhs.hs 
<?xml version="1.0" encoding="GB2312" standalone="no"?>
<dmhs>
    <base>
        <lang>ch</lang>
        <mgr_port>5345</mgr_port>
        <name>cpt</name>
        <ckpt_interval>60</ckpt_interval>
        <siteid>1</siteid>
        <version>2.0</version>
    </base>
    <cpt>
        <enable>1</enable>
        <name>cpt</name>
        <db_type>DM8</db_type>
        <db_server>192.168.10.20</db_server>
        <db_user>SYSDBA</db_user>
        <db_pwd>SYSDBA</db_pwd>
        <char_code>PG_UTF8</char_code>
        <db_port>5236</db_port>
        <idle_time>300</idle_time>
        <parse_thr>1</parse_thr>
        <check_date>0</check_date>
        <ddl_mask></ddl_mask>
        <arch>
            <clear_flag>0</clear_flag>
            <clear_interval>600</clear_interval>
        </arch>
        <send>
            <max_log_num>2000</max_log_num>
            <ip>192.168.10.10</ip>
            <mgr_port>5345</mgr_port>
            <net_pack_size>256</net_pack_size>
            <data_port>5346</data_port>
            <trigger>0</trigger>
            <constraint>0</constraint>
            <identity>1</identity>
            <net_turns>0</net_turns>
            <timeout>0</timeout>
            <case_sensitive>1</case_sensitive>
            <filter>
                <name_len>255</name_len>
                <enable>
                    <item>TEST.*</item>
                </enable>
            </filter>
            <map>
               <item>TEST.*==TEST.*</item>
            </map>
        </send>
        <send_delay_second>0</send_delay_second>
        <start_scn>0</start_scn>
        <rec_heap_size>16</rec_heap_size>
        <vpool_size>8</vpool_size>
        <send_lst>2</send_lst>
    </cpt>
</dmhs>

目的端(oracle)

[oracle@localhost ~]$ cd /data/dmhs/bin
[oracle@localhost bin]$ vim dmhs.hs 
<?xml version="1.0" encoding="GB2312" standalone="no"?>
<dmhs>
    <base>
        <lang>ch</lang>
        <mgr_port>5345</mgr_port>
        <name>exec</name>
        <ckpt_interval>60</ckpt_interval>
        <siteid>2</siteid>
        <version>2.0</version>
    </base>
    <exec>
        <char_code>PG_UTF8</char_code>
        <recv>
            <mgr_port>5345</mgr_port>
            <data_port>5346</data_port>
        </recv>
        <enable>1</enable>
  <driver>{Oracle 12c ODBC driver}</driver>
        <name>exec</name>
        <db_type>ORACLE12c</db_type>
        <db_server>192.168.10.10</db_server>
        <db_name>orclpdb</db_name>
        <db_user>hs_oracle</db_user>
        <db_pwd>hs_oracle</db_pwd>
        <db_port>1521</db_port>
        <case_sensitive>1</case_sensitive>
        <exec_thr>1</exec_thr>
        <exec_policy>2</exec_policy>
        <exec_sql>512</exec_sql>
        <exec_trx>5000</exec_trx>
        <exec_rows>250</exec_rows>
        <trxid_tables>1</trxid_tables>
        <vpool>7</vpool>
        <recv_caches>8</recv_caches>
    </exec>
</dmhs>

五、启动dmhs服务

目的端:

[oracle@localhost bin]$ ./dmhs_server dmhs.hs 
MGR[INFO]: DMHS start up, current version: V4.2.90-Build(2022.06.09-109839trunc)_64_2206 (The beta)(Enterprise Edition)
MGR[WARN]: License will expire on 2022-09-09
MGR[INFO]: 成功加载配置文件,站点号:2, 管理端口:5345, 轮询间隔:3
MGR[INFO]: 管理 服务正在监听管理端口:5345

源端:

[dmdba@localhost bin]$ ./dmhs_server dmhs.hs 
MGR[INFO]: DMHS start up, current version: V4.2.90-Build(2022.06.20-110412trunc)_sp2_D64_2206 (The beta)(Enterprise Edition)
MGR[WARN]: License will expire on 2022-09-20
MGR[INFO]: 成功加载配置文件,站点号:1, 管理端口:5345, 轮询间隔:3
MGR[INFO]: 管理 服务正在监听管理端口:5345

六、初始装载

目的端:

[oracle@localhost bin]$ ./dmhs_console 
DMHS> connect
执行成功
DMHS> start exec
执行成功

源端:

[dmdba@localhost bin]$ ./dmhs_console 
DMHS> connect
执行成功

DMHS> clear exec lsn                              
执行成功

装载数据:
copy 0 "sch.name='TEST'" DICT|CREATE|INSERT

停止两端前台启动


七、注册后台服务

注册两端后台服务

[root@localhost ~]# cd /opt/dmhs/scripts/root/
[root@localhost root]# ./dmhs_service_installer.sh -t dmhs_server -x /opt/dmhs/bin/dmhs.hs -d /opt/dmhs/bin -p DMHS

八、启动后台服务

后台启动服务
目的端:
[oracle@localhost ~]$ cd /data/dmhs/bin
[oracle@localhost bin]$ ./DmhsService start

源端:
[dmdba@localhost ~]$ cd /data/dmhs/bin
[dmdba@localhost bin]$ ./DmhsService start



启动cpt同步模块
[dmdba@localhost bin]$ ./dmhs_console 
DMHS> start cpt
执行成功

同步测试

单独装载一张表:

达梦:

[dmdba@localhost bin]$ ./dmhs_console 
DMHS> stop cpt
执行成功
DMHS> copy 0 "sch.name='TEST' and tab.name='TEST2'" DROP|CREATE|INSERT|DICT
CSL[WARN]: 检测到DROP掩码,该掩码会删掉目标表! 请确认是否继续?(Y/N)
y
copy mask is : |CREATE|DROP|INSERT|TABLE|DICT|PARTITION|OBJID|REP
执行完成,请查看执行模块日志,检查数据装载是否成功

Oracle:

SQL> select * from TEST.TEST2;

	 A     B

	 1    yhy

	 1    yhioh

源端更新数据同步测试:
达梦:

[dmdba@localhost bin]$ ./dmhs_console 
DMHS> start cpt
执行成功
SQL> insert into TEST.test2 values(1,'中文');   
影响行数 1

已用时间: 1.000(毫秒). 执行号:7715.
SQL> commit;
操作已执行
已用时间: 3.583(毫秒). 执行号:7716.

oracle查询:

SQL> select * from TEST.TEST2;

	 A     B

	 1    yhy

	 1    yhioh

	 1     中文

达梦技术社区:https://eco.dameng.com

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值