环境准备
源端数据库安装dm8数据库并模拟业务数据
创建测试表TEST_LJK
Create table test_ljk(id int,name varchar(20));
插入数据
Insert into test_ljk(id,name) values(1,’Joy’);
Insert into test_ljk(id,name) values(1,’Emily’);
Insert into test_ljk(id,name) values(1,’Tom’);
需求:
增加一台主机作为目标端,同样部署dm8数据库,实现从源端到目标端的数据同步
Dm8数据库安装参考:
https://blog.csdn.net/xiaoke_2013/article/details/127763539
主机信息:
源端和目标端安装DMHS
源端和目标端上传DMHS安装包,并修改所属用户和组(dmdba:dinstall)
[root@dm001 bin]# cd /dmdbms/dm_x/
[root@dm001 dm_x]# ll
-rwxrwxr-x 1 dmdba dinstall 490681665 Nov 22 10:27 dmhs_V4.2.98_dm8_rev117136_rh6_64_veri_20221020_sp1.bin
[root@dm001 dm_x]# ./dmhs_V4.2.98_dm8_rev117136_rh6_64_veri_20221020_sp1.bin
源端
源端和目标端安装DMHS时,主机IP和内置数据库IP填写各自主机IP
例:目标端
源端和目标端调整配置文件
[root@dm001 ~]# vim /dmdbms/dm8/data/DAMENG/dm.ini
ARCH_INI = 1 ##开启归档
RLOG_APPEND_LOGIC = 1 ##开启逻辑日志
FAST_COMMIT = 0 #必须为 0,否则会导致逻辑日志不全而影响同步。
调整后,重启数据库服务
验证参数是否生效
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 para_value from v$dm_ini where para_name = ‘FAST_COMMIT’;
源端执行DDL脚本
如果要求 DDL 同步,那么需要创建 DDL 触发器和辅助表。创建的脚本参见 DMHS 安
装目录下 scripts 子目录中“ddl_sql_dm8.sql”。注意创建时需要使用 SYSDBA 用户。
执行DDL脚本时,创建9张辅助表和4张触发器
(建议使用manager管理工具SYSDBA登录执行,命令行执行会提示输入值且创建后缺少部分表)
`/home/dmdba/dmhs/scripts/ddl_sql_dm8.sql
查看创建的辅助表
select owner, table_name from dba_tables where owner = ‘SYSDBA’ and table_name like ‘DMHS%’ and status = ‘VALID’;
查看创建的触发器
select owner, trigger_name from dba_triggers where owner = ‘SYSDBA’ and trigger_name like ‘DMHS%’ and status = ‘Y’;
源端和目标端配置dmhs.hs文件
源端
<?xml version=“1.0” encoding=“GB2312”?>
<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>1qaz2wsx3edc</db_pwd>
<db_port>5236</db_port>
<parse_thr>1</parse_thr>
<ddl_mask>op:obj</ddl_mask> <!–DDL配置项–>
<arch><!–归档清理配置项–>
<clear_interval>600</clear_interval>
<clear_flag>0</clear_flag>
<dir>/dmdbms/dm8</dir>
</arch>
<send><!-- 发送模块配置–>
<ip>192.168.229.132</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>
<filter><!–过滤配置项–>
<enable><!-- 白名单,所有允许同步的表 -->
<item>SYSDBA.*</item>
</enable>
</filter>
<map><!–映射配置项–>
</map>
</send>
</cpt>
</dmhs>
目标端
<?xml version=“1.0” encoding=“GB2312”?>
<dmhs>
<base>
<lang>ch</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>127.0.0.1</db_server>
<db_user>SYSDBA</db_user>
<db_pwd>SYSDBA</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>
现对以上的基本配置作如下几点说明:
文章
阅读量
获赞