前提:已初始化实例库
将HS bin包及dmhs.key放置在服务器上,可提前将libdmoci.so包也传输到服务器上
更换所属主和所属组,并授权
1.源端开启归档和逻辑日志 如果双向同步,都要开归档
vim /data/DAMENG/dm.ini
ARCH_INI = 1
RLOG_APPEND_LOGIC = 1
逻辑日志为动态参数,可动态修改
SP_SET_PARA_VALUE(1, 'RLOG_APPEND_LOGIC', 1);
检查逻辑追加日志
select para_name,para_value from v$dm_ini where para_name='RLOG_APPEND_LOGIC';
注意:dm.ini配置参数中"FAST_COMMIT" 必须为0,否则会导致逻辑日志不全而影响同步。此参数为隐形参数,不会在dm.ini中显示。
需要在SQL中查询:
select * from v$dm_ini where para_name like 'FAST_COMMIT';
2.添加归档配置文件
cd /data/DAMENG/
vim dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /data/DAMENG/arch #归档目录
ARCH_FILE_SIZE = 128 #归档文件大小,单位MB
ARCH_SPACE_LIMIT = 0 #空间大小限制,0表示不限制
3.重启数据库,使配置文件生效
[dmdba@localhost bin]$ ./DmServiceDMSERVER restart
1)检查归档日志
select arch_mode from v$database;
4.命令行安装
切换至dmdba用户,进入hs程序包所在目录,开始安装
./dmhs_V4.1.48_dm8_rev102088_rh6_64_veri_20210914.bin -i
没有特殊要求,回车即可,不需要内置库可选择自定义安装
5.源端创建。如果需要配置文件中配置DDL同步,那么需要创建DDL触发器和辅助表。创建时需要使用SYSDBA操作。具体操作步骤如下:
1)在disql中设置 SQL 语句的编码方式,语法如下:
set char_code UTF8; ----临时生效
start /home/dmdba/dmhs/scripts/ddl_sql_dm8.sql
2)通过管理工具连接数据库
进入到dmhs如下目录中,找到ddl_sql_dm8.sql
把此脚本中的内容,在数据库管理工具中执行
3)检查创建的触发器和辅助表是否有效,
检查辅助表的语句
select owner, table_name from dba_tables where owner = 'SYSDBA' and table_name like 'DMHS%' and status = 'VALID';
4)检查触发器的语句
select owner, trigger_name from dba_triggers where owner = 'SYSDBA' and trigger_name like 'DMHS%' and status = 'Y';
6.将dmhs.key放置在hs安装目录bin下
[dmdba@localhost bin]$ mv /zqn/dmhsC4059573.key ./dmhs.key
将数据库dmoci包放置在数据库实例目录bin下或者hs实例目录bin下
7.配置源端dmhs.hs
在hs实例路径bin下,创建dmhs.hs文件
cd /home/dmdba/dmhs/bin
dmhs.hs是DMHS默认的配置文件名,如果需要DDL同步,那么基本的配置示例如下:
<?xml version="1.0" encoding="GB2312"?>
<dmhs>
<base>
<lang>en</lang>
<mgr_port>5345</mgr_port> ----------> 管理端口号-必需
<ckpt_interval>60</ckpt_interval>------- ->检查点间隔
<siteid>1</siteid> -------------> 站点号-必需
</base>
<cpt>
<db_type>dm8</db_type>
<db_server>192.168.10.141</db_server> ----------> 重点
<db_user>SYSDBA</db_user> -----------> 用户名
<db_pwd>SYSDBA</db_pwd> -----------> 密码
<db_port>5236</db_port>
<send>
<ip>192.168.10.144</ip>
<mgr_port>5345</mgr_port>
<data_port>5346</data_port>
<filter>
<enable>
<item>SYSDBA.*</item>
</enable>
</filter>
<map>
<item>SYSDBA.*==SYSDBA.*</item>
</map>
</send>
</cpt>
</dmhs>
7.开启源端的DMHS服务
前台启动:
./dmhs_server dmhs.hs
后台启动:
通过指定服务类型注册服务:
切换root用户cd /home/dmdba/dmhs/scripts/root/进行注册脚本
./dmhs_service_installer.sh -t dmhs_server -p M -x /home/dmdba/dmhs/bin/dmhs.hs -d /home/dmdba/dmhs/bin
[dmdba@localhost ~]$ cd /home/dmdba/dmhs/bin
[dmdba@localhost bin]$ ./DmhsService start
后台启动,需通过console进入到hs控制台界面
8.配置目的端dmhs.hs
<?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>192.168.10.142</db_server>
<db_user>SYSDBA</db_user>
<db_pwd>SYSDBA</db_pwd>
<db_port>5236</db_port>
<db_name></db_name>
</exec>
</dmhs>
注册后台启动脚本
[dmdba@localhost bin]$ ./DmhsServiceM start
初始装载
目的端:
登录hs控制端,启动目的端接受模块成功
目的端继续执行开启exec操作
start exec
源端:
DMHS >clear exec lsn --第二步
DMHS >copy 0 "sch.name='SYSDBA'" CREATE|INSERT|INDEX|REG|DICT --第三步(装载)
DMHS >start cpt --第四步(同步)
测试:在源端41机器上创建一张表,
可在目的端机器42上查询到
单向同步即成功