• 技术文章 >数据库 >mysql教程

    GoldenGate 实现Oracle for Oracle 单向DDL操作同步

    2016-06-07 14:58:17原创427

    GoldenGate 实现Oracle for Oracle 单向DDL操作同步

    在 文章中我们实现了表的DML操作同步。

    我们做如下测试

    在源端执行表的truncate

    SQL> truncate table tcustmer;
    Table truncated.

    在目的端,查看表数据

    SQL> select count(*) from tcustmer;

    COUNT(*)
    ----------
    2

    数据并没有同步

    我们如何让Goldengate实现DDL操作的同步呢?

    GoldenGate 实现Oracle for Oracle 单向DDL操作同步

    要想支持DDL同步,需要在源数据库上做些设置,使得可以跟踪DDL操作。包括如下内容Trigger、marker和history table,一个用户角色和其他各式各样的数据库对象。

    首先要配置GLOBALS参数,告诉gg使用那个schema来存储DDL操作。

    GGSCI (localhost.localdomain) 19> edit params ./GLOBALS

    -- GoldenGate GLOBALS parameter file
    --
    GGSCHEMA GGDDL

    2. 使用sqlplus 创建ggddl用户,,并安装ddl支持

    SQL> conn / as sysdba
    Connected.
    SQL> create user ggddl identified by ggddl ;

    User created.

    SQL> grant connect,resource to ggddl;

    Grant succeeded.

    关闭数据回收站功能

    SQL> ALTER SYSTEM SET RECYCLEBIN = OFF scope=spfile;

    System altered.
    SQL> startup force
    Oracle instance started.

    Total System Global Area 835104768 bytes
    Fixed Size 2217952 bytes
    Variable Size 574621728 bytes
    Database Buffers 255852544 bytes
    Redo Buffers 2412544 bytes
    Database mounted.
    Database opened.

    运行marker_setup.sql (ogg的安装目录,进入sqlplus)

    [oracle@localhost ogg]$ sqlplus / as sysdba

    SQL*Plus: Release 11.2.0.1.0 Production on Fri Sep 11 19:58:40 2015

    Copyright (c) 1982, 2009, Oracle. All rights reserved.


    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options

    SQL> @marker_setup.sql

    Marker setup script

    You will be prompted for the name of a schema for the Oracle GoldenGate database objects.
    NOTE: The schema must be created prior to running this script.
    NOTE: Stop all DDL replication before starting this installation.

    Enter Oracle GoldenGate schema name:GGDDL


    Marker setup table script complete, running verification script...
    Please enter the name of a schema for the GoldenGate database objects:
    Setting schema name to GGDDL

    MARKER TABLE
    -------------------------------
    OK

    MARKER SEQUENCE
    -------------------------------
    OK

    Script complete.

    在弹出对话框输入GGSCHEMA的名称

    运行ddl_setup.sql

    SQL> @ddl_setup.sql

    运行role_setup.sql

    SQL> @role_setup.sql

    GGS Role setup script

    This script will drop and recreate the role GGS_GGSUSER_ROLE
    To use a different role name, quit this script and then edit the params.sql script to change the gg_role parameter to the preferred name. (Do not run the script.)

    You will be prompted for the name of a schema for the GoldenGate database objects.
    NOTE: The schema must be created prior to running this script.
    NOTE: Stop all DDL replication before starting this installation.

    Enter GoldenGate schema name:ggddl
    Wrote file role_setup_set.txt

    PL/SQL procedure successfully completed.


    Role setup script complete

    Grant this role to each user assigned to the Extract, GGSCI, and Manager processes, by using the following SQL command:

    GRANT GGS_GGSUSER_ROLE TO

    where is the user assigned to the GoldenGate processes.

    创建好角色后,并不是要把这个角色赋予ggddl用户,而是要将该角色赋予Extract,Replicat等使用的schema 。

    我们之前配置的是system用户

    SQL> GRANT GGS_GGSUSER_ROLE TO system;

    Grant succeeded.

    启用ddl,其实就是使trigger enable

    SQL> @ddl_enable.sql

    Trigger altered.

    关闭Manager,Extract,Replicat

    源端

    GGSCI (localhost.localdomain) 1> stop Extract eorakk
    GGSCI (localhost.localdomain) 5> stop mgr !

    目的端

    GGSCI (localhost.localdomain) 1> stop replicat rorakk
    Sending STOP request to REPLICAT RORAKK ...
    Request processed.
    GGSCI (localhost.localdomain) 2> stop manager

    编辑Extract参数

    GGSCI (localhost.localdomain) 5> edit params eorakk

    --
    -- Change Capture parameter file to capture
    -- TCUSTMER and TCUSTORD Changes
    --
    EXTRACT EORAKK
    USERID system, PASSWORD oracle
    RMTHOST 192.168.199.104, MGRPORT 7809
    EXTTRAIL ./dirdat/KK
    DDL INCLUDE ALL
    TABLE SCOTT.TCUSTMER;
    TABLE SCOTT.TCUSTORD;

    在原有基础上添加一行DDL INCLUDE ALL

    编辑Replicat参数

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:MySQL中VARCHAR和CHAR格式数据的区别 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • MySQL学习之聊聊查询语句执行流程• mysql数据库的超级管理员名称是什么• hive和mysql的区别有哪些• mysql怎么连接数据库• mysql事务隔离级别有哪些
    1/1

    PHP中文网