ORACLE-DM HS安装

DM为源端
Oracle为目标端

上传包,关闭防火墙,装好Oracle和DM数据库

安装ODBC
1.下载UnixODBC安装包
下载地址:ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-2.3.0.tar.gz

下载安装包unixODBC-2.3.0.tar.gz放到/usr/local下。

2.安装
运行下述命令:

cd /usr/local

tar zxvf unixODBC-2.3.0.tar.gz

cd unixODBC-2.3.0

./configure --prefix=/usr/local/unixODBC-2.3.7 --includedir=/usr/include --libdir=/usr/lib --bindir=/usr/bin --sysconfdir=/etc

---如果运行出错 error 查看是否缺少包
 缺少相关gcc及glib包

make
make install
安装完成

需要执行下:
ldconfig    #主要是为了找配置文件
3.测试
运行命令:

odbcinst -j

a.安装成功
终端会显示UnixODBC相关信息

unixODBC所需的头文件都被安装到了/usr/inlucde下,编译好的库文件安装到了/usr/lib下,与unixODBC相关的可执行文件安装到了/usr/bin下,配置文件放到了/etc下。安装完成

b.失败
终端显示:
odbcinst: error while loading shared libraries: libodbcinst.so.2: cannot open shared object file: No such file or directory

错误处理:

(1)如果库文件安装到了/lib或/usr/lib目录下,那么需在该目录下执行一下ldconfig命令


二、授权ODBC
chown -R dmdba:root /etc/odbcinst.ini
chown -R dmdba:root /etc/odbc.ini

三、配置
需要把odbc手动解压到oraDb11g_home1里

odbcinsi.ini:
[Oracle in OraDb11g_home1]
Description = ODBC DRIVER FOR ORACLE
Driver = /opt/odbc/instantclient_11_2/libsqora.so.11.1
Threading = 0

odbc.ini:
[ORACLE]
Description = ORACLE ODBC DSN
Driver = Oracle in OraDb11g_home1
SERVER = 192.168.208.175
UID = DMHS
PWD = DMHS
Servername = ORCL
PORT = 1521

cd 

四、测试
今日odbc的安装下
cd /usr/bin/
./isql -v ORACLE DMHS DMHSORA

五、安装HS
加-i参数

把一下内容放进dmdbms/bin下


六、源端配置文件
[oracle@localhost bin]$ more dmhs.xml 
<?xml version="1.0" encoding="GB2312"?>
<dmhs>
<base>
<lang>ch</lang>
<mgr_port>5345</mgr_port>
<chk_interval>3</chk_interval>
<ckpt_interval>60</ckpt_interval>
<siteid>1</siteid>
</base>
<cpt>
<db_type>oracle11g</db_type>
<db_server>XXX</db_server>
<db_user>DMHS</db_user>
<db_pwd>DMHS</db_pwd>
<db_port>1521</db_port>
<db_name></db_name>
<idle_time>10</idle_time>
<ddl_mask>OBJ:OP</ddl_mask>
<arch>
<clear_interval>600</clear_interval>
<clear_flag>0</clear_flag>
<bak_dir></bak_dir>
</arch>
<send>
<ip>192.168.208.XXX</ip>
<mgr_port>5345</mgr_port>
<data_port>5346</data_port>
<net_turns>0</net_turns>
<level>0</level>
<trigger>0</trigger>
<constraint>0</constraint>
<identity>0</identity>
<filter>
<enable>
<item>DMHS.*</item>    #如果同步表的用户多,往下加就可以了
</enable>
<disable>
<item>DMHS.XXX</item>    #过滤掉的表
</disable>
</filter>
<map></map>
</send>
</cpt>
</dmhs>

七、目标端配置文件
[dmdba@localhost bin]$ more dmhs_r.hs 
<?xml version="1.0" encoding="GB2312"?>
<dmhs>
<base>
<lang>en</lang>
<mgr_port>5345</mgr_port>
<ckpt_interval>60</ckpt_interval>
<siteid>2</siteid>
<version>2.0</version>
</base>
<exec>
<recv>
<data_port>5346</data_port>
</recv>
<db_type>dm8</db_type>
<db_server>192.168.208.XXX</db_server>
<db_user>DMHS</db_user>
<db_pwd>DMHS12345</db_pwd>
<db_port>5236</db_port>
<db_name></db_name>
<exec_thr>1</exec_thr>
<exec_sql>1024</exec_sql>
<exec_trx>1000</exec_trx>
<exec_rows>1000</exec_rows>
</exec>
</dmhs>

八、创建用户:
oracle:
create user dmhs identified by dmhs;
grant dba to dmhs;

dm:
create user DMHS2 identified by "DMHS12345";
grant dba to DMHS2;

九、源端
开启
1) 最小附加日志
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
(2) 数据库级补充日志。
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
(1) 必须将 Oracle 的回收机制关闭
SQL> alter system set recyclebin=off deferred;
打开DDL:
SQL> @/home/oracle/dmhs/scripts/ddl_sql_ora.sql
开启归档:
alter database mount;
alter database archivelog;
alter database open;
创建测试表:
SQL> create table ora2dm(
id int,
db_name_cpt varchar2(100),
db_name_exec varchar2(100));
SQL> insert into ora2dm values(1,'ORA','DM');
SQL> commit;

十、启动
源:
/dmhs/bin
./dmhs_server dmhs.xml
CONNECT IP:5345
COPY 0 "SCH.NAME='DMHS'" DICT|TRUNCATE|insert|thread|    #加载字典 
###快速装载
Copy 0 “sch.name in ('DMHS',’TEST’)” create|insert|fast|thread|4
###非快速装载
Copy 0 “sch.name in ('CIEBANK',’USER’)” DICT|truncate|insert|thread|8
Copy 0 "SCH.NAME= 'CIEBANK’" DICT|truncate|insert|thread|8

COPY 0 "SCH.NAME='CIEBANK'" DICT|TRUNCATE|insert|thread|8|count 
#count 是对比数据

clear exec lsn    #清理LSN
LOAD 0 "SCH.NAME='DMHS2' AND TAB.NAME='TEST2'"CREATE|INSERT    #初始化表
目标:
CONNECT IP:5345
start exec
最后:
目标端:start cpt    #抓捕
源端:start cpt

问题1:
有的时候会有报错:提示os找不到,把dmoci的文件拷贝到数据库bin目录下

问题2:

补充说明:
3.1 源端配置
源端dmhs.hs配置如下:
<?xml version="1.0" encoding="GB2312"?>
<dmhs>
          <base><!-- 管理模块的基本配置 -->
                    <lang>en</lang><!-- 语言选项,ch为中文,en为英文 -->
                    <mgr_port>5345</mgr_port><!-- 管理端口号,默认为5345,最小值1000,最大值65535 -->                   
                    <chk_interval>3</chk_interval><!-- 状态轮询间隔,默认为3s,最小值1s,最大值60s -->                  
                    <ckpt_interval>60</ckpt_interval><!--执行端检查点间隔,默认60s,最小值10s,最大值65536s -->
                    <siteid>1</siteid><!-- 站点ID,这个ID配置时要注意,全局唯一,最小值0,最大值65535 -->
          </base>
          
          <cpt><!-- 这项配置可以配置多个,也就是可以配置多个捕获模块,如果该节点只作为执行端,该节点需要删除 -->
                    <db_type>Oracle10g</db_type><!-- 数据库类型,默认为dm7,限定值Oracle10g,Oracle11g,dm6,dm7 -->
                    <db_server>orcl</db_server><!-- 数据库实例名-->
                    <db_user>dmhs</db_user><!-- 数据库用户名,默认为SYSDBA -->
                    <db_pwd>dmhs</db_pwd><!-- 数据库口令,默认为SYSDBA -->
                    <db_port>1521</db_port><!-- 数据库端口号,默认为5236 -->
                    <idle_time>300</idle_time><!-- 分析线程空闲睡眠时间,默认值为300ms,最小值0ms,最大值65536ms -->
                    <ddl_mask>0</ddl_mask><!-- 分析端是否支持DDL同步,可选项0(不支持DDL), 1(支持DDL),需要将安装脚本中对应的DDL脚本在源端执行-->
                    <parse_thr>1</parse_thr><!-- 分析线程个数,默认为1,最小值1,最大值32,多线程分析时,不支持ALTER TABLE操作同步 -->       
                    <arch>
                               <clear_interval>3600</clear_interval><!-- 归档文件清理间隔,默认为600s,最小值60s,最大值2000000000s -->
                               <clear_flag>1</clear_flag><!-- 清除归档日志的方式,可选项0(无动作), 1(删除归档文件), 2(表示移走归档文件)-->
                               <bak_dir></bak_dir><!-- clear_flag项配置成2时,该配置项可以用来指定归档文件转移的目录,如果未配置这项,则转移到归档路径的log_bak目录下 -->
                    </arch>   
                    <send><!-- 发送模块配置 -->
                                         <ip>10.20.230.244</ip><!-- 目的端IP,默认127.0.0.1 -->
                                         <mgr_port>5345</mgr_port><!-- 目的端管理端口,默认为5345,最小值1000,最大值65535 -->
                                         <data_port>5346</data_port><!-- 目的端数据接收端口号,默认为5346,最小值1000,最大值65535 -->
                                         <level>0</level><!-- 复制级别,默认为0,最小值0,最大值65535 -->
                                         <trigger>0</trigger><!-- 是否忽略触发器,默认为0,限定值0,1 -->
                                         <constraint>0</constraint><!-- 是否忽略约束,默认为0,限定值0,1 -->
                                         <identity>0</identity><!-- 是否忽略自增列,默认为0,限定值0(不忽略,插入同步过来的值),1(忽略,插入自增列自身的值) -->
                                         <net_turns>0</net_turns><!-- 是否开启网闸模式,默认为0,限定值0(关闭),1(开启),网匝模式下,主机看不到备机的统计信息 -->
                                         <filter><!-- 过滤,必须指定,一定要注意大小写,要跟源库中的对像名大小写保持一致 -->
                                                   <enable>
                                         <item>DMHS.*</item>
                                                             <item>TEST.*</item>
                                                   </enable>                                          
                                         </filter>
                                         <map></map>
                    </send>
          </cpt>
</dmhs>
 
3.2 目的端配置
目的端配置文件如下:
<?xml version="1.0" encoding="GB2312"?>
<dmhs>
          <base><!-- 管理模块的基本配置 -->
                    <lang>ch</lang><!-- 语言选项,ch为中文,en为英文 -->
                    <mgr_port>5345</mgr_port><!-- 管理端口号,默认为5345,最小值1000,最大值65535 -->                   
                    <chk_interval>2</chk_interval><!-- 状态轮询间隔,默认为3s,最小值1s,最大值60s -->                  
                    <ckpt_interval>45</ckpt_interval><!--执行端检查点间隔,默认60s,最小值10s,最大值65536s -->
                    <siteid>2</siteid><!-- 站点ID,这个ID配置时要注意,全局唯一,最小值0,最大值65535 -->
          </base>
          <recv><!-- 接收模块的基本配置,如果该节点只作为分析端,该节点需要删除 -->
                    <data_port>5346</data_port>
                    <exec><!-- 执行模块的基本配置 -->
                               <db_type>ORACLE10g</db_type><!-- 数据库类型,默认为dm7,限定值Oracle10g,Oracle11g,dm6,dm7 -->
                               <db_server>orcl</db_server><!-- 数据库实例名-->
                               <db_user>system</db_user><!-- 数据库用户名,默认为SYSDBA -->
                               <db_pwd>oracle</db_pwd><!-- 数据库口令,默认为SYSDBA -->
                               <db_port>1521</db_port><!-- 数据库端口号,默认为5236 -->
                               <db_name></db_name><!-- 默认数据库名,默认为空串(只针对dm6有用)-->
                               <exec_mode>1</exec_mode><!-- 执行模式, 1(多线程执行),2(ETL模式),3(消息中转模式,跨网段级联时使用) -->
                               <exec_thr>8</exec_thr><!-- 执行线程个数,只有当exec_mode为1时才会生效!默认为1,最小值1,最大值64-->
                               <exec_sql>1024</exec_sql><!-- SQL缓存大小,默认为512M,最小值32M,最大值4096M -->
                               <exec_trx> 5000 </exec_trx><!-- 事务缓存个数,默认为5000,最小值,1000,最大值10000 -->
                               <exec_rows>250</exec_rows><!-- 批量绑定行数,默认为250,最小值1,最大值2000 -->
                               <commit_policy>0</commit_policy>
                               <exec_policy>2</exec_policy>
                               <msg_col_size>8000</msg_col_size><!-- 保存缓存消息列的大小,这取决于目的库的块大小, 默认为8000,最小值1000,最大值8000 -->
                               <level>0</level><!-- 复制级别,默认为0,最小值0,最大值65535 -->
                    </exec>
          </recv>   
</dmhs>

达梦支持
=======================================

有任何问题请到技术社区反馈。

24小时免费服务热线:400 991 6599

达梦技术社区:https://eco.dameng.com

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值