达梦单机到DSC集群DMHS部署

        达梦数据实时同步软件 DMHS 是达梦公司推出的新一代支持异构环境的高性能、高可靠和高可扩展的数据库实时同步系统。该产品基于成熟的关系数据模型和标准接口,跨越多种软硬件平台实现秒级数据实时同步。该产品可广泛应用于应急系统、容灾备份、负载均衡、 数据移植、联机维护、订阅分发和多业务中心等业务领域。
        达梦数据实时同步软件 DMHS,通过秒级数据实时同步可以有效避免传统备份系统导 致的无法完全满足企业对于信息系统不中断服务的问题;通过变化日志捕捉可以有效降低传 统 ETL 工具因创建触发器、影子表等对业务系统带来的性能影响;通过实时的数据同步, 构建“双活”的主备系统,解决传统基于数据库自身的主备系统中备机只读而无法对外提供 写服务的问题。
DMHS 的基础实现原理如下图所示。
        DMHS 的组成原理框图中包含源端数据库、目标端数据库、源端 DMHS 服务以及目标端 DMHS 服务,其中源端 DMHS 服务主要由装载模块(LOAD)、日志捕获分析模块(CPT)以及管理服务模块(MGR)组成;目标端 DMHS 服务则由执行模块(EXEC)和管理服务模块 (MGR)组成。
        在源端,DMHS 的 CPT 模块采用优化的日志扫描算法实现增量日志数据的快速捕获分析,并将分析完成后的日志数据转换为内部的消息格式,然后通过网络将消息发送至目标端DMHS 服务;
        在目标端, DMHS 服务接收到源端的日志消息后,对消息进行处理,通过多线程并行执行的方式将同步数据应用至目标端数据库,实现数据实时同步。
        在大数据、云计算时代,面对日趋复杂的计算环境,DMHS 具有较好的平台适应性,支持主流的硬件平台架构如 x86_64、arm64、SPARC、POWER 以及国产飞腾、龙芯等;支持主流的操作系统平台如 Windows、Linux、AIX、HP-UX、Kylin 等。在同一解决方案架构下,能够实现企业不同平台上的多个信息系统的数据复制的需求。目前源数据库支持 DM、MySQL、PostgreSQL、DB2、SQLServer、Oracle9i 及以上版本。目标数据库支持可通过 ODBC接口连接的主流关系数据库系统,包括 DM、MySQL、PostgreSQL、DB2、SQLServer、Oracle9i及以上版本,同时目标端 DMHS还支持将数据同步至大数据处理平台组件如 Hive、Kafka。

目录

1、实验环境

2、环境检查

2.1、源端归档日志与逻辑日志检查

2.2、dmoci包检查

2.3、ddl同步

3、安装DMHS软件

4、配置同步(web配置)

4.1目的端配置执行器

4.2.源端配置捕获器

5、测试同步

6、配置文件

6.1、源端配置文件

6.2、目的端配置文件

7、配置过程相关错误

7.1.调用图形化失败:

7.2.修改cpt配置获取模式失败:


1、实验环境

数据库版本:dm8_20211026_x86_rh6_64_sec_8.1.2.84.iso

DMHS版本:dmhs_V4.2.98_dm8_rev117654_rh6_64_veri_20221028_sp2.bin

源端

目的端

ip地址

172.16.1.56

172.16.1.54

数据库架构

DM8单机

DM8DSC集群节点

安装目录

/dmdata/dmhs

/dmdata/dmhs

数据库端口

5236

5236

DMHS服务端口

5345

5345

数据接收端口

/

5346

2、环境检查

2.1、源端归档日志与逻辑日志检查

检查源端是否开启归档日志与逻辑日志

SELECT PARA_NAME, PARA_VALUE FROM V$DM_INI WHERE PARA_NAME IN('ARCH_INI','RLOG_APPEND_LOGIC');

开启归档:

alter database mount;
alter database add archivelog 'dest=/dmdata/dmarch,TYPE=local,FILE_SIZE=1024,SPACE_LIMIT=20480';
alter database archivelog;
alter database open;

开启逻辑日志:

SP_SET_PARA_VALUE(1,'RLOG_APPEND_LOGIC',2);

2.2、dmoci包检查

目的端使用和数据库同版本的libdmoci.so替换数据库安装目录下的libdmoci.so,和达梦申请相关dmdci包

2.3、ddl同步

如果要开启ddl同步,需要在源端执行相关ddl脚本,在DMHS安装目录的script目录下,直接disql执行脚本会乱码报错,先执行set CHAR_CODE UTF8再执行脚本,最好是在管理工具执行

3、安装DMHS软件

把安装包权限更改到dmdba用户下,赋予执行权限,使用dmdba用户安装

本次安装源端选择完整版,目的端选择精简版,将HSEM管理平台配置在源端上,目的端内置库使用源端IP

安装包目录下执行以下命令开始安装

./dmhs_V4.2.98_dm8_rev117654_rh6_64_veri_20221028_sp2.bin

 

 

 

 

4、配置同步(web配置)

http://ip:8080/manager

默认账号:admin/888888

 

4.1目的端配置执行器

1、添加HS实例,选择执行器

2、启动HS实例

3、启动执行器

4.2.源端配置捕获器

1、添加HS实例,配置捕获器

2、修改CPT配置,同步模式映射

3、启动HS实例

4、初次启用要先装载字典

5、启动CPT

目的端执行

 start exec

源端执行

CLEAR EXEC LSN
COPY 0 “SCH.NAME=’SYSDBA’” DICT
START CPT

5、测试同步

在源端建表、插数据

CREATE TABLE TEST(ID INT,NAME VARCHAR2(20));
INSERT INTO TEST VALUES(1,'张三');
INSERT INTO TEST VALUES(2,'李四');
INSERT INTO TEST VALUES(3,'王五');
COMMIT;

 目的端查看是否同步

 发现同步过来的中文数据乱码,修改源端目的端字符集为PG_UTF8,重启服务

6、配置文件

6.1、源端配置文件

HS实例服务配置文件

<?xml version="1.0" encoding="GB2312" standalone="no"?>

<dmhs>

    <base>

        <lang>ch</lang>

        <mgr_port>5345</mgr_port>

        <name>DMSERVER</name>

        <ckpt_interval>60</ckpt_interval>

        <siteid>2</siteid>

        <version>2.0</version>

    </base>

    <cpt>

        <enable>1</enable>

        <name>cpt</name>

        <db_type>DM8</db_type>

        <db_server>172.16.1.56</db_server>

        <db_user>SYSDBA</db_user>

        <db_pwd>SYSDBA</db_pwd>

        <char_code>PG_UTF8</char_code>

        <db_port>5236</db_port>

        <ddl_mask>TABLE:CREATE:DROP:TRUNCATE:ALTER</ddl_mask>

        <cpt_mask/>

        <send>

            <ip>172.16.1.54</ip>

            <mgr_port>5345</mgr_port>

            <data_port>5346</data_port>

            <filter>

                <enable>

                    <item>SYSDBA.*</item>

                    <item>*.*</item>

                </enable>

            </filter>

            <map>

                <item>SYSDBA.*==SYSDBA.*</item>

            </map>

        </send>

    </cpt>

</dmhs>

STAT监控服务

<?xml version="1.0" encoding="GB2312"?>

<dmhs_stat>

<base>

<lang>ch</lang>

</base>

<dmhs_conf>

<hs_xml_path>/dmdata/dmhs/INST_HS/DMSERVER/dmhs.hs</hs_xml_path>

<server_ip>172.16.1.56</server_ip>

<mgr_port>5345</mgr_port>

<startup_flag>2</startup_flag>

</dmhs_conf>

<stat_conf>

<stat_module_alive>1</stat_module_alive>

<module_alive_interval>30</module_alive_interval>

<stat_statistic>1</stat_statistic>

<statistic_interval>30</statistic_interval>

<stat_thr_info>1</stat_thr_info>

<thr_info_interval>30</thr_info_interval>

<stat_lag_info>1</stat_lag_info>

<lag_info_interval>30</lag_info_interval>

<stat_errlog>1</stat_errlog>

<stat_machine>1</stat_machine>

<machine_interval>30</machine_interval>

<save_sql>1</save_sql>

<stat_delay>30</stat_delay>

</stat_conf>

<database>

<db_server>172.16.1.56</db_server>

<db_port>15236</db_port>

<db_user>SYSDBA</db_user>

<db_pwd>SYSDBA</db_pwd>

</database>

</dmhs_stat>

Agent代理服务

<?xml version="1.0" encoding="GB2312"?>

<hs_agent>

<name>HsAgent</name>

<lang>ch</lang>

<server_ip>172.16.1.56</server_ip>

<lsn_port>5456</lsn_port>

<status_interval>3</status_interval>

<status_server>172.16.1.56</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>DMSERVER</name>

<startup_flag>2</startup_flag>

<prog_dir>/dmdata/dmhs/INST_HS/DMSERVER</prog_dir>

<conf_path>/dmdata/dmhs/INST_HS/DMSERVER/dmhs.hs</conf_path>

<svr_name>DmhsServiceDMSERVER</svr_name>

<stat>

<startup_flag>2</startup_flag>

<prog_dir>/dmdata/dmhs/INST_STAT/DMSERVER</prog_dir>

<conf_path>/dmdata/dmhs/INST_STAT/DMSERVER/dmhs_stat.xml</conf_path>

<svr_name>DmhsStatServiceDMSERVER</svr_name>

</stat>

<server_ip>172.16.1.56</server_ip>

<mgr_port>5345</mgr_port>

</hs_item>

</hs_agent>

6.2、目的端配置文件

 

HS实例服务配置文件

<?xml version="1.0" encoding="GB2312" standalone="no"?>

<dmhs>

    <base>

        <lang>ch</lang>

        <mgr_port>5345</mgr_port>

        <name>DSC0</name>

        <ckpt_interval>60</ckpt_interval>

        <siteid>1</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>172.16.1.54</db_server>

        <db_user>SYSDBA</db_user>

        <db_pwd>SYSDBA</db_pwd>

        <db_port>5236</db_port>

        <char_code>PG_UTF8</char_code>

        <exec_thr>4</exec_thr>

    </exec>

</dmhs>

STAT监控服务

<?xml version="1.0" encoding="GB2312"?>

<dmhs_stat>

<base>

<lang>ch</lang>

</base>

<dmhs_conf>

<hs_xml_path>/dmdata/dmhs/INST_HS/DSC0/dmhs.hs</hs_xml_path>

<server_ip>172.16.1.54</server_ip>

<mgr_port>5345</mgr_port>

<startup_flag>2</startup_flag>

</dmhs_conf>

<stat_conf>

<stat_module_alive>1</stat_module_alive>

<module_alive_interval>30</module_alive_interval>

<stat_statistic>1</stat_statistic>

<statistic_interval>30</statistic_interval>

<stat_thr_info>1</stat_thr_info>

<thr_info_interval>30</thr_info_interval>

<stat_lag_info>1</stat_lag_info>

<lag_info_interval>30</lag_info_interval>

<stat_errlog>1</stat_errlog>

<stat_machine>1</stat_machine>

<machine_interval>30</machine_interval>

<save_sql>1</save_sql>

<stat_delay>30</stat_delay>

</stat_conf>

<database>

<db_server>172.16.1.56</db_server>

<db_port>15236</db_port>

<db_user>SYSDBA</db_user>

<db_pwd>SYSDBA</db_pwd>

</database>

</dmhs_stat>

Agent代理服务

<?xml version="1.0" encoding="GB2312"?>

<hs_agent>

<name>HsAgent</name>

<lang>ch</lang>

<server_ip>172.16.1.54</server_ip>

<lsn_port>5456</lsn_port>

<status_interval>3</status_interval>

<status_server>172.16.1.56</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>DSC0</name>

<startup_flag>2</startup_flag>

<prog_dir>/dmdata/dmhs/INST_HS/DSC0</prog_dir>

<conf_path>/dmdata/dmhs/INST_HS/DSC0/dmhs.hs</conf_path>

<svr_name>DmhsServiceDSC0</svr_name>

<stat>

<startup_flag>2</startup_flag>

<prog_dir>/dmdata/dmhs/INST_STAT/DSC0</prog_dir>

<conf_path>/dmdata/dmhs/INST_STAT/DSC0/dmhs_stat.xml</conf_path>

<svr_name>DmhsStatServiceDSC0</svr_name>

</stat>

<server_ip>172.16.1.54</server_ip>

<mgr_port>5345</mgr_port>

</hs_item>

</hs_agent>

7、配置过程相关错误

7.1.调用图形化失败:

ROOT用户下执行xhost +,然后,再查看下echo $DISPLAY环境变量的值,dmdba用户再临时赋值此变量的值

 

7.2.修改cpt配置获取模式失败:

添加过滤规则和映射规则时报错获取模式失败,原因是安全版默认开启SSL认证,关闭SSL,重启数据库即可

关闭SSL:

sp_set_para_value(2,'ENABLE_ENCRYPT',0);

7.3、执行start exec卡住:

使用和数据库安装包同版本的libdmoci.so文件,上传到数据库安装目录的bin目录下

如果已经更换后,在web端还是卡住,直接在命令行登录控制台执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值