2021-01-18

DM8-DM8单实例数据库DMHS部署搭建

一、DMHS软件概述
DMHS全称是Heterogeneous database Synchronization for DM,即达梦异构数据库同步软件。DMHS是基于数据库日志,支持同构、异构数据库的实时同步软件,可以实现双业务中心架构。DMHS软件功能非常丰富,支持多种架构场景,主流数据实时同步软件的相关功能DMHS都已实现并且根据实际业务需求丰富了更多功能。主流的数据实时同步软件主要有:Oracle、GoldenGate、DSG RealSync、Quest Shareplex等。
二、DMHS软件特点
• 高性能,轻量级软件
• 实时数据复制,源端基于数据库日志进行增量数据捕获
• 支持异构平台数据同步
• 支持断点续传,支持传输数据压缩和加密、支持多种复杂拓扑架构
• 以数据库事务为最小复制单位,确保复制数据的完整性和一致性
• 灵活拓扑结构:1:1、1:N、N:1、N:N、双向复制等
• 丰富的高级功能支持:文件转换、复杂拓扑、FTP架构、支持Kafka、支持ETL工具
• 支持多种软硬件平台、支持同步数据链路冗余
• 支持主流关系型数据库(DM、Oracle、MySQL、PostgreSQL、DB2、SQL Server等)
三、DMHS软件架构
在这里插入图片描述

四、DMHS软件安装
4.1 环境需求
内存要求: DMHS 需要的内存总量取决于执行的分析线程以及执行线程的并发数,最少需要 1G 内存。
磁盘需求: DMHS 安装文件占用 443M,包括了管理工具以及管理界面占用的空间,另外需要一些额外的空间存储 DMHS 运行的日志文件。
操作系统权限: 在 Windows 安装时,安装和执行 DMHS 的用户必须是管理员身份;在 Linux 平台下安装,安装用户必须有权限读写 DMHS 安装目录,将涉及的数据库接口动态库添加到系统共享库环境变量中。
网络要求: 配置系统支持 TCP/IP 服务(DMHS 安装的所有机器必须配置主机名或者 IP地址)。 DMHS 需要使用以下 TCP/IP 端口:管理进程间通信的默认端口 5345;发送和执行子系统之间通信的默认端口 5346;用户可以自行定义这些端口。
4.2 软件安装
(1)系统的硬件环境如下(虚拟机)
硬件名称 配置
Red Hat -dmhs-source 源端服务器操作系统:Red Hat Enterprise Linux Server release 6.4
内存:4G
磁盘:40G
Red Hat -dmhs-destination 目的端服务器操作系统:Red Hat Enterprise Linux Server release 6.4
内存:4G
磁盘:40G

(2)网络环境配置
数据库环境 列表
IP设置 源端:192.168.175.146
目的端:192.168.175.147

(3)数据库版本
版本号 开发商
DM8 dm8_x86_rh6_64_ent_8.1.1.134 武汉达梦数据库有限公司

(4)安装DM8数据库
源端和目的端都需要安装DM8数据库,具体安装参考DM8安装手册;

(5)安装DMHS
Linux安装命令:
./ dmhs_V3.1.3_dm8_rev95241_rh6_64_veri_202…bin(图形界面安装)
./ dmhs_V3.1.3_dm8_rev95241_rh6_64_veri_202…bin -i (非图形化安装)

安装过程:源端和目的端都需要安装,一样的安装步骤!!!
[dmdba@localhosthome]$ ./dmhs_V3.1.3_dm8_rev95241_rh6_64_veri_202…bin -i
Extract install files…

1.英文(English)
2.简体中文(简体中文)
请选择安装语言[2.简体中文(简体中文)]:2
/tmp/DMHSInstall/install.log
1.免费试用达梦数据实时同步
2.使用已申请的Key文件
验证许可证文件[1.免费试用达梦数据实时同步]:1
1.精简版
2.完整版(web客户端)
3.自定义
安装类型[1.精简版]:2
1.实时同步软件服务器
2.远程部署工具
3.实时同步软件客户端
4.内置数据库
5.实时同步软件配置助手
6.手册
所需磁盘空间:828 MB
安装目录: [/home/dmdba/dmhs]/home/dmdba/dmhs
1.统一部署
2.现在初始化
是否初始化达梦数据实时同步系统[1.统一部署]: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.175.146:
远程部署工具管理端口5456:
内置数据库轮询间隔3:
内置数据库IP[192.168.175.146]:
内置数据库端口[15236]:
内置数据库用户名[SYSDBA]:
内置数据库密码[SYSDBA]:
内置数据库服务
1.自动
2.手动
启动方式:[2.手动]2
正在创建内置数据库服务
初始化内置数据库
远程控制服务
1.自动
2.手动
启动方式:[2.手动]2
正在创建远程控制服务
web服务
1.自动
2.手动
启动方式:[2.手动]2
正在创建web服务
达梦数据实时同步 V4.0 安装完成
更多安装信息,请查看安装日志文件:
/home/dmdba/dmhs/log/install.log

至此,DMHS安装完成,后续进行相关配置;

五、DM8 DMHS相关配置
采用的是手动配置dmhs.hs,即在安装目录/home/dmdba/dmhs/bin下手动添加dmhs.hs文件,源端和目的端的配置文件内容不同,需要注意!!!

5.1 配置源端
(1)开启归档和逻辑设置
1)设置归档标记和逻辑日志标记
打开DM8服务器/home/dmdba/dmdbms/data/DAMENG目录下的配置文件“dm.ini”,设置如下值:
ARCH_INI = 1
RLOG_APPEND_LOGIC = 1
如图:
在这里插入图片描述在这里插入图片描述
注意:dm.ini配置参数中“FAST_COMMIT”必须为0,否则会导致逻辑日志不全而影响同步。

2) 添加归档配置文件。在“dm.ini”同目录下创建文件“dmarch.ini”,示例内容下:
[ARCHIVE_LOCAL1] #REDO日志归档名
ARCH_TYPE = LOCAL
ARCH_DES = /home/dmdba/dmdbms/data/DAMENG/arch_log
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

如图:
在这里插入图片描述

注:需要创建/home/dmdba/dmdbms/data/DAMENG/arch_log归档日志目录

  1. 重启DM8数据库,使配置参数生效。
    在这里插入图片描述

  2. 验证配置的正确性
    a) 检查归档配置的正确性,请执行以下SQL命令:
    SELECT ARCH_DEST, ARCH_FILE_SIZE FROM SYS.V$DM_ARCH_INI WHERE ARCH_TYPE=‘LOCAL’ AND ARCH_IS_VALID=‘Y’;
    如图:
    在这里插入图片描述

b) 检查逻辑日志配置的正确性,通过下面的查询:
SELECT PARA_VALUE FROM SYS.V$DM_INI WHERE PARA_NAME = ‘RLOG_APPEND_LOGIC’;
如图:
在这里插入图片描述

c) 检查在线日志,通过如下的查询:
SELECT PATH FROM SYS.V$RLOGFILE;
如图:
在这里插入图片描述

d) 检查FAST_COMMIT参数是否为0
SELECT PARA_VALUE FROM V$DM_INI WHERE PARA_NAME = ‘FAST_COMMIT’;
如图:
在这里插入图片描述

注:查询值为0则表示正常!!!

(2)配置DDL
如果要求DDL同步,那么需要创建DDL触发器和辅助表。创建的脚本参见DMHS安装目录下scripts子目录中“ddl_sql_dm8.sql”。注意创建时需要使用SYSDBA用户,本次搭建需要创建DDL触发器和辅助表,如图:
在这里插入图片描述

注意:创建时登陆./disql,直接用start方式调用脚本可能会存在创建辅助表和触发器时出现创建不成功,命令如下:
start /home/dmdba/dmhs/scripts/ddl_sql_dm8.sql

所以建议采用打开脚本,复制脚本中每个DDL语句逐步执行,一定要按脚本中的顺序逐步执行,不然会出现创建不成功!!!创建完成之后,检查创建的触发器和辅助表是否有效,检查辅助表的语句:
select owner, table_name from dba_tables where owner = ‘SYSDBA’ and table_name like ‘DMHS%’ and status = ‘VALID’;

检查结果如图,如果存在以下的查询结果,表示DMHS辅助表创建有效:
在这里插入图片描述

检查触发器的语句:
select owner, trigger_name from dba_triggers where owner = ‘SYSDBA’ and trigger_name like ‘DMHS%’ and status = ‘Y’;

检查结果如图,如果存在以下的查询结果,表示DMHS触发器创建有效:
在这里插入图片描述

(3)配置源端dmhs.hs
安装目录/home/dmdba/dmhs/bin下的dmhs.hs是DMHS默认的配置文件,如果需要DDL同步,那么基本的配置示例如下:

<?xml version="1.0" encoding="GB2312"?>
<dmhs>
    <base>
        <lang>ch</lang>
        <mgr_port>5345</mgr_port>        
        <ckpt_interval>60</ckpt_interval>
        <siteid>1</siteid>
    </base>
    <cpt>
        <db_type>dm8</db_type>
        <db_server>192.168.175.146</db_server><!--源端IP-->
        <db_user>SYSDBA</db_user>
        <db_pwd>SYSDBA</db_pwd>
        <db_port>5236</db_port>
        <db_ssl_path></db_ssl_path>
        <db_ssl_pwd></db_ssl_pwd>
        <parse_thr>1</parse_thr>
        <ddl_mask>op:obj</ddl_mask> <!--DDL配置项-->
        <arch><!--归档清理配置项-->
            <clear_interval>600</clear_interval>
            <clear_flag>2</clear_flag>
            <bak_dir>/dmarch/arch_bak</bak_dir>
        </arch>
        <send><!-- 发送模块配置 -->
            <ip>192.168.175.147</ip><!--目的端IP-->
            <mgr_port>5345</mgr_port>
            <data_port>5346</data_port>
            <trigger>1</trigger><!-- 是否忽略触发器,默认为0,限定值0,1 -->
            <constraint>1</constraint><!-- 是否忽略约束,默认为0,限定值0,1 -->
            <identity>1</identity>
            <net_turns>0</net_turns>
            <filter><!--过滤配置项-->
                <enable><!-- 白名单,所有允许同步的表 -->
                    <item>SYSDBA.*</item>
                </enable>
            </filter>
            <map><!--映射配置项-->
              <item>SYSDBA.*==SYSDBA.*</item>
            </map>
        </send>
    </cpt>
</dmhs>

注:需要用root用户创建/dmarch/arch_bak目录,并赋予dmdba的用户权限,命令如下:
mkdir -p /dmarch/arch_bak
chown -R dmdba.dinstall /dmarch

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

  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模式下的表映射成目的端的SYSDBA模式下同名的表。

5.2 配置目的端(操作端)
(1)配置目的端dmhs.hs
安装目录/home/dmdba/dmhs/bin下添加dmhs.hs,文件内容如下:

<?xml version="1.0" encoding="GB2312"?>
<dmhs>
        <base>
                <lang>ch</lang>
                <mgr_port>5345</mgr_port>
                <ckpt_interval>60</ckpt_interval>
                <siteid>2</siteid>
                <version>2.0</version>
        </base>
<exec>
        <recv>
                <data_port>5346</data_port>
        </recv>
        <db_type>dm8</db_type>
        <db_server>192.168.175.147</db_server><!--目的端IP-->
        <db_user>SYSDBA</db_user>
        <db_pwd>SYSDBA</db_pwd>
        <db_port>5236</db_port>
        <db_name></db_name>
        <exec_thr>4</exec_thr>
        <exec_sql>1024</exec_sql>
        <exec_trx> 5000 </exec_trx>
        <exec_rows>1000</exec_rows>
</exec>
</dmhs>

5.3 初始装载
初始装载是将源端数据库中的初始数据装载到目的端数据库,使DMHS同步的时刻源和目的端的同步表数据一致。装载前源端DMHS服务和目的端DMHS服务都需要开启,按以下顺序进行(一定要按顺序执行!!),具体的步骤如下:

  1. 开启目的端DMHS服务:
    进入/home/dmdba/dmhs/bin目录,命令:
    ./dmhs_server

如图:
在这里插入图片描述

  1. 启动目的端捕获器:
    进入/home/dmdba/dmhs/bin目录,命令:
    ./dmhs_console
    connect
    start exec

如图:
在这里插入图片描述

  1. 开启源端DMHS服务:
    进入/home/dmdba/dmhs/bin目录,命令:
    ./dmhs_server

如图:
在这里插入图片描述

  1. 在源端进行初始装载:
    进入/home/dmdba/dmhs/bin目录,命令:
    ./dmhs_console
    connect
    copy 0 “sch.name=‘SYSDBA’” DICT|LSN|CREATE|INSERT|INDEX
    start cpt

如图:
在这里插入图片描述
在这里插入图片描述

至此搭建成功,可以开始进行数据同步。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值