DMHS 双向同步搭建
一、 简介
双向同步是指两个或多个数据库节点(例如A和B)之间,任何一方产生的数据变更(INSERT, UPDATE, DELETE),都会几乎实时地同步到另一方。这样,从应用的角度看,两个数据库都处于可读写状态,数据内容保持一致。
二、 DMHS 双向同步搭建步骤
1、安装前环境准备
目标端 IP 数据库端⼝ MGR端⼝
源端 192.168.184.2 5236 5345
⽬标端 192.168.184.13 5236 5345
2、命令⾏安装dmhs (两台服务器都需要安装)
cd /dmhs
chmod +x dmhs_V4.3.36_dm8_rev181880_rh6_64_20250218_sp3.bin
./dmhs_V4.3.36_dm8_rev181880_rh6_64_20250218_sp3.bin -i
安装设置:
1)安装语⾔默认中⽂;
2)选择key⽂件;
3)精简版安装;
4)选择安装⽬录/dm8/dmdba/dmhs;
5)选择现在初始化;
6)配置依赖库路径:/dm8/dmdba/bin、/dm8/dmdba/dmhs/bin(其他默认回⻋)
3、数据库初始化 (两台服务器都需要操作)
开启归档⽇志和逻辑⽇志
/dm8/dmdbms/bin/disql sysdba/Dameng123
#开启归档⽇志
alter database mount;
alter database archivelog;
alter database add archivelog ‘dest = /dmarch,type = local,file_size = 1024,space_limit=10240’;
alter database open;
#确认归档⽇志开启
select para_value from vdminiwhereparanamein(′ARCHINI′);selectvaluefromvparameter where name = ‘ARCH_INI’;
#开启逻辑⽇志
SP_SET_PARA_VALUE(1,‘RLOG_APPEND_LOGIC’,1);
alter system set ‘RLOG_APPEND_LOGIC’ = 1;
select para_value from v$dm_ini where para_name in (‘RLOG_APPEND_LOGIC’);
#SP_SET_PARA_VALUE(scope:1,para_name:‘RLOG_APPEND_LOGIC’,para_value:1)
#scope:1表示修改both⽂件和内存;2表示修改⽂件参数(⼀般静态参数只能使⽤2)
4、DMHS配置参数 (第一台服务器)
源端dmhs.hs配置:
<?xml version=“1.0” encoding=“GB2312”?>
<dmhs>
<base>
<lang>en</lang>
<mgr_port>5345</mgr_port>
<ckpt_interval>60</ckpt_interval>
<siteid>2</siteid>
<version>2.0</version>
</base>
<cpt>
<db_type>dm8</db_type>
<db_server>192.168.184.2</db_server>
<db_user>SYSDBA</db_user>
<db_pwd>aaBB11__</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.184.13</ip> <!—执⾏端 IP–>
<mgr_port>5345</mgr_port><!—执⾏端 mgr_port -->
<data_port>5346</data_port><!—执⾏端 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.==DMHS.*</item>
</map>
</send>
</cpt>
</dmhs>
⽬标端dmhs.hs配置
<?xml version=“1.0” encoding=“GB2312”?>
<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.184.13</db_server>
<db_user>SYSDBA</db_user>
<db_pwd>aaBB11__</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、DMHS配置参数 (第二台服务器)
源端dmhs.hs配置:
<?xml version=“1.0” encoding=“GB2312”?>
<dmhs>
<base>
<lang>en</lang>
<mgr_port>5345</mgr_port>
<ckpt_interval>60</ckpt_interval>
<siteid>3</siteid>
<version>2.0</version>
</base>
<cpt>
<db_type>dm8</db_type>
<db_server>192.168.184.13</db_server>
<db_user>SYSDBA</db_user>
<db_pwd>aaBB11__</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.184.2</ip> <!—执⾏端 IP–>
<mgr_port>5345</mgr_port><!—执⾏端 mgr_port -->
<data_port>5346</data_port><!—执⾏端 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.==DMHS.*</item>
</map>
</send>
</cpt>
</dmhs>
⽬标端dmhs.hs配置
<?xml version=“1.0” encoding=“GB2312”?>
<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.184.2</db_server>
<db_user>SYSDBA</db_user>
<db_pwd>aaBB11__</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、同步测试
5.1启动⽬标端dmhs服务:
/dm8/dmdba/dmhs/bin/DmhsServiceHSSERVER start
5.2启动源端DMHS服务:
/dm8/dmdba/dmhs/bin/DmhsServiceHSSERVER start
5.3创建测试表,查看同步:
create table test1(id int,name varchar2(10));
insert into test1 values (1,‘t1’),(2,‘t2’),(3,‘t3’);
create table test2(id int,name varchar2(10));
insert into test2 values (1,‘t1’),(2,‘t2’),(3,‘t3’);
create index idx_t1_id on test1(id);
insert into test2 values (11,‘t11’),(22,‘t22’),(33,‘t33’);
文章
阅读量
获赞
