DM为目标端,Oracle为源端,不需要配置ODBC
五、安装HS
加-i参数
六、源端配置文件
[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>ORCL</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.172</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></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.172</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 bu dmhs;
grant dba to dnhs;
dm:
create user DMHS identified by "DMHS12345"
grant dba to DMHS
九、源端
开启
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 #加载字典
clear exec lsn #清理LSN
LOAD 0 "SCH.NAME='DMHS' AND TAB.NAME='ORA2DM'"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>
更多资讯请上达梦技术社区了解:https://eco.dameng.com