暂无图片
暂无图片
11
暂无图片
暂无图片
暂无图片

达梦数据库(DM8)采用DMHS搭建数据库实时同步

原创 王一舟 2020-09-01
6192

前言:达梦数据实时同步软件 DMHS 是达梦公司推出的新一代支持异构环境的高性能、高可靠和高可扩展的数据库实时同步系统。该产品基于成熟的关系数据模型和标准接口,跨越多种软硬件平台实现秒级数据实时同步。该产品可广泛应用于应急系统、容灾备份、负载均衡、数据移植、联机维护、订阅分发和多业务中心等业务领域。

image.png

一. DMHS基础概念

1.1 DMHS系统组成

DMHS 同步服务主要分为三大模块,分别是日志分析(CPT)、数据入库(EXEC)和消息发送(NET),这三个模块统一由管理模块(MGR)进行调度执行。

1.2 DMHS功能划分

为适应不同的应用场景,DMHS 提供的功能可以细分为捕获器功能、执行器功能、路由器功能、转发器功能。

二. 环境规划

名称 IP地址 远程部署端口 管理端口 数据端口 安装路径 备注
Node1 141.120.23.234 5456 5345 5346 /opt/dmhs 源库(DM8)
Node2 141.120.23.235 5456 5345 5346 /opt/dmhs 目标库(DM8)
Node3 141.120.23.236 8080 /opt/dmhs WEB管理(内置数据库DM7)

备注:node1与node2节点已安装DM8数据库

三. 安装dmhs基础软件

在三个节点分别执行
[root@node1 xiaoke]# chown dmdba:dinstall dmhs_V3.1.3_dm8_rev90484_rh6_64_veri_20200513.bin
[root@node1 xiaoke]# chmod +x dmhs_V3.1.3_dm8_rev90484_rh6_64_veri_20200513.bin
[root@node1 xiaoke]# mkdir /opt/dmhs
[root@node1 xiaoke]# chown dmdba:dinstall /opt/dmhs/ -R
[root@node1 xiaoke]# su - dmdba
[dmdba@node1 etc]$ export LANG=“zh_CN.UTF-8”
[dmdba@node1 xiaoke]$ ./dmhs_V3.1.3_dm8_rev90484_rh6_64_veri_20200513.bin

image.png
image.png
image.png
image.png

image.png
image.png
image.png
备注:根据各节点IP填写相应地址。
image.png
image.png

四. WEB服务器管理平台配置

DMHS配置的几种方式:
1、在软件安装后,使用tool目录下的dmhs配置助手工具(dmhs_hsca)进行配置;
2、使用WEB管理平台进行配置;
3、直接手动编辑dmhs.hs配置文件。
备注:本文档采用远程WEB管理平台方式在Node3节点进行配置。

4.1 启动内置数据库服务

[root@node3 xiaoke]# find /opt/dmhs/ -name DmS*
image.png
[root@node3 ~]# /opt/dmhs/db/bin/DmServiceHSDB status
[root@node3 ~]# /opt/dmhs/db/bin/DmServiceHSDB start
[root@node3 bin]# ps -ef |grep dms
[dmdba@node3 opt]$ disql SYSDBA/SYSDBA:15236
image.png

4.2 执行脚本dmhs_manager

备注:建议在图形化工具manager执行
dmhs manager4.0部署说明:
需在该数据库中执行dmhs_manager.sql来创建元数据,dmhs_manager.sql在dmhs安装目录下面的scripts目录下面
start /opt/dmhs/scripts/veri_manager.sql
start /opt/dmhs/scripts/dmhs_manager.sql
image.png

image.png

4.3 启动tomcat服务

4.3.1 配置数据库连接

配置后台数据库的连接信息,在文件WEB-INF/config/connectPool.xml(manager.war中)配置,使用内置数据库则无需修改;
[root@node3 config]# cd /opt/dmhs/web/webapps/manager/WEB-INF/config
image.png

4.3.2 启动tomcat

启动tomcat,运行dmhs安装bin目录下面的startWebServer.sh脚本,win下是startWebServer.bat;
[root@node3 bin]# cd /opt/dmhs/web/bin
image.png

开启浏览器访问url(http://141.120.23.236:8080/manager),登录(admin/888888)
image.png

五. 数据库环境配置

5.1 源端node1节点配置

5.1.1 配置归档

[root@localhost data]# mkdir /dm8/arch
[root@localhost data]# chown dmdba:dinstall /dm8/arch -R
[dmdba@node1 bin]$ disql SYSDBA/SYSDBA

SQL> select ARCH_MODE from V$DATABASE;
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dm8/arch,TYPE=LOCAL,FILE_SIZE=256,SPACE_LIMIT=204800';
ALTER DATABASE OPEN;

image.png

5.1.2 开启逻辑追加日志

sp_set_para_value(2,'RLOG_APPEND_LOGIC',1);  -
sp_set_para_value(2,'RLOG_APPEND_SYSTAB_LOGIC',0);
--重启完成后,查询验证参数是否生效
select para_value from v$dm_ini where para_name in 
('RLOG_APPEND_LOGIC','RLOG_APPEND_SYSTAB_LOGIC');

5.1.3 配置代理

[root@node1 hs_agent]# cd /opt/dmhs/hs_agent
[root@node1 hs_agent]# cat dmhs_agent.xml
修改配置如下:
image.png

[root@node1 hs_agent]# ./DmhsAgentServiceHsAgent status
[root@node1 hs_agent]# ./DmhsAgentServiceHsAgent start
image.png
image.png

5.1.4 创建辅助表

使用DM管理工具连接141.120.23.234,端口号5236,账号密码SYSDBA/密码。
备注:建议在图形化工具manager执行
start /opt/dmhs/scripts/ddl_sql_dm7.sql
image.png

5.2 目标端node2节点配置

5.2.1 配置归档

备注:也可以不配置归档,不影响DMHS同步。
[root@localhost data]# mkdir /dm8/arch
[root@localhost data]# chown dmdba:dinstall /dm8/arch -R
[dmdba@node2 bin]$ disql SYSDBA/SYSDBA

SQL> select ARCH_MODE from V$DATABASE;
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dm8/arch,TYPE=LOCAL,FILE_SIZE=256,SPACE_LIMIT=204800';
ALTER DATABASE OPEN;

5.2.2 配置代理

[root@node2 hs_agent]# cd /opt/dmhs/hs_agent
[root@node2 hs_agent]# cat dmhs_agent.xml
image.png

[root@node2 hs_agent]# ./DmhsAgentServiceHsAgent status
[root@node2 hs_agent]# ./DmhsAgentServiceHsAgent start
image.png

5.2.3 创建辅助表

使用DM管理工具连接141.120.23.235,端口号5236,账号密码SYSDBA/密码。
备注:建议在图形化工具manager执行
start /opt/dmhs/scripts/ddl_sql_dm7.sql

六. WEB平台添加DMHS实例

6.1 执行器配置

6.1.1 在目标端添加执行器

image.png
image.png

6.1.2 查看实例配置

image.png
image.png
image.png
[root@node2 hs_agent]# find /opt -name dmhs.hs
[root@node2 hs_agent]# cat /opt/dmhs/INST_HS/dameng_target/dmhs.hs

<?xml version="1.0" encoding="GB2312" standalone="no"?>
<dmhs>
    <base>
        <lang>ch</lang>
        <mgr_port>5345</mgr_port>
        <name>dameng_target</name>
        <ckpt_interval>60</ckpt_interval>
        <siteid>3</siteid>
        <version>2.0</version>
    </base>
    <exec>
        <recv>
            <mgr_port>5345</mgr_port>
            <data_port>5346</data_port>
        </recv>
        <enable>1</enable>
        <name>exec</name>
        <db_type>DM8</db_type>
        <db_server>141.120.23.235</db_server>
        <db_user>SYSDBA</db_user>
        <db_pwd>SYSDBA</db_pwd>
        <db_port>5236</db_port>
    </exec>
</dmhs>

[root@node2 hs_agent]#
image.png

6.1.3 查看代理配置

[dmdba@node2 ~]$ cat /opt/dmhs/hs_agent/dmhs_agent.xml
[dmdba@node2 ~]$ cat /opt/dmhs/hs_agent/dmhs_agent.xml

<?xml version="1.0" encoding="GB2312"?>
<hs_agent>
        <name>HsAgent</name>
        <lang>ch</lang>
        <server_ip>141.120.23.235</server_ip>
        <lsn_port>5456</lsn_port>
        <status_interval>3</status_interval>
        <status_server>141.120.23.236</status_server>
        <status_port>15236</status_port>
        <status_user>SYSDBA</status_user>
        <status_pwd>SYSDBA</status_pwd>
        <dmhs_support>1</dmhs_support>
        <veri_support>1</veri_support>
        <hs_item>
                <name>dameng_target</name>
                <startup_flag>1</startup_flag>
                <prog_dir>/opt/dmhs/INST_HS/dameng_target</prog_dir>
                <conf_path>/opt/dmhs/INST_HS/dameng_target/dmhs.hs</conf_path>
                <svr_name>DmhsServicedameng_target</svr_name>
                <stat>
                        <startup_flag>1</startup_flag>
                        <prog_dir>/opt/dmhs/INST_STAT/dameng_target</prog_dir>
                        <conf_path>/opt/dmhs/INST_STAT/dameng_target/dmhs_stat.xml</conf_path>
                        <svr_name>DmhsStatServicedameng_target</svr_name>
                </stat>
                <server_ip>141.120.23.235</server_ip>
                <mgr_port>5345</mgr_port>
        </hs_item>
</hs_agent>

[dmdba@node2 ~]$

image.png

6.1.4 查看状态监控配置

[dmdba@node2 ~]$ cat /opt/dmhs/INST_STAT/dameng_target/dmhs_stat.xml

<?xml version="1.0" encoding="GB2312"?>
<dmhs_stat>
        <base>
                <lang>ch</lang>
        </base>
        <dmhs_conf>
                <hs_xml_path>/opt/dmhs/INST_HS/dameng_target/dmhs.hs</hs_xml_path>
                <server_ip>141.120.23.235</server_ip>
                <mgr_port>5345</mgr_port>
                <startup_flag>1</startup_flag>
        </dmhs_conf>
        <stat_conf>
                <stat_module_alive>1</stat_module_alive>
                <module_alive_interval>5</module_alive_interval>
                <stat_statistic>1</stat_statistic>
                <statistic_interval>5</statistic_interval>
                <stat_thr_info>1</stat_thr_info>
                <thr_info_interval>5</thr_info_interval>
                <stat_lag_info>1</stat_lag_info>
                <lag_info_interval>5</lag_info_interval>
                <stat_errlog>1</stat_errlog>
                <stat_machine>1</stat_machine>
                <machine_interval>5</machine_interval>
        </stat_conf>
        <database>
                <db_server>141.120.23.236</db_server>
                <db_port>15236</db_port>
                <db_user>SYSDBA</db_user>
                <db_pwd>SYSDBA</db_pwd>
        </database>
</dmhs_stat>

[dmdba@node2 ~]$
image.png

6.2 捕获器配置

6.2.1 在源端添加捕获器

image.png
image.png

6.2.2 查看实例配置

image.png
image.png
[root@node1 hs_agent]# find /opt -name dmhs.hs
[root@node1 hs_agent]# cat /opt/dmhs/INST_HS/dameng_source/dmhs.hs
[root@node1 hs_agent]# cat /opt/dmhs/INST_HS/dameng_source/dmhs.hs

<?xml version="1.0" encoding="GB2312" standalone="no"?>
<dmhs>
    <base>
        <lang>ch</lang>
        <mgr_port>5345</mgr_port>
        <name>dameng_source</name>
        <ckpt_interval>60</ckpt_interval>
        <siteid>5</siteid>
        <version>2.0</version>
    </base>
    <cpt>
        <enable>1</enable>
        <name>cpt</name>
        <db_type>DM8</db_type>
        <db_server>141.120.23.234</db_server>
        <db_user>SYSDBA</db_user>
        <db_pwd>SYSDBA</db_pwd>
        <db_port>5236</db_port>
        <arch/>
        <send>
            <ip>141.120.23.235</ip>
            <mgr_port>5345</mgr_port>
            <data_port>5346</data_port>
            <filter>
                <enable>
                    <item>*.*</item>
                </enable>
            </filter>
        </send>
        <jdbc from_password="SYSDBA" from_type="DM8" from_url="jdbc:dm://141.120.23.234:5236" from_user="SYSDBA" to_password="SYSDBA" to_type="DM8" to_url="jdbc:dm://141.120.23.235:5236" to_user="SYSDBA"/>
    </cpt>
</dmhs>

[root@node1 hs_agent]#

6.2.3 查看代理配置

[root@node1 hs_agent]# cat /opt/dmhs/hs_agent/dmhs_agent.xml
image.png

6.2.4 查看状态监控配置

[root@node1 hs_agent]# cat /opt/dmhs/INST_STAT/dameng_source/dmhs_stat.xml
image.png

6.3 数据初始化

image.png

6.3.1 配置用户环境

[root@node2 ~]# cat ~/.bash_profile
export DMHS_HOME=/opt/dmhs
export LD_LIBRARY_PATH=/opt/dmhs/bin:/opt/dmhs/db/bin:$LD_LIBRARY_PATH
[root@node1 bin]# source ~/.bash_profile

6.3.2 启动dmhs_server

节点二:
[root@node2 ~]# cd /opt/dmhs/bin
[root@node2 bin]# ./dmhs_server /opt/dmhs/INST_HS/dameng_target/dmhs.hs

节点一:
[root@node1 ~]# cd /opt/dmhs/bin
[root@node1 bin]# ./dmhs_server /opt/dmhs/INST_HS/dameng_source/dmhs.hs

6.3.3 在目标端启动执行器

执行端运行 DMHS 软件工具 dmhs_console,连接执行端 DMHS 服务,控制台管理工具中执行如下 DMHS 命令:
[root@node2 bin]# cd /opt/dmhs/bin
[root@node2 bin]# ./dmhs_console
DMHS >connect 127.0.0.1:5345
DMHS >start exec
image.png

6.3.4 在源端启动捕获器

源端运行 DMHS 软件工具 dmhs_console,连接源端 DMHS 服务,设置日志捕获模块起始 LSN
[root@node1 ~]# cd /opt/dmhs/bin
[root@node1 bin]# ./dmhs_console

DMHS >connect 127.0.0.1:5345
DMHS >clear exec lsn

image.png
源端运行 DMHS 软件工具 dmhs_console,连接源端 DMHS 服务,装载源端字典信息及历史数据并启动日志捕获模块。

DMHS >copy 0 "SCH.NAME='SYSDBA'" CREATE|INSERT|DICT
DMHS >START CPT

image.png

七. 日志体系

image.png
iconv -f gbk -t utf-8 dmhs_202008.log > dmhs_2020081.log

7.1 DMHS代理进程

[root@node2 ~]# cd /opt/dmhs/hs_agent
[root@node2 hs_agent]# ./DmhsAgentServiceHsAgent start
对应日志
/opt/dmhs/hs_agent/log

image.png

7.2 DMHS状态监控进程

[root@node1 dameng_source]# cd /opt/dmhs/INST_STAT/dameng_source
[root@node1 dameng_source]# ./dmhs_stat dmhs_stat.xml
对应日志:

/opt/dmhs/INST_STAT/dameng_source/log
image.png

7.3 DMHS实例

[root@node2 bin]# dmhs_server /opt/dmhs/INST_HS/dameng_target/dmhs.hs
对应日志:
/opt/dmhs/bin/log
image.png

八. 数据库同步验证

8.1 DDL验证

image.png

8.2 DML验证

image.png

最后修改时间:2022-05-23 19:22:19
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论