DMHS部署实践(DM-DM)

目录

1 准备工作

1.1 部署环境需求

1.2 安装DM8

1.2.1 源端数据库初始化

1.2.2 目的端数据库初始化

1.3 安装DMHS

1.3.1 上传安装包至服务器

 1.3.2 命令行方式安装

2 数据库系统参数修改

2.1 数据库归档和逻辑日志相关参数修改

2.1.1 dm.ini配置文件

2.1.2 添加归档配置文件dmarch.ini。

2.1.3 启动数据库,验证配置的正确性 

 2.2 DDL同步触发器配置

3 DMHS同步参数文件配置

3.1 源端

3.2 目的端

4 启动服务和同步模块

4.1 DMHS服务启动脚本

4.1.1 源端注册服务启动

 4.1.2 目的端注册服务启动

4.2 启动 DMHS 进行数据同步 

4.2.1 目的端---启动本地的exec模块

4.2.2 源端---启动本地的cpt模块

5 同步数据的验证工作


1 准备工作

1.1 部署环境需求

内存要求:DMHS 需要的内存总量取决于执行的分析线程以及执行线程的并发数,最少需要 1G 内存。

磁盘需求:DMHS 安装文件占用 277M,包括了管理工具以及管理界面占用的空间,另外需要一些额外的空间存储 DMHS 运行的日志文件。

操作系统权限:在 Windows 安装时,安装和执行 DMHS 的用户必须是管理员身份;在 Linux 平台下安装,安装用户必须有权限读写 DMHS 安装目录,将涉及的数据库接口动态库添加到系统共享库环境变量中。

网络需求:配置系统支持 TCP/IP 服务(DMHS 安装的所有机器必须配置主机名或者 IP地址)。DMHS 需要使用以下 TCP/IP 端口:管理进程间通信的默认端口 5345;发送和执行子系统之间通信的默认端口 5346;用户可以自行定义这些端口。

1.2 安装DM8

DMHS软件部署前,在源端和目的端分别安装好DM8数据库软件并进行数据库初始化,具体安装可以参考大佬的教程:Linux Centos7 下的达梦数据库单机部署实践

1.2.1 源端数据库初始化

#初始化实例
[dmdba@dmhs01 bin]$ ./dminit PATH=/home/dmdba/dmdata EXTENT_SIZE=32 PAGE_SIZE=16 LOG_SIZE=256 UNICODE_FLAG=1 SYSDBA_PWD=LBHA88888 DB_NAME=hms INSTANCE_NAME=shms BUFFER=300

#数据库服务要为运行状态
[dmdba@dmhs02 bin]$ systemctl status DmServiceshms.service

图1.1 源端数据库初始化

图1.2 源端数据库服务状态

1.2.2 目的端数据库初始化

#初始化实例
[dmdba@dmhs02 bin]$ ./dminit PATH=/home/dmdba/dmdata EXTENT_SIZE=32 PAGE_SIZE=16 LOG_SIZE=256 UNICODE_FLAG=1 SYSDBA_PWD=LBHA88888 DB_NAME=hmt INSTANCE_NAME=shmt BUFFER=300

#数据库服务要为运行状态
[dmdba@dmhs02 bin]$ systemctl status DmServiceshmt.service

图1.3 目的端数据库初始化

图1.4 目的端数据库服务状态

1.3 安装DMHS

表1 安装环境
服务器IP操作系统DBHS版本
源端192.168.50.138CentOS 7DM 8dmhs_V4.1.81_dm8_rev103591_rh6_64_veri_20211117.bin
目的端192.168.50.139

1.3.1 上传安装包至服务器

将DMHS安装包上传到服务器目录 /home/dmdba/dmhs 上并赋权

chown -R dmdba:dinstall /home/dmdba/dmhs/dmhs_V4.1.81_dm8_rev103591_rh6_64_veri_20211117.bin
chmod -R 777 /home/dmdba/dmhs/dmhs_V4.1.81_dm8_rev103591_rh6_64_veri_20211117.bin

图1.5 源端DMHS安装包授权

图1.6 目的端DMHS安装包授权

 1.3.2 命令行方式安装

图形界面安装(不做赘述,可以自行实操了解:)

./dmhs_V4.1.81_dm8_rev103591_rh6_64_veri_20211117.bin

#命令行安装(根据提示安装即可
./dmhs_V4.1.81_dm8_rev103591_rh6_64_veri_20211117.bin -i

图1.7 DMHS安装结果

2 数据库系统参数修改

2.1 数据库归档和逻辑日志相关参数修改

源端与目的端都修改。

2.1.1 dm.ini配置文件

打开dm.ini配置文件,修改以下参数值:

ARCH_INI = 1   #开启归档
RLOG_APPEND_LOGIC = 1   #开启逻辑附加日志

注意:dm.ini 配置参数中“FAST_COMMIT”必须为 0,否则会导致逻辑日志不全而影响同步。

2.1.2 添加归档配置文件dmarch.ini。

在“dm.ini”同目录下创建文件“dmarch.ini”并添加以下内容:

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /home/dmdba/dmarch #归档目录

ARCH_FILE_SIZE = 128 #归档文件大小,单位 MB

ARCH_SPACE_LIMIT = 0 #空间大小限制,0 表示不限

2.1.3 启动数据库,验证配置的正确性 

#检查归档配置的正确性
SQL>SELECT ARCH_DEST, ARCH_FILE_SIZE FROM SYS.V$DM_ARCH_INI WHERE ARCH_TYPE='LOCAL' AND ARCH_IS_VALID='Y';
#检查逻辑日志配置的正确性
SQL>SELECT PARA_VALUE FROM SYS.V$DM_INI WHERE PARA_NAME = 'RLOG_APPEND_LOGIC';
#检查在线日志
SQL>SELECT PATH FROM SYS.V$RLOGFILE;
#检查 FAST_COMMIT 参数是否为 0
SQL>select para_value from v$dm_ini where para_name = 'FAST_COMMIT';

图2.1 源端验证结果

图2.2 目的端验证结果

 2.2 DDL同步触发器配置

在此次实践中使用辅助表方式配置:使用SYSDBA 用户来执行DMHS 安装目录下scripts 子目录中“ddl_sql_dm8.sql”。由于本次是DM-DM单项同步,因此只需要在源端节点执行即可。(如果是双向同步,则目标端与源端都需要执行该脚本)

#在源端服务器上,通过disql连接数据库后执行以下命令
SQL>start /home/dmdba/dmhs/scripts/ddl_sql_dm8.sql

该脚本会在源端库新建9个表和4个触发器,可通过以下sql 检查是否成功

#检查创建的触发器和辅助表是否有效
SQL>select owner, table_name from dba_tables where owner = 'SYSDBA' and table_name like 'DMHS%' and status = 'VALID';

#检查触发器
SQL>select owner, trigger_name from dba_triggers where owner = 'SYSDBA' and trigger_name like 'DMHS%' and status = 'Y';

图2.3 源端DDL检查结果 

3 DMHS同步参数文件配置

在DMHS安装目录下的bin子目录,创建dmhs.hs配置文件

vi /home/dmdba/dmhs/bin/dmhs.hs

3.1 源端

图3.1 源端dmhs.hs配置(目的端一样)

<?xml version="1.0" encoding="utf-8"?>

<dmhs>
  <base>
  <lang>en</lang>
  <mgr_port>5345</mgr_port>
  <ckpt_interval>60</ckpt_interval>
  <siteid>1</siteid>
  <version>2.0</version>
  </base>
  <cpt>
    <db_type>dm8</db_type>
    <db_server>192.168.50.138</db_server>
    <db_user>SYSDBA</db_user>
    <db_pwd>LBHA88888</db_pwd>
    <db_port>5235</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>0</clear_flag>
    </arch>
    <send><!-- 发送模块配置 -->
      <ip>192.168.50.139</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>

3.2 目的端

<?xml version="1.0" encoding="utf-8"?>

<dmhs>
  <base>
    <lang>en</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.50.139</db_server>
    <db_user>SYSDBA</db_user>
    <db_pwd>LBHA88888</db_pwd>
    <driver>DM8 ODBC DRIVER</driver>
    <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>

4 启动服务和同步模块

4.1 DMHS服务启动脚本

使用root用户进入到DMHS安装目录 /home/dmdba/dmhs/scripts/root下,通过dmhs_service_installer.sh注册服务脚本。

4.1.1 源端注册服务启动

[root@dmhs01 ~]# cd /home/dmdba/dmhs/scripts/root
[root@dmhs01 root]# ./dmhs_service_installer.sh -t dmhs_server -a true -p HMS -x /home/dmdba/dmhs/bin/dmhs.hs -d /home/dmdba/dmhs/bin

图4.1 源端注册服务

 4.1.2 目的端注册服务启动

[root@dmhs02 ~]# cd /home/dmdba/dmhs/scripts/root
[root@dmhs02 root]# ./dmhs_service_installer.sh -t dmhs_server -a true -p HMT -x /home/dmdba/dmhs/bin/dmhs.hs -d /home/dmdba/dmhs/bin

图4.2 目的端注册服务

4.2 启动 DMHS 进行数据同步 

进入DMHS软件安装目录bin子目录。

4.2.1 目的端---启动本地的exec模块

#执行端运行 DMHS 软件工具,启动服务
[dmdba@dmhs02 bin]$ ./DmhsServiceHMT start
#执行端运行 DMHS 软件工具 dmhs_console
[dmdba@dmhs02 bin]$ ./dmhs_console
#连接执行端 DMHS 服务
DMHS> connect
#启动日志执行模块
DMHS> start exec

4.2.2 源端---启动本地的cpt模块

#源端运行 DMHS 软件工具 dmhs_server,启动服务
[dmdba@dmhs01 bin]$ ./DmhsServiceHMS start
#使用dmhs_cosole工具连接DMHS管理服务
[dmdba@dmhs02 bin]$ ./dmhs_console
#连接源端 DMHS 服务
DMHS> connect
#设置日志捕获模块起始 LSN
DMHS> clear exec lsn
#装载源端字典信息及历史数据
DMHS> copy 0 "sch.name='SYSDBA'" DICT|LSN|CREATE|INSERT|INDEX
#执行start cpt
DMHS> start cpt

5 同步数据的验证工作

最后使用disql连接数据库后,源端输入数据,到目的端查看是否同步。

【源端】

create table hstest(v1 int);

insert into hstest values(1);

commit;

【目的端】

select * from SYSDBA.hstest;


以上是本次分享内容,欢迎留言沟通一起学习!更多内容也可以前往达梦社区了解~

达梦社区:eco.dameng.com

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值