1.搭建双向DM7版DMHS
1.1环境准备
操作系统:Red Hat Enterprise Linux Server release 7.6 (Maipo) x86_64
数据库版本:DM Database Server x64 V7.6.1.112-Build(2021.10.28-149686-10036)ENT
DMHS版本:V3.1.3-Build(2020.09.30-94249trunc)_D64
源端IP:192.168.1.92
目标端IP:192.168.1.93
1.2源端数据库配置
1.2.1两台机器开启归档
SQL> SELECT ARCH_DEST, ARCH_FILE_SIZE FROM SYS.V$DM_ARCH_INI WHERE ARCH_TYPE='LOCAL' AND ARCH_IS_VALID='Y';
ALTER DATABASE MOUNT;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dm7/dmarch,TYPE=local,FILE_SIZE=1024,SPACE_LIMIT=20480';
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
1.2.2两台机器开启逻辑日志
SQL> SELECT PARA_VALUE FROM SYS.V$DM_INI WHERE PARA_NAME = 'RLOG_APPEND_LOGIC';
[dmdba@DM7 ~]$ vim /dm7/data/DAMENG/dm.ini
[dmdba@DM7 bin]$ ./DmServiceDMSERVER restart
1.2.3检查在线日志
SQL> SELECT PATH FROM SYS.V$RLOGFILE;
1.2.4检查FAST_COMMIT参数
FAST_COMMIT参数要为0
SQL> select para_value from v$dm_ini where para_name = 'FAST_COMMIT';
1.3两台机器端安装DMHS
[dmdba@DM7 opt]$ ./dmhs_V3.1.3_dm7_rev94249_rh6_64_veri_20200930.bin -i
1.4配置两台机器DMHS
1.4.1修改dmhs_serverd
[dmdba@DM7 bin]$ vim dmhs_serverd
1.4.2编辑dmhs.hs配置文件
机器一:
[dmdba@DM7 bin]$ vim dmhs.hs
<?xml version="1.0" encoding="GB2312"?>
<dmhs>
<base>
<lang>ch</lang>
<mgr_port>5345</mgr_port>
<chk_interval>2</chk_interval>
<siteid>1</siteid>
</base>
<recv>
<data_port>5346</data_port>
<exec>
<db_type>DM7</db_type>
<db_server>192.168.1.92</db_server>
<db_user>SYSDBA</db_user>
<db_pwd>dm12345678</db_pwd>
<db_port>5236</db_port>
<db_name></db_name>
<exec_thr>4</exec_thr>
<exec_sql>512</exec_sql>
<exec_trx> 5000 </exec_trx>
<exec_rows>250</exec_rows>
<msg_col_size>3000</msg_col_size>
<exec_policy>2</exec_policy>
</exec>
</recv>
<cpt>
<db_type>DM7</db_type>
<db_server>192.168.1.92</db_server>
<db_user>SYSDBA</db_user>
<db_pwd>dm12345678</db_pwd>
<db_port></db_port>
<idle_time>300</idle_time>
<ddl_mask>op:obj</ddl_mask>
<parse_thr>1</parse_thr>
<arch>
<clear_interval>600</clear_interval>
<clear_flag>1</clear_flag>
<bak_dir></bak_dir>
</arch>
<send>
<ip>192.168.1.93</ip>
<mgr_port>5345</mgr_port>
<data_port>5346</data_port>
<level>0</level>
<trigger>0</trigger>
<constraint>0</constraint>
<identity>0</identity>
<net_turns>0</net_turns>
<filter>
<enable>
<item>*.*</item>
</enable>
<disable>
<item></item>
</disable>
</filter>
<map>
<item></item>
</map>
</send>
</cpt>
</dmhs>
机器二:
<?xml version="1.0" encoding="GB2312"?>
<dmhs>
<base>
<lang>ch</lang>
<mgr_port>5345</mgr_port>
<chk_interval>2</chk_interval>
<siteid>2</siteid>
</base>
<recv>
<data_port>5346</data_port>
<exec>
<db_type>DM7</db_type>
<db_server>192.168.1.93</db_server>
<db_user>SYSDBA</db_user>
<db_pwd>dm12345678</db_pwd>
<db_port>5236</db_port>
<db_name></db_name>
<exec_thr>4</exec_thr>
<exec_sql>512</exec_sql>
<exec_trx> 5000 </exec_trx>
<exec_rows>250</exec_rows>
<msg_col_size>3000</msg_col_size>
<exec_policy>1</exec_policy>
</exec>
</recv>
<cpt>
<db_type>DM7</db_type>
<db_server>192.168.1.93</db_server>
<db_user>SYSDBA</db_user>
<db_pwd>dm12345678</db_pwd>
<db_port></db_port>
<idle_time>300</idle_time>
<ddl_mask>op:obj</ddl_mask>
<parse_thr>1</parse_thr>
<arch>
<clear_interval>600</clear_interval>
<clear_flag>1</clear_flag>
<bak_dir></bak_dir>
</arch>
<send>
<ip>192.168.1.92</ip>
<mgr_port>5345</mgr_port>
<data_port>5346</data_port>
<level>0</level>
<trigger>0</trigger>
<constraint>0</constraint>
<identity>0</identity>
<net_turns>0</net_turns>
<filter>
<enable>
<item>*.*</item>
</enable>
<disable>
<item></item>
</disable>
</filter>
<map>
<item></item>
</map>
</send>
</cpt>
</dmhs>
1.4.3两台机器启动DMHS服务
[dmdba@DM7 bin]$ ./dmhs_serverd start
1.4.4两台机器启动exec模块
[dmdba@DM7 bin]$ ./dmhs_console
DMHS> connect 192.168.1.92:5345
DMHS> start exec
[dmdba@DM7 bin]$ ./dmhs_console
DMHS> connect 192.168.1.93:5345
DMHS> start exec
1.5配置两台机器DMHS
1.5.1执行ddl_sql_dm7.sql
SQL> start /dm7/dmhs/scripts/ddl_sql_dm7.sql
检查:
SQL> select owner, table_name from dba_tables where owner = 'SYSDBA' and table_name like 'DMHS%' and status = 'VALID';
SQL> select owner, trigger_name from dba_triggers where owner = 'SYSDBA' and trigger_name like 'DMHS%' and status = 'Y';
1.5.2初始装载
[dmdba@DM7 bin]$ ./dmhs_console
DMHS> connect 192.168.1.92:5345
DMHS> copy 0 "sch.name='*'" DICT
[dmdba@DM7 bin]$ ./dmhs_console
DMHS> connect 192.168.1.93:5345
DMHS> copy 0 "sch.name='*'" DICT
1.5.3两台机器启动cpt模块
DMHS> start cpt
1.6测试
1.6.1DDL和insert
机器一:
SQL> CREATE TABLE TEST1(C1 INT,C2 NUMBER, C3 VARCHAR(20) ,SRC_TIME DATE DEFAULT SYSDATE, primary key (c1));
begin
for i in 1..100000
loop
INSERT INTO TEST1(C1,C2,C3) VALUES(i, 123.24,'GOOD');
IF mod(i,1000) = 0 THEN
Commit;
End if;
end loop;
commit;
end;
/
SQL> SELECT COUNT(*) FROM TEST1;
机器二:
机器二:
SQL> CREATE TABLE TEST2(C1 INT,C2 NUMBER, C3 VARCHAR(20) ,SRC_TIME DATE DEFAULT SYSDATE, primary key (c1));
begin
for i in 1..100000
loop
INSERT INTO TEST2(C1,C2,C3) VALUES(i, 123.24,'GOOD');
IF mod(i,1000) = 0 THEN
Commit;
End if;
end loop;
commit;
end;
/
SQL> SELECT COUNT(*) FROM TEST2;
机器一:
1.6.2update
机器一:
SQL> select * from test1 where c1=1;
机器二:
SQL> select * from test1 where c1=1;
机器一:
SQL> update test1 set c2=12345 where c1=1;
SQL> commit;
SQL> select * from test1 where c1=1;
机器二:
机器二:
SQL> select * from test2 where c1=1;
机器一:
SQL> select * from test2 where c1=1;
机器二:
SQL> update test2 set c2=12345 where c1=1;
SQL> commit;
SQL> select * from test2 where c1=1;
机器一:
1.6.3delete
机器一:
SQL> delete from test1 where c1=1;
SQL> commit;
SQL> select * from test1 where c1=1;
机器二:
机器二:
SQL> delete from test2 where c1=1;
SQL> commit;
SQL> select * from test2 where c1=1;
机器一:
1.6.4创建索引
机器一:
SQL> create index test_idx on test1(c1);
SQL> select index_name,table_name from user_indexes where table_name='TEST1';
机器二:
机器二:
SQL> create index test2_idx on test2(c1);
SQL> select index_name,table_name from user_indexes where table_name='TEST2';
机器一:
1.6.5添加数据文件
机器一:
SQL> CREATE TABLESPACE TBS1 DATAFILE '/dm7/data/DAMENG/TBS1.DBF' SIZE 2048;
SQL> ALTER TABLESPACE TBS1 ADD DATAFILE '/dm7/data/DAMENG/TBS2.DBF' SIZE 2048;
SQL> select d.GROUP_ID,d.PATH,t.NAME from v$datafile d,v$tablespace t where d.GROUP_ID=t.ID;
机器二:
SQL> select d.GROUP_ID,d.PATH,t.NAME from v$datafile d,v$tablespace t where d.GROUP_ID=t.ID;
机器二:
SQL> CREATE TABLESPACE TBS2 DATAFILE '/dm7/data/DAMENG/TBS21.DBF' SIZE 2048;
SQL> ALTER TABLESPACE TBS2 ADD DATAFILE '/dm7/data/DAMENG/TBS22.DBF' SIZE 2048;
SQL> select d.GROUP_ID,d.PATH,t.NAME from v$datafile d,v$tablespace t where d.GROUP_ID=t.ID;
机器一:
SQL> select d.GROUP_ID,d.PATH,t.NAME from v$datafile d,v$tablespace t where d.GROUP_ID=t.ID;
达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台