DM8到DM8部署DMHS双向同步

环境准备

源端数据库安装dm8数据库并模拟业务数据
创建测试表TEST_LJK
Create table test_ljk(id int,name varchar(20));
插入数据
Insert into test_ljk(id,name) values(1,’Joy’);
Insert into test_ljk(id,name) values(1,’Emily’);
Insert into test_ljk(id,name) values(1,’Tom’);

需求:
增加一台主机作为目标端,同样部署dm8数据库,实现从源端到目标端的数据双向同步

Dm8数据库安装参考:
https://blog.csdn.net/xiaoke_2013/article/details/127763539

在这里插入图片描述

源端和目标端安装DMHS

源端和目标端上传DMHS安装包,并修改所属用户和组(dmdba:dinstall)
[root@dm001 bin]# cd /dmdbms/dm_x/
[root@dm001 dm_x]# ll
-rwxrwxr-x 1 dmdba dinstall 490681665 Nov 22 10:27 dmhs_V4.2.98_dm8_rev117136_rh6_64_veri_20221020_sp1.bin
[root@dm001 dm_x]# ./dmhs_V4.2.98_dm8_rev117136_rh6_64_veri_20221020_sp1.bin
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

源端
在这里插入图片描述

源端和目标端安装DMHS时,主机IP和内置数据库IP填写各自主机IP
例:目标端
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

源端和目标端调整配置文件

[root@dm001 ~]# vim /dmdbms/dm8/data/DAMENG/dm.ini
ARCH_INI = 1 ##开启归档
RLOG_APPEND_LOGIC = 1 ##开启逻辑日志
FAST_COMMIT = 0 #必须为 0,否则会导致逻辑日志不全而影响同步。
调整后,重启数据库服务

验证参数是否生效
SQL> SELECT ARCH_DEST, ARCH_FILE_SIZE FROM SYS.V D M A R C H I N I W H E R E A R C H T Y P E = ′ L O C A L ′ A N D A R C H I S V A L I D = ′ Y ′ ; S Q L > S E L E C T P A R A V A L U E F R O M S Y S . V DM_ARCH_INI WHERE ARCH_TYPE='LOCAL' AND ARCH_IS_VALID='Y'; SQL> SELECT PARA_VALUE FROM SYS.V DMARCHINIWHEREARCHTYPE=LOCALANDARCHISVALID=Y;SQL>SELECTPARAVALUEFROMSYS.VDM_INI WHERE PARA_NAME = ‘RLOG_APPEND_LOGIC’;
SQL> select para_value from v$dm_ini where para_name = ‘FAST_COMMIT’;
源端执行DDL脚本
如果要求 DDL 同步,那么需要创建 DDL 触发器和辅助表。创建的脚本参见 DMHS 安
装目录下 scripts 子目录中“ddl_sql_dm8.sql”。注意创建时需要使用 SYSDBA 用户。

执行DDL脚本时,创建9张辅助表和4张触发器
(建议使用manager管理工具SYSDBA登录执行,命令行执行会提示输入值且创建后缺少部分表)
`/home/dmdba/dmhs/scripts/ddl_sql_dm8.sql

查看创建的辅助表
select owner, table_name from dba_tables where owner = ‘SYSDBA’ and table_name like ‘DMHS%’ and status = ‘VALID’;
在这里插入图片描述

查看创建的触发器
select owner, trigger_name from dba_triggers where owner = ‘SYSDBA’ and trigger_name like ‘DMHS%’ and status = ‘Y’;
在这里插入图片描述

源端和目标端配置dmhs.hs文件
源端
在这里插入图片描述
目标端
在这里插入图片描述

现对以上的基本配置作如下几点说明:

  1. siteid 全局唯一,即 DMHS 同步系统涉及的所有节点的 siteid 必须全局唯一,不允
    许有重复值。
  2. DDL 配置项,如果不需要DDL 同步,那么就配置为空,即<ddl_mask></ddl_mask>,
    相应地DMHS DDL 触发器和辅助表也不需要创建。
  3. 归档清理配置项,clear_flag 为 1 表示清除,即DMHS 将同步完成的归档文件删除;
    为2,表示将同步完成的归档移到 bak_dir 目录下;为0,表示不作任何操作。
  4. 过滤配置项,本示例配置了白名单,即 enable,也可以配置黑名单,详见 DMHS
    用户手册。其过滤的规则是:先判断白名单,然后判断黑名单。如果存在重叠的情况,那么
    也是会被过滤的。
  5. 映射配置项,表示存在不同模式之间的表同步,例如本示例中源端的 SYSDBA 模
    式下的表映射成目的端的DMHS 模式下同名的表。
    源端和目标端配置环境变量
    在这里插入图片描述

启动dmhs服务

目标端
[root@dms1 tool]# cd /home/dmdba/dmhs/bin
[root@dms1 bin]# ./dmhs_server dmhs.hs

源端
[root@dm001 ~]# cd /home/dmdba/dmhs/bin
[root@dm001 bin]# ./dmhs_server dmhs.hs

初始装载

初始装载是将源端数据库中的初始数据装载到目的端数据库,使 DMHS 同步的时刻源 和目的端的同步表数据一致。装载前源端 DMHS 服务和目的端DMHS 服务都需要开启。本实验的目的端 DMHS 使用的是和源端相同环境的 DM8 数据库。
#目标库启动执行器
[root@dms1 tool]# cd /dm8/dmhs/bin
[root@dms1 tool]#./dmhs_console
DMHS> connect 192.168.229.132:5345
DMHS> START EXEC

#源库启动执行器
[root@dm001 bin]#./dmhs_server dmhs.hs
DMHS> connect 192.168.229.131:5345
DMHS> START EXEC

#源端端执行:
DMHS >CLEAR EXEC LSN(慎用)
DMHS >COPY 0 “SCH.NAME=‘SYSDBA’” DICT|LSN|CREATE|INSERT|INDEX

#目标端执行:
DMHS >COPY 0 “sch.name=‘SYSDBA’” DICT|LSN|CREATE|INSERT|INDEX

注:初始装载
DMHS >copy 0 “sch.name=‘SYSDBA’” DICT|LSN|CREATE|INSERT|INDEX
说明:sch.name 为模式名。
启动CPT
启动两台的CPT日志分析捕获器()
#目标库启动执行器
DMHS> START CPT

#源库启动执行器
DMHS> START CPT

测试同步

源端查看test_ljk并插入新的数据
SQL> select * from test_ljk;
LINEID ID NAME


1 1 Joy
2 2 Emily
3 3 Tom

SQL> insert into test_ljk(id,name) values(4,’Jerry’);
SQL> commit;

目标端查看结果
SQL> select * from test_ljk;
LINEID ID NAME


1 1 Joy
2 2 Emily
3 3 Tom
4 4 Jerry
源端到目标端同步成功。

测试目标端插入数据
SQL> insert into test_ljk(id,name) values(5,’Coco’);
SQL> commit;

回到源端查看结果
SQL> select * from test_ljk;
LINEID ID NAME


1 1 Joy
2 2 Emily
3 3 Tom
4 4 Jerry
5 5 Coco
至此,DMHS双向同步部署完成!

源端和目标端DMHS注册服务

[root@dm001 bin]# cd /home/dmdba/dmhs/scripts/root
[root@dm001 root]# ./dmhs_service_installer.sh -t dmhs_server -a true -p HMS -x /home/dmdba/dmhs/bin/dmhs.hs -d /home/dmdba/dmhs/bin
Created symlink /etc/systemd/system/multi-user.target.wants/DmhsServiceHMS.service → /usr/lib/systemd/system/DmhsServiceHMS.service.
创建服务(DmhsServiceHMS)完成
[root@dm001 root]# cd /home/dmdba/dmhs/bin/
[root@dm001 bin]# ./DmhsServiceHMS start

遇到的问题

执行clear exec lsn
在这里插入图片描述

需要dm到dm的oci文件libdmoci.so,dmhs安装好以后放置在bin目录下,
[dmdba@dm001 bin]$ pwd
/home/dmdba/dmhs/bin

启动start exec失败
需修改软链接:#ln -s libodbc.so.2.0.0 libodbc.so.1

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值