DMHS命令行搭建部署——DM8至DM8

 一、部署前准备工作 

1.1、源端目的端都修改dm.ini参数,设置归档标记和逻辑日志标记:

ARCH_INI=1RLOG_APPEND_LOGIC=1

重启数据库实例后查询数据库归档状态​​​​​​​

SQL> select arch_mode from v$database; LINEID     ARCH_MODE----------     ---------1           Yused time: 3.236(ms). Execute id is 123.

可以用如下语言查询数据库附加日志状态​​​​​​​

SQL> select * from v$dm_ini where para_name='RLOG_APPEND_LOGIC'; LINEID     PARA_NAME        PARA_VALUE MIN_VALUE MAX_VALUE----------     -----------------           ----------         ---------       ---------1          RLOG_APPEND_LOGIC    1              0              2 used time: 2.016(ms). Execute id is 125.

  

1.2、源端目的端都配置dmarch.ini(归档日志):​​​​​​​

[ARCHIVE_LOCAL1]ARCH_TYPE = LOCALARCH_DEST = /home/dmdba/dmarch #归档目录ARCH_FILE_SIZE = 128 #归档文件大小,单位 MBARCH_SPACE_LIMIT = 2048#空间大小限制,0 表示不限制 

1.3、DDL同步配置:

执行DDL同步脚本方式。在源端DM7/DM8数据库中以SYSDBA用户执行DDL同步脚本,在SYSDBA模式下创建相关DMHS系统表及触发器,并在DMHS配置文件中配置ddl_mask参数选项以启用该功能。​​​​​​​

./disqlSQL> conn SYSDBA/rootrootrootSQL> start /opt/ddl_sql_dm8.sqlSQL> exit

二、安装部署 

2.1、目的端部署流程

先启动目的端,配置dmhs.hs:​​​​​​​

<?xml version="1.0" encoding="GB2312" standalone="no"?><dmhs>    <base>        <lang>ch</lang>        <mgr_port>5345</mgr_port>        <name>exec</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>        <db_type>DM8</db_type>        <db_server>127.0.0.1</db_server>          <db_user>SYSDBA</db_user>  <!-- 数据库用户名-->        <db_pwd>SYSDBA</db_pwd> <!-- 数据库用户名的密码-->        <db_port>5236</db_port><!-- 数据库端口号-->    </exec></dmhs>
[dmdba@localhost bin]$ ./dmhs_server dmhs.hs

2.2、配置源端 

进入bin目录,配置dmhs.hs:​​​​​​​

<?xml version="1.0" encoding="GB2312" standalone="no"?><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>127.0.0.1</db_server>          <db_user>SYSDBA</db_user> <!--数据库用户名-->        <db_pwd>SYSDBA</db_pwd>         <db_port>5236</db_port> <!--源端数据库监听端口号-->        <idle_time>10</idle_time>  <!—cpt休眠时间-->        <parse_thr>1</parse_thr>         <ddl_mask>OP:OBJ:REC</ddl_mask> <!--DDL同步参数-->        <arch>    <clear_interval>60</clear_interval>  <!--归档日志清理间隔(s)-->    <clear_flag>0</clear_flag> <!--归档删除标识-->        </arch>-->        <send>        <ip>192.168.209.129</ip>  <!--投递到下一级的ip地址-->        <mgr_port>5345</mgr_port> <!--下一级的管理端口-->        <data_port>5346</data_port> <!--下一级的NET模块监听端口-->        <net_turns>0</net_turns>        <trigger>1</trigger>        <constraint>1</constraint>         <identity>1</identity>                <filter> <!--过滤规则-->                        <enable>                                <item>SYSDBA.*</item>                        </enable>                        <disable/>                </filter>                 <map>  <!--映射规则-->                </map>        </send></cpt>
[dmdba@localhost bin]$ ./dmhs_server dmhs.hs

  

2.3、F&Q

启动执行模块时出现错误,库文件libdmhs_exec.so未找到

此时要卸载dmhs重装,因为执行端装了精简版,应该装web版

在dmhs目录下卸载,./uninst.sh -i

重新安装,然后修改环境变量:

export LD_LIBRARY_PATH=/home/dmdba/dmhs/bin:/home/dmdba/dmhs/db/bin

让环境变量生效source /home/dmdba/.bash_profile后,查询一下:

三、初始装载 

DMHS初始装载有两种:初始字典装载和初始数据装载。

DMHS同步源端在首次启动日志分析进行数据同步之前,需要进行初始字典装载操作,在程序目录下创建DICT文件夹,并将同步表的字典信息写入文件保存在磁盘上,然后才能启动源端日志分析模块功能。

初始数据装载主要用于将同步源端的数据装载到目的端,保持源端和目的端的数据初始一致。如果没有数据装载的需求,可以不用进行该操作。

3.1、启动目的端执行服务

初次启动目的端DMHS服务时,同步执行服务并未开启,需要使用DMHS控制台工具连接DMHS管理服务,手动输入start exec命令开启。

3.2、进行初始字典装载

copy  0 " sch.name='SYSDBA' " DICT

3.3、F&Q

出现错误:libcpt_dm8.so未找到

排查后发现精简安装缺少这个,可以从另一个虚拟机上发送过来

scp 192.168.209.181:/home/dmdba/dmhs/db/bin/*.so ./

说明:so文件来自于dmdci.zip压缩文件。

修改环境变量

export LD_LIBRARY_PATH=/home/dmdba/dmhs/bin:/home/dmdba/dmhs/db/bin:/home/dmdba/dmhs/bin/lib

重新启动

./dmhs_server dmhs.hs

输入:

copy 0 " sch.name='SYSDBA' " dict

四、同步链接测试 

在搭建完同步链路之后简单测试一下同步

4.1 、 DDL同步功能测试

使用管理工具,在源端创建两个表:

浏览表数据,修改

Table_1

Table_2 

在目的端未发现

在源端上操作:

copy 0 "sch.name='SYSDBA'" clear|dict

重新装载离线字典

copy 0 "sch.name='SYSDBA'" create|insert

重新查看

可以发现两张表已装载

4.2 、表修改数据同步功能测试

启动捕获

start cpt

修改表内数据

保存后查看目的端:

两边已同步,证明搭建成功。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值