搭建oracle11g-->dm8的单向同步

1 准备阶段:

准备两台虚拟机:

源端:192.168.237.164

目的端:192.168.237.165

两台虚拟机分别安装好oracle版和dm版dmhs,在源端下载好oracle11g,目的端下载好dm8,下载流程在此不多做赘述

两台虚拟机都关闭防火墙:

systemctl stop firewalld

2 配置归档:

源端:

设置归档文件路径

lsnrctl start
sqlplus / as sysdba
startup mount
alter database archivelog;
alter system set db_recovery_file_dest='';
alter system set log_archive_dest='/opt/oracle/app/oracle/product/11.2.0/dbhome_1/archlog';
alter database open;
archive log list;

  

开启附加日志

alter database add supplemental log data;
alter database add supplemental log data (all) columns;
select supplemental_log_data_min,supplemental_log_data_all from v$database;

目的端:

开启归档

./disql SYSDBA/SYSDBA@localhost:5236

alter database mount;
alter database archivelog;
alter database open;
select arch_mode from v$database;

开启逻辑日志

SELECT PARA_VALUE FROM SYS.V$DM_INI WHERE PARA_NAME = 'RLOG_APPEND_LOGIC';
SP_SET_PARA_VALUE(2, 'RLOG_APPEND_LOGIC',1); 
alter system set 'RLOG_APPEND_LOGIC'=1 both;
SELECT PARA_VALUE FROM SYS.V$DM_INI WHERE PARA_NAME = 'RLOG_APPEND_LOGIC';

3 创建测试数据

源端:

创建用户

create user DMHS identified by "DMHS" default tablespace USERS temporary tablespace TEMP profile DEFAULT;
grant connect to DMHS;
grant select any table to DMHS;
grant select any dictionary to DMHS;
grant create session to DMHS;
grant lock any table to DMHS;
grant execute on dbms_flashback to DMHS;
grant unlimited tablespace to DMHS;
grant create table to DMHS;

创建测试表并插入数据

conn DMHS/DMHS
Create table t1(id number);
Insert into t1 values(1);

4 配置ODBC

检查odbc是否下载:

odbcinst -j

若未安装:

yum -y install unixODBC unixODBC-devel

配置odbc:

vim /etc/odbcinst.ini

[Oracle in OraDb11g_home1]
Description = Oracle ODBC driver for Oracle 11g
Driver = /opt/oracle/app/oracle/product/11.2.0/dbhome_1/lib/libsqora.so.11.1
Threading = 0

vim /etc/odbc.ini

[ORACLE]
Description = Oracle ODBC driver for Oracle 11g
Driver= Oracle in OraDb11g_home1
SERVER = 192.168.237.164
ServerName = ORCL
UserID = DMHS
Password = DMHS
Port = 1521

检查是否缺依赖:

su - oracle
ldd /ora/oracle/product/11.2.0/db_1/lib/libsqora.so.11.1 

缺少libodbcinst.so.1

find / -name libodbcinst* 

选择一个将其拷贝到数据库的lib目录下

cp /usr/lib64/libodbcinst.so.2 /opt/oracle/app/oracle/product/11.2.0/dbhome_1/lib/libodbcinst.so.1

isql -v ORACLE

若出现下图反馈,则配成完成

 5 配置DMHS

目的端:

在dmhs目录下

find / -name libdmoci* 

Cp 一份libdmoci.so到**/dmhs/bin目录下

在**/dmhs/bin目录下Vim dmhs.hs:

<?xml version="1.0" encoding="GB2312"?>
<dmhs>
    <base>
        <lang>en</lang>
        <mgr_port>5345</mgr_port>
        <chk_interval>2</chk_interval>
        <ckpt_interval>45</ckpt_interval>
        <siteid>4</siteid>
        <version>2.0</version>
</base>
<exec>
 <recv>
  <data_port>5346</data_port>
 </recv>
       <db_type>dm8</db_type>
       <db_server>192.168.237.165</db_server>
       <db_user>SYSDBA</db_user>
       <db_pwd>SYSDBA</db_pwd>
       <db_port>5236</db_port>
       <char_code>PG_UTF8</char_code>
       <db_name></db_name>
       <exec_thr>2</exec_thr>
       <exec_sql>1024</exec_sql>
       <exec_trx>2000</exec_trx>
       <exec_rows>2000</exec_rows>
       <msg_col_size>30000</msg_col_size>
       <ddl_continue>1</ddl_continue>
       <affect_row>0</affect_row>
       <exec_policy>2</exec_policy>
       <enable_rowid>0</enable_rowid>
       <clear_trx_file>1</clear_trx_file>
       <trx_max_file>8</trx_max_file>
</exec>
</dmhs>

源端:

同样cp一份libdmoci.so到**/dmhs/bin目录下,并在**/dmhs/bin目录下Vim dmhs.hs:

<?xml version="1.0" encoding="GB2312"?>
<dmhs>
 <base>    <!-- 管理模块的基本配置 -->
  <lang>en</lang>
  <mgr_port>5345</mgr_port>
  <ckpt_interval>60</ckpt_interval>
  <siteid>3</siteid>    <!-- 站点ID,这个ID配置时要注意,全局唯一,最小值0,最大值65535 -->
  <version>2.0</version>
 </base>
 <cpt>    <!-- 捕获器模块,这项配置可以配置多个 -->
  <db_type>ORACLE11g</db_type>    <!-- 源端数据库类型 -->
  <db_server>orcl</db_server>    <!-- 源端数据库服务名,DM8和ORACLE为OCI连接的服务名,DM6为连接的服务器IP -->
  <db_user>DMHS</db_user>    <!-- 源端数据库用户名 -->
  <db_pwd>DMHS</db_pwd>    <!-- 用户的密码 -->
  <db_port>1521</db_port>    <!-- 源端数据库端口 -->
  <ddl_mask>TABLE:VIEW:INDEX:OP</ddl_mask>    <!--DDL配置项,写的是掩码,需同步DDL时使用,详见末尾-->
  <arch>    <!--归档信息配置,该标签是一个功能标签,需要配置它的子项-->
   <clear_interval>600</clear_interval>    <!--归档日志清理间隔,取值范围在60-65535,单位秒 -->
   <clear_flag>0</clear_flag>    <!--归档日志清理选项,选配0(不操作),默认为0 -->
  </arch>
  <send>    <!-- 此处仅以发送到网络为例,其他配置详见本手册 4.2NET 发送子模块 -->
   <ip>192.168.237.165</ip>    <!-- 目标端dmhs的服务器ip -->
   <mgr_port>5345</mgr_port>    <!-- 目标端dmhs的管理端口号 -->
   <data_port>5346</data_port>    <!-- 目标端dmhs的data_port -->
   <filter>    <!-- 过滤配置项,必须指定 -->
    <enable>    <!-- 白名单,允许同步所有的表 -->
     <item>DMHS.*</item>    <!-- 要同步的模式名.表名,*代表所有 -->
    </enable>
   </filter>
   <map>    <!--映射配置项-->
    <item>DMHS.*==TEST.*</item>    <!-- 要同步的模式名,左边是源端,右边是目标端 -->
   </map>
  </send>
 </cpt>
</dmhs>

 6 开始同步

目的端:

进入到dmhs/bin目录下:

./dmhs_server dmhs.hs

start exec

源端:

进入到dmhs/bin目录下:

./dmhs_server dmhs.hs

clear exec lsn

COPY 0 "SCH.NAME='DMHS'" DICT|CREATE|INSERT

去目的端检查是否将测试数据同步过去:

开始实时数据抓取:

start cpt

请上达梦社区了解 https://eco.dameng.com

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值