DMHS部署(DM-DM)

一、安装DM8

  1. 源端初始化实例
  2. 确认服务运行状态

[dmdba@dmcs bin]$ ./DmServicehs1 status

DmServicehs1 (pid 14764) is running.

  1. 目标端初始化实例
  2. 确认运行状态

[dmdba@dmcs bin]$ ./DmServicehs2 status

DmServicehs2 (pid 14704) is running.

二、安装DMHS

2.1上传dmhs安装包并授权

[root@dmcs dmhs]# chown dmdba:dinstall -R dmhs_V4.1.48_pack4_dm8_rev104804_rh6_64_veri_20211228.bin

[root@dmcs dmhs]# chmod 777 dmhs_V4.1.48_pack4_dm8_rev104804_rh6_64_veri_20211228.bin -R

2.2命令行方式安装

[[dmdba@dmcs src]$ ./dmhs_V4.1.48_pack4_dm8_rev104804_rh6_64_veri_20211228.bin -i

Extract install files..........

1.英文(English)

2.简体中文(简体中文)

请选择安装语言[2.简体中文(简体中文)]:

/tmp/DMHSInstall/install.log

1.免费试用达梦数据实时同步

2.使用已申请的Key文件

验证许可证文件[1.免费试用达梦数据实时同步]:

1.精简版

2.完整版(web客户端)

3.自定义

安装类型[1.精简版]:

1.实时同步软件服务器

2.远程部署工具

3.实时同步软件配置助手

4.手册

所需磁盘空间:570 MB

安装目录: [/home/dmdba/dmhs]/dm8/dmdba/dmhs

1.统一部署

2.现在初始化

是否初始化达梦数据实时同步系统[1.统一部署]:

正在安装

default start ...    default finished.

server start ...    server finished.

hs_agent start ...    hs_agent finished.

hsca start ...    hsca finished.

doc start ...    doc finished.

postinstall start ...    postinstall finished.

正在创建快捷方式

安装成功

远程部署工具配置

远程部署工具名称[HsAgent]:

主机Ip(外网)[192.168.84.201](192.168.84.201,192.168.84.103):

远程部署工具管理端口[5456](1000-65535):

内置数据库轮询间隔[3](1-60):

内置数据库IP[]:192.168.84.103

内置数据库端口[15236](1000-65535):

内置数据库用户名[SYSDBA]:

内置数据库密码[SYSDBA]:

服务脚本环境变量设置

依赖库路径

提示:此配置项供用户配置源或目的数据库依赖库路径和odbc依赖库路径, 多个路径以":"隔开(例:/opt/dmdbms/bin:/usr/local/lib),此配置项会添加到服务脚本的NEED_LIB_PATH的变量值中。

请配置依赖库路径:

远程控制服务

1.自动

2.手动

启动方式:[2.手动]

正在创建远程控制服务

达梦数据实时同步V4.0安装完成

更多安装信息,请查看安装日志文件:

/dm8/dmdba/dmhs/log/install.log

目标端安装dmhs

执行以上相同操作,此步骤省略

三、配置修改

3.1dm.ini配置文件

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

3.2添加归档配置文件

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

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

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

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

3.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';

3.4DDL同步触发器配置

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

#在源端服务器上,通过disql连接数据库后执行以下命令

SQL>start /dm8/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';

行号     OWNER  TABLE_NAME     

---------- ------ ----------------

1          SYSDBA DMHS_DDL_COL

2          SYSDBA DMHS_DDL_SQL

3          SYSDBA DMHS_DDL_CONS

4          SYSDBA DMHS_DDL_IDX

5          SYSDBA DMHS_DDL_RENAME

6          SYSDBA DMHS_DDL_SEQ

7          SYSDBA DMHS_DDL_PART

8          SYSDBA DMHS_DDL_COMMENT

9          SYSDBA DMHS_DDL_LOG

9 rows got

已用时间: 11.015(毫秒). 执行号:620.

#检查触发器

SQL> select owner, trigger_name from dba_triggers where owner = 'SYSDBA' and trigger_name like 'DMHS%' and status = 'Y';

行号     OWNER  TRIGGER_NAME          

---------- ------ -----------------------

1          SYSDBA DMHS_DDL_TRIGGER_AFTER

2          SYSDBA DMHS_DDL_TRIGGER_BEFORE

3          SYSDBA DMHS_DDL_TRIGGER_GRANT

4          SYSDBA DMHS_DDL_TRIGGER_REVOKE

3.5DMHS同步参数文件配置

3.5.1源端

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

vi /dm8/dmdba/dmhs/bin/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.84.103</db_server>

    <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>0</clear_flag>

    </arch>

    <send><!-- 发送模块配置 -->

      <ip>192.168.84.104</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.5.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.84.104</db_server>

    <db_user>SYSDBA</db_user>

    <db_pwd>SYSDBA</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.1启动服务和同步模块

4.1.1源端注册服务启动

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

cd /dm8/dmdba/dmhs/scripts/root

./dmhs_service_installer.sh -t dmhs_server -a true -p HS1 -x /dm8/dmdba/dmhs/bin/dmhs.hs -d /dm8/dmdba/dmhs/bin

4.1.2目的端注册服务启动

cd /dm8/dmdba/dmhs/scripts/root

./dmhs_service_installer.sh -t dmhs_server -a true -p HS2 -x /dm8/dmdba/dmhs/bin/dmhs.hs -d /dm8/dmdba/dmhs/bin

4.2启动 DMHS 进行数据同步

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

#执行端运行 DMHS 软件工具,启动服务

./DmhsServiceHS2 start

#执行端运行 DMHS 软件工具 dmhs_console

./dmhs_console

#连接执行端 DMHS 服务

DMHS> connect

#启动日志执行模块

DMHS> start exec

报错信息:

DMHS> start exec

CSL[ERROR]: load execute module failure

 

报错CSL[ERROR]: load execute module failure

(1)缺失libdmoci.so文件或版本与dmhs不匹配

退出后查看ldd libdmhs_exec.so

 

真实原因:

libdmhs_exec.so需要链接的是对目的数据库操作的库文件libdmoci.so,也就是dm8的libdmoci.so。然而dmhs下的db/bin是DMHS内置元数据库dm7的路径,也就是说此时执行器链接的是dm7的libdmoci.so所以执行异常。

但是dm8的libdmoci.so在哪里呢?实际上,默认使用dm8的bin文件安装中并不包含oci接口库,而在dm8的安装包中除了bin安装文件,还有一个dmdci.zip文件,解压dmdci.zip后复制需要的库文件libdmoci.so和以及include文件到dm8/bin下对应位置即可使用。

解决方法:

以上报错主要原因是 libdmoci.so 动态库文件与 DMHS 版本不匹配导致。更换与 DMHS 版本匹配的 libdmoci.so 动态库文件即可。

Dm8单独上传一份和dmhs版本相匹配的libdmoci.s0包后解决。

cp /src/libdmoci.so /dm8/dmdba/dmhs/bin

chown dmdba:dinstall /dm8/dmdba/dmhs/bin/libdmoci.so

ls -lrt /dm8/dmdba/dmhs/bin/libdmoci.so

-rwxr-xr-x 1 dmdba dinstall 7694676  5月 24 03:32 /dm8/dmdba/dmhs/bin/libdmoci.so

 

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

#源端运行 DMHS 软件工具 dmhs_server,启动服务

./DmhsServiceHS1 start

#使用dmhs_cosole工具连接DMHS管理服务

./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

五、同步数据的验证工作

源端;

SQL> create table hstest(v1 int);

insert into hstest values(1);

commit;

操作已执行

已用时间: 00:00:14.991. 执行号:622.

SQL> 影响行数 1

已用时间: 0.938(毫秒). 执行号:623.

SQL> 操作已执行

已用时间: 46.012(毫秒). 执行号:624.

SQL>

selecSQL> t * from hstest;

行号     V1        

---------- -----------

1          1

已用时间: 763.107(毫秒). 执行号:625.

目标端;

select * from hestest;

查看hs日志:

2023-06-07 23:14:11 CPT[WARN]: log format is invalid, please check DM8 version, sub_type: 108

更换dmhs版本,重新部署测试。

测试结果

源端:

insert into hstest values(1);

commit;        

目标端:

select * from hstest;

DMHS日志内容:

源端:

目标端:

 

六、卸载dmhs

cd /dm8/dmdba/dmhs/

[dmdba@dmcs dmhs]$ ./uninst.sh -i

/dm8/dmdba/dmhs/install.log

1.确认卸载

2.中止卸载

请选择:1

正在检测安装环境...

正在整理安装信息...

删除快捷方式...

删除系统服务...

[Uninstall service] DmhsAgentServiceHsAgent

[Uninstall service] DmhsServiceHS1

使用root用户执行命令:

/dm8/dmdba/dmhs/root_uninstaller.sh

是否已执行shell脚本?yes/no[no]yes

卸载完成

达梦云适配技术社区
https://eco.dameng.com/

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值