1. 基本配置
准备两台虚拟机A,B,二者配置如下(关于DMHS的安装包,需要联系DM内部技术人员获得)
A(目的端):安装了 Oracle11G、Oracle11G版DMHS,IP地址192.168.127.136
B(源端):安装了DM8,DM8版本的DMHS,IP地址192.168.127.135
A 、B两台机器均关闭防火墙:
systemctl stop firewalld
2. 源端(DM8)配置
2.1 开启附加日志
使用disql工具登录到DM8,然后开启附加日志:
disql SYSDBA/SYSDBA:5236
SQL> SELECT PARA_VALUE FROM V$DM_INI WHERE PARA_NAME='RLOG_APPEND_LOGIC';
如果查询得到的PARA_VALUE的值大于0,说明此功能已经开启。如果取值为0,则需要开启:
SQL> alter system set 'RLOG_APPEND_LOGIC'=2 both;
SQL> SELECT PARA_VALUE FROM V$DM_INI WHERE PARA_NAME='RLOG_APPEND_LOGIC';
启用该参数后,源端 DM8 的归档日志量比不启用该参数会有所增加。
2.2 开启归档模式
DMHS同步源端数据库需要开启归档模式,检查是否归档开启如下,为Y则开启,否则不然:
SQL> select arch_mode from v$database;
如果未开启,则需要使用命令行或图形化客户端等工具开启:
alter database mount;
alter database add archivelog 'DEST=/dm8/arch,TYPE=LOCAL,FILE_SIZE=256,SPACE_LIMIT=0';
alter database archivelog;
alter database open;
2.3 DDL同步配置
如果有一端需要有 DDL 同步,DDL 同步脚本需要在两台机器的数据库上均执行。 同步脚本位于 DMHS 安装目录的 scripts 子目录下 ,脚本命名:ddl_sql_数据库库类型.sql,对于DM8,则为ddl_sql_dm8.sql。
start XXX/dmhs/scripts/ddl_sql_dm8.sql
2.4 配置dmhs.hs
在dmhs安装目录下搜索一份libdmoci.so并复制到**/dmhs/bin目录下
find / -name libdmoci*
然后,在dmhs的bin目录下编辑dmhs.hs
vim xxx/dmhs/bin/dmhs.hs
#dmhs.hs编辑信息如下
<?xml version="1.0" encoding="GB2312"?>
<dmhs>
<base>
<lang>ch</lang>
<mgr_port>5345</mgr_port>
<chk_interval>2</chk_interval>
<ckpt_interval>45</ckpt_interval>
<siteid>9</siteid>
<version>2.0</version>
</base>
<cpt>
<enable>1</enable>
<name></name>
<db_type>DM8</db_type>
<db_server>192.168.127.135</db_server>
<db_user>SYSDBA</db_user>
<db_pwd>SYSDBA</db_pwd>
<db_port>6891</db_port>
<idle_time>300</idle_time>
<ddl_mask>TABLE:VIEW:INDEX:OP</ddl_mask>
<parse_thr>1</parse_thr>
<send_lst>2</send_lst>
<rec_heap_size>16</rec_heap_size>
<vpool_size>8</vpool_size>
<supplement_log>0</supplement_log>
<enable_mview>0</enable_mview>
<check_date>0</check_date>
<nvarchar>8</nvarchar>
<trx_delay_second>10</trx_delay_second>
<send_delay_second>20</send_delay_second>
<arch>
<clear_flag>0</clear_flag>
<clear_interval>60</clear_interval>
</arch>
<send>
<ip>192.168.127.136</ip>
<mgr_port>5345</mgr_port>
<data_port>5346</data_port>
<trigger>0</trigger>
<filter>
<enable>
<item>DMHS.*</item>
</enable>
</filter>
<map>
<item>DMHS.* == DMHS.*</item>
</map>
</send>
</cpt>
</dmhs>
3. 执行端(Oracle11g)配置
3.1 安装ODBC
使用源码安装:
tar –xvf unixODBC-2.3.0.tar
cd unixODBC-2.3.0
./configure
make
make install
3.2 配置UNIXODBC
- 修改位于$ORACLE_HOME/network/admin下的tnsnames.ora文件,使用vim编辑如下:
orcl = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.163.130)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl)) )
-
查看ODBC安装信息:
odbcinst -j
-
编辑odbc.ini与odbcinst.ini如下:
#编辑odbc.ini vim /etc/odbc.ini #编辑信息如下 [ORACLE] Description = ORACLE ODBC DSN Driver = Oracle in OraDb11g_home1 SERVER = 192.168.127.135 UID = DMHS PWD = DMHS Servername = orcl PORT = 1521 #编辑odbcinst.ini vim /etc/odbcinst.ini #编辑信息如下 [Oracle in OraDb11g_home1] Description = ODBC DRIVER FOR ORACLE Driver = /ora/oracle/product/11.2.0/db_1/lib/libsqora.so.11.1 Threading = 0
-
验证登录
isql -v ORACLE
3.3 DDL同步配置
如果有一端需要有 DDL 同步,DDL 同步脚本需要在两台机器的数据库上均执行。 同步脚本位于 DMHS 安装目录的 scripts 子目录下 ,脚本命名:ddl_sql_数据库库类型.sql,对于Oracle,则为ddl_sql_ora.sql。
start XXX/dmhs/scripts/ddl_sql_ora.sql
3.4 配置dmhs.hs
检查libdmhs_exec.so模块(启动源和目的模块前尽量把各依赖库补充齐全):
ldd libdmhs_exec.so
在dmhs/bin下配置dmhs.hs如下:
<?xml version="1.0" encoding="GB2312"?>
<dmhs>
<base>
<lang>ch</lang>
<mgr_port>5345</mgr_port>
<name>ORA_HS</name>
<ckpt_interval>60</ckpt_interval>
<siteid>1</siteid>
<version>2.0</version>
</base>
<exec>
<recv>
<data_port>5346</data_port>
</recv>
<db_type>ORACLE11g</db_type>
<db_server>ORCL</db_server>
<db_user>DMHS</db_user>
<db_pwd>DMHS</db_pwd>
<db_port>1521</db_port>
<level>0</level>
<exec_mode>0</exec_mode>
<exec_thr>8</exec_thr>
<exec_sql>1024</exec_sql>
<exec_trx>5000</exec_trx>
<exec_rows>250</exec_rows>
<case_sensitive>1</case_sensitive>
<toggle_case>0</toggle_case>
<exec_policy>2</exec_policy>
<commit_policy>1</commit_policy>
<enable_merge>1</enable_merge>
</exec>
</dmhs>
4. 启动模块
4.1 启动目的端dmhs
进入到dmhs/bin目录下,手动启动dmhs:
cd xxx/dmhs/bin
./dmhs_server dmhs.hs
4.2 启动源端dmhs
同样地,进入到dmhs/bin目录下,手动启动dmhs:
cd xxx/dmhs/bin
./dmhs_server dmhs.hs
4.3 启动目的端exec
可以在同样的目录下使用console工具执行,也可以直接在dmhs_server运行窗口内直接执行:
start exec
4.4 启动源端cpt模块
第一次做同步时需要先装载字典,然后再做同步。
clear exec lsn
copy 0 "sch.name='dmhs'" dict|create|insert
随后,启动cpt模块:
start cpt
至此,DM8到Oracle11G的单向同步配置与启动完毕。不过此过程可能忽略了较多细节,之后还可以再完善。
更多关于DM数据库的资讯请移步: https://eco.dameng.com