DM8到Oracle的单向同步

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

  1.  修改位于$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))
    )
  2. 查看ODBC安装信息:

    odbcinst -j

  3. 编辑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
  4. 验证登录

    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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值