注册
DMHS (DM-DM)数据同步安装配置总结
专栏/培训园地/ 文章详情 /

DMHS (DM-DM)数据同步安装配置总结

绝影 2023/12/05 1657 0 0
摘要

一、安装前准备

环境介绍:

  1. 操作系统版本:Kylinv10
  2. 主机:lbl,IP:192.168.128.138
    数据库版本:DM Database Server x64 V8 -1-2-138-2022.09.27-170566-20009-ENT
  3. 主机:lblbak,IP:192.168.128.139
    数据库版本:DM Database Server x64 V8 -1-2-138-2022.09.27-170566-20009-ENT
  4. HS版本:dmhs_V4.1.48_pack4_dm8_rev104804_rh6_64_veri_20211228.bin

二、DMHS安装

注:本次仅通过DMHS软件测试DM-DM数据同步,达梦数据库需要先部署完成。

安装前准备工作

  1. 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  1. 关闭Selinux
临时关闭selinux:
setenforce 0
永久关闭selinux(重启生效):
sed -i"s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
获取当前selinux状态
[root@lbl ~]# getenforce
Disabled
[root@lbl ~]# sestatus
SELinux status: disabled

安装DMHS

1. 使用系统用户dmdba执行安装程序,安装过程如下所示:
$ chmod 775 dmhs_V4.1.48_pack4_dm8_rev104804_rh6_64_veri_20211228.bin
$./dmhs_V4.1.48_pack4_dm8_rev104804_rh6_64_veri_20211228.bin

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
注:139HS软件安装同138,安装过程略

三、数据库配置调整

  1. lbl端开启归档
SQL> ALTER DATABASE MOUNT;
SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST = /dm8/dmarch,TYPE = local, FILE_SIZE = 1024, SPACE_LIMIT = 51200';
SQL> ALTER DATABASE ARCHIVELOG;
  1. 开启逻辑追加日志
SQL> SP_SET_PARA_VALUE(1,'RLOG_APPEND_LOGIC',1);
SQL> select para_value from V$DM_INI WHEREPARA_NAME='RLOG_APPEND_LOGIC';
注意:RLOG_APPEND_LOGIC为“1”,表示逻辑追加日志启用;为“0”表示未启用。

image.png
3. 执行DDL同步所需脚本

SQL> start /opt/dmhs/scripts/ddl_sql_dm8.sql
注意:建议在管理工具中执行sql脚本,避免一些乱码问题。脚本会在SYSDBA模式下创建9张表4个库级触发器。

image.png
4. 配置环境变量

su - dmdba
vim ~/.bash_profile
export DM_HOME=/opt/dmdbms
export DMHS_HOME=/opt/dmhs
export PATH=$PATH:$DM_HOME/bin
exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DMHS_HOME/bin:$DM_HOME/bin
source ~/.bash_profile

image.png
5. 依赖库查询

su - dmdba
cp dmoci/libdmoci.so /dm8/dmhs/bin
cd /opt/dmhs/bin
ldd libcpt_dm8.so
ldd libdmhs_exec.so

lblbak端:
操作方式与lbl端相同

四、配置dmhs.hs

  1. 配置lbl端dmhs.hs
    注意:配置文件中siteid为唯一值,无论lbl端还是lblbak端,不同配置文件不能相同,请参考配置附件文件lblhs.hs文件内容
    [dmdba@lbl ~]$ cd /opt/dmhs/bin
    [dmdba@lbl bin]$ vim dmhs.hs
    请参考第十章附件配置文件内容

  2. 配置lblbak端dmhs.hs
    注意:配置文件中siteid为唯一值,不能与lbl端相同
    [dmdba@lblbak ~]$ cd /opt/dmhs/bin
    [dmdba@lblbak bin]$ vim dmhs.hs
    请参考第十章附件配置文件内容

五、配置后台启动脚本服务

lbl端:
[root@lbl ~]# cd /opt/dmhs/scripts/root/
[root@lbl ~]# ./dmhs_service_installer.sh-t dmhs_server -a true -p DMSERVER -x /dm8/dmhs/bin/dmhs.hs
image.png
lblbak端:
[root@lblbak ~]# cd /opt/dmhs/scripts/root/
[root@lblbak ~]# ./dmhs_service_installer.sh -t dmhs_server -a true -pDMSERVER -x /dm8/dmhs/bin/dmhs.hs
image.png

六、启动DMHS服务

lbl端:
[dmdba@lbl ~]$ cd /dm8/dmhs/bin
[dmdba@lbl ~]$ ./DmhsServiceDMSERVER start
image.png
lblbak端:
[dmdba@lblbak ~]$ cd /dm8/dmhs/bin
[dmdba@lblbak ~]$ ./DmhsServiceDMSERVER start
image.png

七、装载数据

  1. lblbak端禁用约束和触发器
    禁用约束
    先在lblbak端中使用以下SQL语句批量生成禁用约束的SQL语句,然后把生成的禁用约束的语句在数据库中执行

--生成禁用外键约束的语句
SELECT 'ALTER TABLE"'||OWNER||'"."'||TABLE_NAME||'" DISABLE CONSTRAINT"'||CONSTRAINT_NAME||'";',CONSTRAINT_TYPE,DBA_CONSTRAINTS.STATUS FROMDBA_CONSTRAINTS WHERE OWNER='WATERUSER' AND CONSTRAINT_TYPE='R';

--生成禁用其他约束的语句
SELECT 'ALTER TABLE"'||OWNER||'"."'||TABLE_NAME||'" DISABLE CONSTRAINT "'||CONSTRAINT_NAME||'";',CONSTRAINT_TYPE,DBA_CONSTRAINTS.STATUSFROM DBA_CONSTRAINTS WHERE OWNER='WATERUSER' AND CONSTRAINT_TYPE IN('C','P','U');
2. 禁用触发器
先在lblbak端中使用以下SQL语句批量生成禁用触发器的SQL语句,然后把生成的禁用触发器的语句在DM31端数据库中执行

--生成禁用触发器的语句

SELECT 'ALTER TRIGGER "'||OWNER||'"."'||TRIGGER_NAME||'"DISABLE;' FROM DBA_TRIGGERS WHERE OWNER ='WATERUSER' AND STATUS='Y';

  1. lblbak端启动执行器

[dmdba@lblbak ~]$ cd /dm8/dmhs/bin

[dmdba@lblbak bin]$ ./dmhs_console

DMHS> connect 192.168.128.139:5345

DMHS> start exec

  1. lbl端装载数据和字典

[dmdba@lbl ~]$ cd /dm8/dmhs/bin

[dmdba@lbl bin]$ ./dmhs_console

DMHS> connect 192.168.128.138:5345

DMHS> clear exec lsn

DMHS> COPY 0 "SCH.NAME='WATERUSER'"CREATE|INSERT|DICT|THREAD|8|REG

八、开启同步

  1. lbl端启动捕获器

[dmdba@lbl ~]$ cd /opt/dmhs/bin

[dmdba@lbl bin]$ ./dmhs_console

DMHS> connect 192.168.128.138:5345

DMHS> start cpt

九、同步验证

lbl源端:
create table test(a1 int);
insert into hstest values(1);
commit;
lblbak目的端:
select * from SYSDBA.test;

十、lblbak目的端禁用约束、触发器说明

DMHS同步过程中目的端EXEC模块在事务数据入库时,由于采用的是ODBC标准的接口操作数据库,如果目标表上存在触发器,那么入库操作同样会触发这些触发器,如果触发器中会涉及到数据或是其它表的修改,则会造成源端和目标端数据的不一致。在搭建启用DMHS同步时,应该事先禁用目标库中需要同步模式表上的触发器,针对表上外键约束也是如此。

  • 当DMHS同步软件用于数据迁移场景使用时,通过DMHS进行全量+增量数据一次性迁移至目标库,在迁移完成后需启用目标库用户表上存在的触发器、约束和外键,避免影响业务功能用。
    --生成启用外键约束的语句
    SELECT 'ALTER TABLE "'||OWNER||'"."'||TABLE_NAME||'" ENABLE CONSTRAINT "'||CONSTRAINT_NAME||'";',CONSTRAINT_TYPE,DBA_CONSTRAINTS.STATUS FROM DBA_CONSTRAINTS WHERE OWNER='WATERUSER' AND CONSTRAINT_TYPE='R';
    --生成启用其他约束的语句
    SELECT 'ALTER TABLE "'||OWNER||'"."'||TABLE_NAME||'" ENABLE CONSTRAINT "'||CONSTRAINT_NAME||'";',CONSTRAINT_TYPE,DBA_CONSTRAINTS.STATUS FROM DBA_CONSTRAINTS WHERE OWNER='WATERUSER' AND CONSTRAINT_TYPE IN ('C','P','U');
    --生成启用触发器的语句
    SELECT 'ALTER TRIGGER "'||OWNER||'"."'||TRIGGER_NAME||'" ENABLE;' FROM DBA_TRIGGERS WHERE OWNER ='WATERUSER' AND STATUS='Y';
  • 当DMHS同步软件用于高可用灾备系统架构场景源端和目的端数据实时同步工具使用时,为保障数据一致性作为灾备端目标表上存在的触发器、外键约束不建议启用。

十一、附件:

lbl源端dmhs.hs配置文件:lblhs.hs.txt
lblbak目的端dmhs.hs配置文件:lblbakhs.hs.txt

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服