DMHS DM7-DM7(双向同步)实施手册
- 环境检查
1.1 源端以及目的端环境检查
(1)检查DM7是否启用归档:
cd /home/dmdba/dmdbms/tool
./manager
输入:select arch_mode from v$database;
注:ARCH_MODE 为“Y”,表示启用归档;为“N”,表示未启用。
如果源端未开启归档,使用如下方法开启归档:
- 将DM7数据库配置文件“dm.ini”中的ARCH_INI参数值设置为1。
- 在与dm.ini相同目录下,增加配置文件“dmarch.ini”,并添加归档配置参数内容(可以参见dmarch_example.ini文件配置格式)。示例如下:
[ ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = D:\dmdbms\DM7\arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 0 - 重启数据库服务,使数据库归档模式生效。
(2)检查逻辑追加日志是否打开:
select para_value as rlog_append_logic from v$dm_ini where para_name=‘RLOG_APPEND_LOGIC’;
注:RLOG_APPEND_LOGIC为“1”,表示逻辑追加日志启用;为“0”表示未启用。
如果源端未开启逻辑追加日志,使用如下方法进行开启:
- 将DM7数据库配置文件“dm.ini”中的RLOG_APPEND_LOGIC参数的值设置为1。
- 重启数据库服务,使配置生效。
(3)DDL同步管理检查
DDL同步功能默认是不支持的,需要在源端数据库进行配置才能使用。开启DDL同步,需要将DMHS安装程序中提供的对应DM7数据库的SQL脚本在源端数据库进行执行,并且需要对DMHS配置文件中的DDL_MASK选项进行配置。DDL同步SQL脚本会在源端数据库的SYSDBA模式下建立相关中间表和触发器。
(4) 检查系统环境变量PATH以及LD_LIBRARY_PATH中是否设置了DM7的安装路径。echo $LD_LIBRARY_PATH
(5)对于LINUX平台,注意$LANG环境变量与配置文件中char_code参数配置一致。
-
DMHS软件安装
chmod 755 chmod 755 dmhs_V3.1.3_dm7_rev95459_rh6_64_veri_20201130.bin
./ dmhs_V3.1.3_dm7_rev95459_rh6_64_veri_20201130.bin
此图为目的端,源端IP为192.168.72.140 -
配置DMHS
如果有一端需要有DDL同步,DDL同步脚本需要在两台机器的数据库上均执行。
脚本路径如下
3.1 源端配置文件
dmhs.hs配置内容如下:
<?xml version="1.0" encoding="utf-8"?>
<dmhs>
<base>
<lang>ch</lang>
<mgr_port>5345</mgr_port>
<chk_interval>3</chk_interval>
<ckpt_interval>60</ckpt_interval>
<siteid>1</siteid>
<version>2.0</version>
</base>
<cpt>
<name>cpt</name>
<enable>1</enable>
<db_type>DM7</db_type>
<db_server>192.168.72.140</db_server>
<db_user>SYSDBA</db_user>
<db_pwd>SYSDBA</db_pwd>
<char_code>PG_GB18030</char_code>
<db_port>5236</db_port>
<idle_time>10</idle_time>
<parse_thr>1</parse_thr>
<ddl_mask>OBJ:PTABLE:OP:DEFINE:PARTITION</ddl_mask>
<start_scn>0</start_scn>
<send_lst>2</send_lst>
<rec_heap_size>16</rec_heap_size>
<vpool_size>8</vpool_size>
<arch>
<clear_interval>60</clear_interval>
<clear_flag>0</clear_flag>
</arch>
<send>
<ip>192.168.72.142</ip>
<timeout>0</timeout>
<mgr_port>5345</mgr_port>
<data_port>5346</data_port>
<max_log_num>2000</max_log_num>
<net_pack_size>256</net_pack_size>
<net_turns>0</net_turns>
<crc_check>0</crc_check>
<trigger>0</trigger>
<constraint>0</constraint>
<identity>0</identity>
<case_sensitive>0</case_sensitive>
<filter>
<enable>
<item>DMHR.*</item>
</enable>
<disable/>
</filter>
</send>
</cpt>
<exec>
<recv>
<mgr_port>5345</mgr_port>
<data_port>5346</data_port>
</recv>
<name>exec</name>
<enable>1</enable>
<db_type>DM7</db_type>
<db_server>192.168.72.140</db_server>
<db_user>SYSDBA</db_user>
<db_pwd>SYSDBA</db_pwd>
<char_code>PG_GB18030</char_code>
<db_port>5236</db_port>
<level>0</level>
<exec_thr>1</exec_thr>
<exec_sql>512</exec_sql>
<exec_trx>5000</exec_trx>
<exec_rows>250</exec_rows>
<vpools>7</vpools>
<recv_caches>8</recv_caches>
<trxid_tables>1</trxid_tables>
</exec>
</dmhs>
3.2 目的端配置文件
dmhs.hs配置内容如下:
<?xml version="1.0" encoding="utf-8"?>
<dmhs>
<base>
<lang>ch</lang>
<mgr_port>5345</mgr_port>
<chk_interval>3</chk_interval>
<ckpt_interval>60</ckpt_interval>
<siteid>2</siteid>
<version>2.0</version>
</base>
<cpt>
<name>cpt</name>
<enable>1</enable>
<db_type>DM7</db_type>
<db_server>192.168.72.142</db_server>
<db_user>SYSDBA</db_user>
<db_pwd>SYSDBA</db_pwd>
<char_code>PG_GB18030</char_code>
<db_port>5236</db_port>
<idle_time>10</idle_time>
<parse_thr>1</parse_thr>
<ddl_mask>OBJ:PTABLE:OP:DEFINE:PARTITION</ddl_mask>
<start_scn>0</start_scn>
<send_lst>2</send_lst>
<rec_heap_size>16</rec_heap_size>
<vpool_size>8</vpool_size>
<arch>
<clear_interval>60</clear_interval>
<clear_flag>0</clear_flag>
</arch>
<send>
<ip>192.168.72.140</ip>
<timeout>0</timeout>
<mgr_port>5345</mgr_port>
<data_port>5346</data_port>
<max_log_num>2000</max_log_num>
<net_pack_size>256</net_pack_size>
<net_turns>0</net_turns>
<crc_check>0</crc_check>
<trigger>0</trigger>
<constraint>0</constraint>
<identity>0</identity>
<case_sensitive>0</case_sensitive>
<filter>
<enable>
<item>DMHR.*</item>
</enable>
<disable/>
</filter>
</send>
</cpt>
<exec>
<recv>
<mgr_port>5345</mgr_port>
<data_port>5346</data_port>
</recv>
<name>exec</name>
<enable>1</enable>
<db_type>DM7</db_type>
<db_server>192.168.72.142</db_server>
<db_user>SYSDBA</db_user>
<db_pwd>SYSDBA</db_pwd>
<char_code>PG_GB18030</char_code>
<db_port>5236</db_port>
<level>0</level>
<exec_thr>1</exec_thr>
<exec_sql>512</exec_sql>
<exec_trx>5000</exec_trx>
<exec_rows>250</exec_rows>
<vpools>7</vpools>
<recv_caches>8</recv_caches>
<trxid_tables>1</trxid_tables>
</exec>
</dmhs>
- 启动DMHS服务以及数据装载
4.1 数据装载
检查DMHS安装目录下是否存在dmhs_cpt.tmp文件,如果存在则将该文件删除。
1)启动两端的dmhs服务
cd /opt/dmhs/bin
./DmhsServiceHSSERVER start
2)启动两端的执行服务
./dmhs_console
connect
start exec;
此处一定要用exec和cpt分别启动,不能用start命令,start命令不接cpt或exec默认根据配置文件即会启动cpt也会启动exec
3)数据装载
将有数据的一端将数据装载到另外一端
copy 0 “sch.name=’DMHR’” create|insert
装载完成后将装载执行端的dm7的归档日志删除并重启dm7服务器,只保留重启后的归档日志,才能保证过滤掉装载数据的重复。
装载完成后在另外一端需要装载字典
copy 0 “sch.name=’DMHR’” dict|clear
4)启动两端的cpt服务
./dmhs_console
connect
start cpt