DM7主备-单机hs同步

一 环境介绍

机器名

IP

备注

DM7_A

192.168.1.101

主备集群-A节点

DM7_B

192.168.1.102

主备集群-B节点

DM7_C

192.168.1.103

主备集群-确认监视器

DM7_D

192.168.1.104

目的端单机库

二 环境检查

1 检查是否开启归档

SQL> SELECT ARCH_DEST, ARCH_FILE_SIZE FROM SYS.V$DM_ARCH_INI WHERE ARCH_TYPE='LOCAL' AND ARCH_IS_VALID='Y';

2 检查是否开启逻辑附加日志

SQL> SELECT PARA_VALUE FROM SYS.V$DM_INI WHERE PARA_NAME = 'RLOG_APPEND_LOGIC';

3 开启归档(主备集群开启归档可忽略)

SQL>alter database mount;

SQL>alter database add archivelog dest=/dbarch/dmarch,type=local,file_size=2048,,space_limit=20480;

SQL>alter database archivelog;

SQL> alter database open;

4开启逻辑附加日志

SQL>SP_SET_PARA_VALUE(1,RLOG_APPEND_LOGIC,1);

SQL>COMMIT;

5 检查重做日志

SQL> SELECT PATH FROM SYS.V$RLOGFILE;

6 检查FAST_COMMIT参数是否为0

SQL> SELECT PARA_VALUE FROM V$DM_INI WHERE PARA_NAME = 'FAST_COMMIT';

三 安装DMHS

分别在A、B、D三台机器上安装DMHS

四、配置DDL

如果需要同步DDL则需要创建DDL触发器和辅助表。Sql脚本在dmhs/scripts目录下,根据实际需要选择对应版本的sql脚本文件执行。只需要在主库执行sql脚本,备库自动同步

五 修改配置文件

1 数据守护中A\B两个节点配置文件一致,注意将group修改为1,db_server修改为dm_svc.conf中的主备集群服务名,同时主备节点中siteid一致。

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

<dmhs>

<base><!-- MGR 配置在 dmhs.hs 配置文件中对应 base 元素 -->

<lang>ch</lang><!-- 语言选项,ch 为中文,en 为英文 -->

<mgr_port>5345</mgr_port><!-- 管理端口,同步服务起动以后,会监听该端口

上的连接,用于执行客户端工具发过来的命令和接收统计信息 -->

<chk_interval>3</chk_interval><!-- 状态轮询间隔,默认为 3s,最小值 1s,最大

值 60s -->

<ckpt_interval>60</ckpt_interval><!-- 参数表示执行端 EXEC 模块检查点刷新的

时间间隔,单位为秒 -->

<siteid>1</siteid><!-- 站点 ID,这个 ID 配置时要注意,全局唯一,最小值 0,最

大值 65535 -->

<version>2.0</version><!-- 配置文件的版本号 -->

<group>1</group><!-- 是否启用主备功能 -->

</base>

<cpt><!-- 日志分析模块,这项配置可以配置多个,也就是可以配置多个捕获模块,如果

该节点只作为执行端,该节点需要删除 -->

<db_type>dm7</db_type><!-- 数据库类型 -->

<db_server>dm7_watcher</db_server><!-- 数据库服务名或 IP,默认为 127.0.0.1 -->

<db_user>SYSDBA</db_user><!-- 数据库用户名,默认为 SYSDBA -->

<db_pwd>SYSDBA</db_pwd><!-- 数据库口令,默认为 SYSDBA -->

<db_port>5236</db_port><!-- 数据库端口号,默认为 5236 -->

<dict_dir>/dbbak/dmhs_dict</dict_dir><!-- 离线字典存放目录 -->

<char_code>PG_GB18030</char_code><!-- 源端数据库的字符集 -->

<ddl_mask>OBJ:OP</ddl_mask><!-- 分析端 DDL 同步支持的对象和操作 -->

<arch><!-- 归档信息配置 -->

<clear_interval>600</clear_interval><!-- 归档日志清理间隔 -->

<clear_flag>1</clear_flag><!-- 归档日志清理选项,选配 0(不操作)、1(删除)、2(移

走),默认 0 --></arch>

<send><!-- 数据发送配置 -->

<ip>192.168.23.105</ip><!-- 需在投递到下一级的 IP 地址 -->

<mgr_port>5345</mgr_port><!-- 目的端管理端口,默认为 5345,最小值

1000,最大值 65535 -->

<data_port>5346</data_port><!-- 目的端数据接收端口号,默认为 5346,

最小值 1000,最大值 65535 -->

<net_turns>0</net_turns><!-- 是否开启网闸模式,默认为 0,限定值 0(关

闭),1(开启),网匝模式下,主机看不到备机的统计信息 -->

<trigger>1</trigger><!-- 是否忽略触发器,默认为 0,限定值 0,1 -->

<constraint>0</constraint><!-- 是否忽略约束,默认为 0,限定值 0,1 -->

<identity>0</identity><!-- 自增列处理方式,0(启用)或 1(忽略),默认

值为 1 -->

<filter><!-- NET 模块对投递消息的过滤配置 -->

<enable><!-- NET 模块过滤规则白名单设置 -->

<item>*.*</item>

</enable>

<disable><!-- NET 模块过滤规则黑名单设置 -->

<item></item>

</disable>

</filter>

<map><!-- NET 模块对投递对象名进行映射 -->

</map>

</send>

</cpt>

</dmhs>

2 修改目的端配置文件

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

<dmhs>

<base><!-- 管理模块的基本配置 -->

<lang>ch</lang><!-- 语言选项,ch 为中文,en 为英文 -->

<mgr_port>5345</mgr_port><!-- 管理端口,同步服务起动以后,会监听该端口

上的连接,用于执行客户端工具发过来的命令和接收统计信息 -->

<chk_interval>2</chk_interval><!-- 状态轮询间隔,默认为 3s,最小值 1s,最大

值 60s -->

<ckpt_interval>45</ckpt_interval><!-- 执行端检查点间隔,默认 60s,最小值 10s,

最大值 65536s -->

<siteid>2</siteid><!-- 站点 ID,这个 ID 配置时要注意,全局唯一,最小值 0,最

大值 65535 -->

<version>2.0</version><!-- 配置文件的版本号 -->

</base>

<recv><!-- 接收模块的基本配置,如果该节点只作为分析端,该节点需要删除 --><data_port>5346</data_port><!-- 数据接收端口号,默认为 5346,最小值 1000,最

大值 65535 -->

<exec><!-- 执行模块的基本配置 -->

<db_type>dm7</db_type><!-- 数据库类型 -->

<db_server>127.0.0.1</db_server><!-- 数据库服务名或 IP -->

<db_user>SYSDBA</db_user>

<db_pwd>SYSDBA</db_pwd>

<db_port>5236</db_port><!-- 数据库端口号,默认为 5236 -->

<db_name></db_name><!-- 默认数据库名,默认为空串(只针对 dm6 有用)-->

<exec_mode>1</exec_mode><!-- 执行模式, 1(多线程执行),2(ETL 模式),3(消息中

转模式,跨网段级联时使用) -->

<exec_thr>16</exec_thr><!-- 执行线程个数,只有当 exec_mode 为 1 时才会生效!

默认为 1,最小值 1,最大值 64 -->

<exec_sql>512</exec_sql><!-- SQL 缓存大小,默认为 512M,最小值 32M,最大

值 4096M -->

<exec_trx>5000</exec_trx><!-- 事务缓存个数,默认为 5000,最小值,1000,最

大值 10000 -->

<exec_rows>250</exec_rows><!-- 批量绑定行数,默认为 250,最小值 1,最大

值 2000 -->

<exec_policy>2</exec_policy><!-- 事务入库出错时的执行策略,可选 0、1 或 2,

默认为 1 -->

<msg_col_size>8000</msg_col_size><!-- 保存缓存消息列的大小,这取决于目的

库的块大小, 默认为 8000,最小值 1000,最大值 8000 -->

<level>0</level><!-- 复制级别,默认为 0,最小值 0,最大值 65535 -->

<affect_row>0</affect_row><!-- 是否启用影响行数检查 -->

</exec>

</recv>

</dmhs>

六 启动应用

1 启动源端(主备集群中A\B两个节点)和目的端的dmhs_server

2 启动目的端dmhs_console并执行start exec

3 主库dmhs_console中执行copy 0 “sch.name is not null” dict|lsn。注意:如果不是首次部署,需要先stop cpt。备库无需copy字典,能够自动同步

4 主库执行start cpt

5 备库执行start cpt

七 测试验证

1 主库A节点建测试表并插入测试数据,D节点检查

2 主备切换后在B节点建测试表并插入测试数据,D节点检查

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值