达梦数据实时同步工具DMHS--源端Oracle配置

一、使用限制

当同步源数据库是 Oracle 时,DMHS 使用具有以下限制:

1.启动 DMHS 的用户必须具有DBA权限,并和 Oracle 的安装用户位于同一用户组中。如果没有DBA权限,那么需要赋予如下权限(例如用户为“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;

2.  不支持Varray、Anydata、Anydataset、Anytype、BFILE、BINARY_INTEGER、MLSLABEL、PLS_INTEGER、URITYPE、UROWID等数据类型。

4.  不支持外部表。

5.  不能同步 Oracle 预留模式的对象。

6.  不能同步 Oracle 的回收表,如果要支持 Oracle 的DDL同步操作,必须将 Oracle 的回收机制关闭。

二、开启归档

当同步源数据库是 Oracle 时,必须开启 Oracle 的归档日志,请按照以下顺序进行操作,相关操作命令如下所示。

1.查看当前归档模式,确认是否开启归档日志

登录:sqlplus  /  as  sysdba

SQL> ARCHIVE LOG LIST;

2.  如果未开启归档日志,应首先关闭 Oracle 服务,准备开启归档日志。

SQL> SHUTDOWN IMMEDIATE;

3.切换归档日志的开启状态,首先必须采用 MOUNT 方式启动 Oracle 服务。

SQL> STARTUP MOUNT;

4.开启归档日志,查看开启归档日志是否成功,并对归档路径等进行设置。

SQL> ALTER DATABASE ARCHIVELOG;

查看归档列表

SQL> ARCHIVE LOG LIST;

修改恢复路径

SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='';

修改归档路径

SQL> ALTER SYSTEM  SET  LOG_ARCHIVE_DEST='e:\arch';

 

5.设置完成,将数据库切换到正常的工作状态,打开数据库。

SQL> ALTER DATABASE OPEN;

 

三、开启最小附加日志

当同步源数据库是 Oracle 时,还必须开启最小附加日志;并且当同步表不包含主键,还需要开启数据库级补充日志。相关操作命令如下所示。

1.  开启最小附加日志。

SQL> ALTER  DATABASE  ADD  SUPPLEMENTAL  LOG  DATA;

SQL> ALTER  DATABASE  ADD  SUPPLEMENTAL  LOG  DATA  (ALL)  COLUMNS;

2.查看最小附加日志是否开启。

SQL> SELECT  SUPPLEMENTAL_LOG_DATA_MIN  FROM  V$DATABASE;

 

四、RAC的支持

当同步源数据库是 Oracle 时,DMHS支持 ASM 类型和裸设备的 RAC,并且需要注意以下事项。

1.  DMHS必须安装Oracle RAC环境中的任意一个节点上,以便DMHS可以访问到共享磁盘上的日志文件。

2.  必须要检查RAC集群中所有节点的时钟同步情况。RAC集群中所有的节点的时钟必须同步,缺省容忍节点间有3秒的误差,如果允许容忍时间超过3秒,请修改对应的epoch参数。

3.  为了确保DMHS可以连接到ASM实例,需要在“tnsnames.ora”文件中进行配置ASM实例。配置方法示例如下:

ASM =

(

DESCRIPTION =

(ADDRESS =(PROTOCOL=TCP)(HOST=***.***.***.***)(PORT=1521))

      (CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME=+ASM))

)

4.  DMHS开启Oracle RAC同步时,配置文件中必须开启RAC选项,配置RAC实例连接的用户名和密码。当需要动态增加或减少RAC集群连接节点时,需要修改配置文件中的节点数,并重启DMHS方能生效。

5. 对于裸设备的RAC,归档文件是在本地文件系统,需要对节点上的归档目录进行nfs配置,实现共享。

五、用户

1创建\删除用户

登录到system以创建其他用户

SQL> connect / as sysdba

创建用户以及设置密码:

SQL> create user DMHS identified by 123456;

修改用户:

SQL> alter user DMHS identified by 234556;

撤销用户DMHS:

SQL> drop user DMHS;

为用户DMHS授权:

grant connect, resource to DMHS;

2.授权用户

GRANT SELECT   ON SYS.V_$DATABASE         TO DMHS;

GRANT SELECT   ON SYS.V_$SESSION          TO DMHS;

GRANT SELECT   ON SYS.GV_$PARAMETER       TO DMHS;

GRANT SELECT   ON SYS.GV_$INSTANCE        TO DMHS;

GRANT SELECT   ON SYS.GV_$ARCHIVE_DEST    TO DMHS;

GRANT SELECT   ON SYS.GV_$ARCHIVE         TO DMHS;

GRANT SELECT   ON SYS.GV_$LOG             TO DMHS;

GRANT SELECT   ON SYS.GV_$LOGFILE         TO DMHS;

GRANT SELECT   ON SYS.DBA_TABLES          TO DMHS;

GRANT SELECT   ON SYS.V_$INSTANCE         TO DMHS;

GRANT SELECT   ON SYS.OBJ$                TO DMHS;

GRANT SELECT   ON SYS.USER$               TO DMHS;

GRANT SELECT   ON SYS.COL$                TO DMHS;

GRANT SELECT   ON SYS.DBA_CONS_COLUMNS  TO DMHS;

GRANT SELECT   ON SYS.DBA_CONSTRAINTS     TO DMHS;

GRANT SELECT   ON SYS.LOB$                TO DMHS;

GRANT SELECT   ON SYS.TABPART$            TO DMHS;

GRANT SELECT   ON SYS.TAB$                TO DMHS;

GRANT SELECT   ON SYS.TABSUBPART$         TO DMHS;

GRANT SELECT   ON SYS.TABCOMPART$         TO DMHS;

GRANT EXECUTE  ON DBMS_FLASHBACK          TO DMHS;

GRANT CREATE    ANY  TABLE                   TO DMHS;

GRANT LOCK      ANY  TABLE                   TO DMHS;

GRANT SELECT     ANY  TABLE                   TO DMHS;

GRANT CREATE     ANY  VIEW                    TO DMHS;

GRANT SELECT      ANY  DICTIONARY              TO DMHS;

GRANT FLASHBACK  ANY  TABLE                   TO DMHS;

六、执行DDL同步脚本

SQL> start 目录/ddl_sql_ora.sql

七、配置dmhs.hs文件

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<dmhs>

    <base>

        <lang>en</lang>

        <mgr_port>5345</mgr_port> <!-- 管理端口号-->

        <chk_interval>3</chk_interval>

        <ckpt_interval>60</ckpt_interval>

<siteid>1</siteid> <!-- 源端站点编号-->

        <version>2.0</version>

    </base>

    <cpt>

        <db_type>Oracle11g</db_type>

        <db_server>orcl</db_server>

        <db_user>DMHS</db_user> <!--数据库用户名-->

        <db_pwd>123456</db_pwd> <!--数据库密码-->

        <db_port>1521</db_port>

        <idle_time>300</idle_time>

        <ddl_mask>OBJ:OP</ddl_mask>  <!--DDL同步参数-->

        <arch>

            <clear_interval>600</clear_interval>

            <clear_flag>0</clear_flag>  <!--归档删除标识-->

        </arch>

        <send>

            <ip>192.168.117.130</ip> <!--目标库ip-->

            <mgr_port>5345</mgr_port>

            <data_port>5346</data_port>

            <net_pack_size>256</net_pack_size>

            <net_turns>0</net_turns>

            <crc_check>0</crc_check>

            <trigger>0</trigger>

            <constraint>0</constraint>

            <identity>0</identity>

            <filter>   <!--过滤规则-->

                <enable>

                    <item>DMHS.*</item><!--源端DMHS模式下-->

                </enable>

                <disable/>

            </filter>

            <map>  <!--映射规则-->

                <!--源端DMHS模式下的对象同步到目的端SYSDBA模式下-->

                <item>DMHS.* == SYSDBA.*</item> 

            </map>

        </send>

    </cpt>

</dmhs>

 

 达梦学习社区地址:https://eco.dameng.com

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值