拓扑园

  • O&M
    • Universal部署
    • PHP+VUE+Laravel相关
  • Oracle性能优化
  • Oracle项目案例
    • Oracle近期项目案例(目录)
    • Oracle实战问题解析(目录)
    • Oracle数据库名变更流程(2种方式)
    • Oracle数据库目录更换流程(使用Oracle的clone工具)
    • Oracle数据库迁移方案(目录)
    • 标准化文档系列
  • Oracle基础知识
    • LLL的Oracle培训(分类)
    • LLL的docker培训(分类)
    • 标准化文档系列--(分类)
    • Oracle核心经典分析(分类)
    • 图灵小队----(分类并包含以下文章)
    • --MySQL8.0/Oracle/Memcached/Redis等安装配置于RHEL/OL6/7/8.X系列-运行环境最优配置
    • --PG安装配置于RHEL/9X系列-运行环境最优配置
    • --自动维护任务详解-开启、关闭信息统计收集(统计信息)
    • --图灵小队—Oracle/PostgreSQL下创建一个用户测试表(自行定义数据行)
    • --图灵小队-Oracle存储过程导出表的明细_UTL_FILE(文章)
    • --图灵小队-Oracle数据库删除/卸载操作指南(文章)
    • --图灵小队-Oracle常用性能查询SQL语句(文章)
    • --图灵小队-Oracle数据库上线前检查(文章)
    • --图灵小队-Oracle常用SQL语句(文章)
    • --图灵小队—Linux/Oracle脚本/MySQL合集(持续更新)
    • --图灵小队-Oracle技巧记录(文章)
    • ADG
    • RAC
    • ASM
    • OGG
    • RMAN
    • EXPDP/IMPDP
    • 工厂数据导入导出系列
  • MySQL
    • MySQL数据库规范
    • MySQL项目案例
    • MySQL安装配置
    • MYSQL集群项目
    • MySQL常见处理
    • MySQL-Sysbench专题
    • MySQL-Percona Toolkit专题
  • Linux
    • Shell编程
    • kubernetes
    • docker
    • Linux
    • PHP
    • Nginx
    • haproxy
    • mail
    • 网站
    • 域名
    • 网址收藏
  • 数据中心
    • 新框架系统集合
    • 工作文档
    • EBS数据文件扩容
    • VMware虚拟化
    • EBS系列
    • 大数据
    • SVN
    • zabbix
    • SAP
    • 备份相关
    • FC交换机
    • SVN
  • K-Studing
    • D8-Python学习
    • Oracle/MySQl等面试题
    • LG-MySQL
    • LG-Docker/K8S
    • LG-PostgreSQL
    • LG-ORACLE_BBED
    • LG-ORACLE
    • LG-Elasticsearch(ES)+ELK
    • Oracle-19C-OCP
    • WERN_ORACLE培训
    • redis数据库
    • Nginx培训学习系列
  • 其他
    • 外研英语4年级下册-听力
    • 影视系列
    • 如何使用iTunes软件通过抓包下载旧版本的ios的app
天高任鸟飞
Oracle/MySQL数据库恢复/数据迁移/生产规范报告技术交流:TEL:18562510581(微信同号);加微信入群
  1. 首页
  2. Oracle
  3. OGG
  4. 正文

Oracle GoldenGate (OGG)12c for oralce 12c/Centos 7.3 之五——配置(单向复制-增加配置DDL)

2019年6月22日 1765点热度 0人点赞 0条评论

注:DDL配置完成后,参数只在extract加入即可“DDL include all”,pump以及replicate默认开启


存在问题:DDL完成后,DML的table ogg_src.*不能被识别,只有table ogg_src.togg指向固定的表才可以(如果出现下列问题,则单独常见DDL对象用户)

(1)OGG DML操作,源端可以同步到目标端,一切都正常,并且params 中的参数使用的是table ogg_src.*; 使用通配符;

(2)但是安装配置DDL后,在extract 源端进程中,使用table ogg_src.*,DML操作后,stats extract进程,一直是No active extraction maps;

(3)只有改为ogg_src.ogg等,指向明确的表后,才能读取到DML的操作;

(4)而DDL操作可以检测到数据变化;

查找原因:根据各种测试过程,发现DDL的用户需要单独建立,在进行安装配置时,@ddl_setup.sql,@role_setup.sql 用DDL独立的用户,避免与DML使用同一个用户,可以正常同步DML的table ogg_src.*;


一、配置2台服务器,搭建OGG,实现用户下的数据DDL和DML复制功能。

wpsC7F1.tmp 

二、先验证之前的配置不支持DDL复制    

这里在source端,新建一张表,发现无法复制到target端!target端也新建相同的表后,DML操作可以成功复制

1、source 端:在ogg_src用户下,新建一张表,t2

SQL> create table t2 (id number primary key,name varchar2(20));
Table created.
SQL> select * from t2 ;
no rows selected

测试target端是否有t2(在ogg_trg用户下),找不到表t2

SQL> select * from t2;
select * from t2
              *
ERROR at line 1:
ORA-00942: table or view does not exist

2、源端插入数据,查看源端stats以及target端stats变化

1)source端:插入一条数据

SQL> insert into t2 values (1,'one'); 
1 row created.
SQL> commit;
Commit complete.

2)查看source端的ggsci 的stats esydb001

GGSCI (ORACLEOGG1) 47> stats esydb001
Sending STATS request to EXTRACT ESYDB001 ...
Start of Statistics at 2019-06-27 09:42:10.
Output to /data/u01/app/oracle/product/ogg_src/dirdat/es:
Extracting from OGG_SRC.T2 to OGG_SRC.T2:
*** Total statistics since 2019-06-27 09:42:01 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total upserts                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00
*** Daily statistics since 2019-06-27 09:42:01 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total upserts                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00
*** Hourly statistics since 2019-06-27 09:42:01 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total upserts                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00
*** Latest statistics since 2019-06-27 09:42:01 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total upserts                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00

3)测试target端是否有t2(在ogg_trg用户下),找不到表t2

SQL> select * from t2;
select * from t2
              *
ERROR at line 1:
ORA-00942: table or view does not exist

4)查看target端stats rsydb001,发现报错

GGSCI (ORACLEOGG2) 50> stats rsydb001
Sending STATS request to REPLICAT RSYDB001 ...
2019-06-27 09:42:32  ERROR   OGG-15148  REPLICAT RSYDB001 not currently running.

5)查看info all,replicat进程为Abended状态,停止

GGSCI (ORACLEOGG2) 1> info all
Program     Status      Group       Lag at Chkpt  Time Since Chkpt
MANAGER     RUNNING                                           
REPLICAT    ABENDED     RSYDB001    00:00:00      00:03:49

6)查看日志:ggserr.log,发现错误根源,target端用户ogg_trg没有t2导致。

2019-06-27T09:44:06.609+0800  ERROR   OGG-00199  Oracle GoldenGate Delivery for Oracle, rsydb001.prm:  Table OGG_TRG.T2 does not exist in target database.

7)上述结论,可以看出当前DDL操作,是无法同步数据的。尝试在target端手动创建表t2,查看结果,最终发现手动创建表后,DML仍然可以进行同步。

SQL>create table t2 (id number primary key,name varchar2(20));
SQL> select * from t2;
no rows selected

    查看info all,发现rsydb001自动启动了。

GGSCI (ORACLEOGG2) 1> info all
Program     Status      Group       Lag at Chkpt  Time Since Chkpt
MANAGER     RUNNING                                           
REPLICAT    RUNNING     RSYDB001    00:00:00      00:00:00

    查看stats rsydb001,已经同步数据,同时查看table 表;

GGSCI (ORACLEOGG2) 2> stats rsydb001
Sending STATS request to REPLICAT RSYDB001 ...
Start of Statistics at 2019-06-27 09:59:08.
Replicating from OGG_SRC.T2 to OGG_TRG.T2:
*** Total statistics since 2019-06-27 09:57:06 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total upserts                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00
*** Daily statistics since 2019-06-27 09:57:06 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total upserts                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00
*** Hourly statistics since 2019-06-27 09:57:06 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total upserts                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00
*** Latest statistics since 2019-06-27 09:57:06 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total upserts                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00
End of Statistics.

SQL> select * from t2;
        ID NAME
---------- --------------------
         1 one


三、开始配置OGG支持DDL复制(在source端操作)

3.1 赋予source端OGG用户ogg_src相应的权限,修改全局配置文件添加ggschema参数;

[oracle@ORACLEOGG1 /home/oracle]$sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Thu Jun 27 14:10:45 2019
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> grant execute on utl_file to ogg_src;
Grant succeeded.
GGSCI (ORACLEOGG1) 3> edit param ./GLOBALS
GGSCHEMA ogg_src

3.2 运行相关sql脚本(OGG自带)

如果想使用DDL功能,需要在之前运行支持DDL的相关脚本。

(0-0)首先创建DDL对像用户

    create tablespace ts_ogg;

    CREATE USER ddluser    IDENTIFIED BY goldengate DEFAULT TABLESPACE ts_ogg;

    GRANT CONNECT TO ddluser    ;

    GRANT RESOURCE TO ddluser    ;

    grant dba to ddluser    ;

(0-1) 进入到$OGG_HOME目录,登录sqlplus,执行相关脚本语句,进行DDL安装,安装DDL对象的用户需要单独建立

(1)@marker_setup.sql ——Enter Oracle GoldenGate schema name:新建的DDL对像用户

(2)@ddl_setup.sql  —— Enter Oracle GoldenGate schema name:新建的DDL对像用户

(3)@role_setup.sql  —— Enter Oracle GoldenGate schema name:新建的DDL对像用户

(4)GRANT GGS_GGSUSER_ROLE TO ogg_src;(“即参数文件里面通过userid指定的用户 ogg_src”)

(5)@ddl_enable.sql

(6)@?/rdbms/admin/dbmspool.sql 

(7)@ddl_pin.sql  新建的DDL对像用户

测试语句:

Commit complete.

SQL> create table t2(ID int,NAME varchar(200));

SQL>insert into togg(ID,NAME) values(2003,'LLL');


3.2.0 进入到$OGG_HOME目录,登录sqlplus,执行相关脚本语句

[oracle@ORACLEOGG1 /]$cd $OGG_HOME
[oracle@ORACLEOGG1 /data/u01/app/oracle/product/ogg_src]$sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Thu Jun 27 14:58:47 2019

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

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

3.2.1 执行@marker_setup.sql

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:ogg_src
Marker setup table script complete, running verification script...
Please enter the name of a schema for the GoldenGate database objects:
Setting schema name to OGG_SRC
MARKER TABLE
-------------------------------
OK
MARKER SEQUENCE
-------------------------------
OK
Script complete.

 查看有哪些新增表

SQL> select table_name from user_tables;
TABLE_NAME
--------------------------------------------------------------------------------
TOGG
TOGG_NOKEY
OGG$Q_TAB_ESYDB001
AQ$_OGG$Q_TAB_ESYDB001_S
AQ$_OGG$Q_TAB_ESYDB001_T
AQ$_OGG$Q_TAB_ESYDB001_H
AQ$_OGG$Q_TAB_ESYDB001_L
SYS_IOT_OVER_73824
AQ$_OGG$Q_TAB_ESYDB001_G
AQ$_OGG$Q_TAB_ESYDB001_I
AQ$_OGG$Q_TAB_ESYDB001_C
TABLE_NAME
--------------------------------------------------------------------------------
AQ$_OGG$Q_TAB_ESYDB001_P
SYS_IOT_OVER_73856
AQ$_OGG$Q_TAB_ESYDB001_D
GGS_MARKER
15 rows selected

3.2.2执行@ddl_setup.sql

SQL> @ddl_setup.sql
Oracle GoldenGate DDL Replication setup script
Verifying that current user has privileges to install DDL Replication...
You will be prompted for the name of a schema for the Oracle GoldenGate database objects.
NOTE: For an Oracle 10g source, the system recycle bin must be disabled. For Oracle 11g and later, it can be enabled.
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:ogg_src
Working, please wait ...
Spooling to file ddl_setup_spool.txt
Checking for sessions that are holding locks on Oracle Golden Gate metadata tables ...
Check complete.
Using OGG_SRC as a Oracle GoldenGate schema name.
Working, please wait ...
DDL replication setup script complete, running verification script...
Please enter the name of a schema for the GoldenGate database objects:
Setting schema name to OGG_SRC
CLEAR_TRACE STATUS:
Line/pos                                 Error
---------------------------------------- -----------------------------------------------------------------
No errors                                No errors
CREATE_TRACE STATUS:
Line/pos                                 Error
---------------------------------------- -----------------------------------------------------------------
No errors                                No errors
TRACE_PUT_LINE STATUS:
Line/pos                                 Error
---------------------------------------- -----------------------------------------------------------------
No errors                                No errors
INITIAL_SETUP STATUS:
Line/pos                                 Error
---------------------------------------- -----------------------------------------------------------------
No errors                                No errors
DDLVERSIONSPECIFIC PACKAGE STATUS:
Line/pos                                 Error
---------------------------------------- -----------------------------------------------------------------
No errors                                No errors
DDLREPLICATION PACKAGE STATUS:
Line/pos                                 Error
---------------------------------------- -----------------------------------------------------------------
No errors                                No errors
DDLREPLICATION PACKAGE BODY STATUS:
Line/pos                                 Error
---------------------------------------- -----------------------------------------------------------------
No errors                                No errors
DDL IGNORE TABLE
-----------------------------------
OK
DDL IGNORE LOG TABLE
-----------------------------------
OK
DDLAUX  PACKAGE STATUS:
Line/pos                                 Error
---------------------------------------- -----------------------------------------------------------------
No errors                                No errors
DDLAUX PACKAGE BODY STATUS:
Line/pos                                 Error
---------------------------------------- -----------------------------------------------------------------
No errors                                No errors
SYS.DDLCTXINFO  PACKAGE STATUS:
Line/pos                                 Error
---------------------------------------- -----------------------------------------------------------------
No errors                                No errors
SYS.DDLCTXINFO  PACKAGE BODY STATUS:
Line/pos                                 Error
---------------------------------------- -----------------------------------------------------------------
No errors                                No errors
DDL HISTORY TABLE
-----------------------------------
OK
DDL HISTORY TABLE(1)
-----------------------------------
OK
DDL DUMP TABLES
-----------------------------------
OK
DDL DUMP COLUMNS
-----------------------------------
OK
DDL DUMP LOG GROUPS
-----------------------------------
OK
DDL DUMP PARTITIONS
-----------------------------------
OK
DDL DUMP PRIMARY KEYS
-----------------------------------
OK
DDL SEQUENCE
-----------------------------------
OK
GGS_TEMP_COLS
-----------------------------------
OK
GGS_TEMP_UK
-----------------------------------
OK
DDL TRIGGER CODE STATUS:
Line/pos                                 Error
---------------------------------------- -----------------------------------------------------------------
No errors                                No errors
DDL TRIGGER INSTALL STATUS
-----------------------------------
OK
DDL TRIGGER RUNNING STATUS
------------------------------------------------------------------------------------------------------------------------
ENABLED
STAYMETADATA IN TRIGGER
------------------------------------------------------------------------------------------------------------------------
OFF
DDL TRIGGER SQL TRACING
------------------------------------------------------------------------------------------------------------------------
0
DDL TRIGGER TRACE LEVEL
------------------------------------------------------------------------------------------------------------------------
NONE
LOCATION OF DDL TRACE FILE
------------------------------------------------------------------------------------------------------------------------
/data/u01/app/oracle/product/12.2.0/dbhome_1/rdbms/log/ggs_ddl_trace.log
Analyzing installation status...
VERSION OF DDL REPLICATION
------------------------------------------------------------------------------------------------------------------------
OGGCORE_19.1.0.0.0_PLATFORMS_190524.2201
STATUS OF DDL REPLICATION
------------------------------------------------------------------------------------------------------------------------
SUCCESSFUL installation of DDL Replication software components
Script complete.

 查看有哪些新增表

SQL> select table_name from user_tables;
TABLE_NAME
--------------------------------------------------------------------------------
TOGG
TOGG_NOKEY
OGG$Q_TAB_ESYDB001
AQ$_OGG$Q_TAB_ESYDB001_S
AQ$_OGG$Q_TAB_ESYDB001_T
AQ$_OGG$Q_TAB_ESYDB001_H
AQ$_OGG$Q_TAB_ESYDB001_L
SYS_IOT_OVER_73824
AQ$_OGG$Q_TAB_ESYDB001_G
AQ$_OGG$Q_TAB_ESYDB001_I
AQ$_OGG$Q_TAB_ESYDB001_C
TABLE_NAME
--------------------------------------------------------------------------------
AQ$_OGG$Q_TAB_ESYDB001_P
SYS_IOT_OVER_73856
AQ$_OGG$Q_TAB_ESYDB001_D
GGS_MARKER
GGS_DDL_RULES
GGS_DDL_RULES_LOG
GGS_TEMP_COLS
GGS_TEMP_UK
GGS_STICK
GGS_SETUP
GGS_DDL_HIST_ALT
TABLE_NAME
--------------------------------------------------------------------------------
GGS_DDL_HIST
GGS_DDL_COLUMNS
GGS_DDL_LOG_GROUPS
GGS_DDL_PARTITIONS
GGS_DDL_PRIMARY_KEYS
GGS_DDL_OBJECTS
28 rows selected.


3.2.3 执行@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:ogg_src
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 <loggedUser>
where <loggedUser> is the user assigned to the GoldenGate processes.

查看表数量,SQL> select table_name from user_tables;仍然是28张表,没有变化

3.2.4 执行权限授予,把新角色授予用户:

SQL> GRANT GGS_GGSUSER_ROLE TO ogg_src;
Grant succeeded.

3.2.5 执行@ddl_enable.sql

SQL> @ddl_enable.sql
Trigger altered.


3.2.6 执行@?/rdbms/admin/dbmspool.sql 

SQL> @?/rdbms/admin/dbmspool.sql 
Session altered.
Package created.
Grant succeeded.
Session altered.

3.2.7 执行 @ddl_pin.sql ogg_src

SQL> @ddl_pin.sql ogg_src
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.




3.4 source端修改extract进程的params文件,添加"ddl include all"参数,重启extract进程

GGSCI (ORACLEOGG1) 5> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING                                           
EXTRACT     RUNNING     ESYDB001    00:00:00      00:00:09    
EXTRACT     RUNNING     PSYDB001    00:00:00      00:00:04    

GGSCI (ORACLEOGG1) 4> edit param esydb001
extract esydb001
SETENV(ORACLE_SID="orclogg1")
SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
ddl include all
userid ogg_src,password ogg_src
EXTTRAIL /data/u01/app/oracle/product/ogg_src/dirdat/es
table ogg_src.*;
~

GGSCI (ORACLEOGG1) 6> edit param psydb001
extract psydb001
SETENV(ORACLE_SID="orclogg1")
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
ddl include all
userid ogg_src,password ogg_src
RMTHOST ogg_trg,mgrport 7909
RMTTRAIL /data/u01/app/oracle/product/ogg_trg/dirdat/ps
table ogg_src.*;

#重启进程
GGSCI (ORACLEOGG1) 7> stop psydb001

Sending STOP request to EXTRACT PSYDB001 ...
Request processed.


GGSCI (ORACLEOGG1) 8> stop esydb001

Sending STOP request to EXTRACT ESYDB001 ...
Request processed.


GGSCI (ORACLEOGG1) 9> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING                                           
EXTRACT     STOPPED     ESYDB001    00:00:00      00:00:03    
EXTRACT     STOPPED     PSYDB001    00:00:00      00:00:09    


GGSCI (ORACLEOGG1) 10> start esydb001

Sending START request to MANAGER ...
EXTRACT ESYDB001 starting


GGSCI (ORACLEOGG1) 11> start psydb001

Sending START request to MANAGER ...
EXTRACT PSYDB001 starting


GGSCI (ORACLEOGG1) 12> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING                                           
EXTRACT     RUNNING     ESYDB001    00:00:00      00:00:06    
EXTRACT     RUNNING     PSYDB001    00:00:00      00:00:05

3.5 target端修改extract进程的params文件,添加"ddl include all"和"ddlerror default ignore retryop maxretries 3 retrydelay 5" 参数,重启replicat进程。

GGSCI (ORACLEOGG2) 3> edit param rsydb001
ddl include all
REPLICAT rsydb001
SETENV(ORACLE_SID="orclogg2")
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
ddl include all
ddlerror default ignore retryop maxretries 3 retrydelay 5
USERID ogg_trg,password ogg_trg
DISCARDFILE /data/u01/app/oracle/product/ogg_trg/discrd/reptr.desc,append,megabytes 512
ALLOWNOOPUPDATES
ASSUMETARGETDEFS
MAP OGG_SRC.*,target OGG_TRG.*;

 a. 启动replicat进程,进程无法启动

GGSCI (ORACLEOGG2) 7> start rsydb001
Sending START request to MANAGER ...
REPLICAT RSYDB001 starting
GGSCI (ORACLEOGG2) 8> info all
Program     Status      Group       Lag at Chkpt  Time Since Chkpt
MANAGER     RUNNING                                           
REPLICAT    ABENDED     RSYDB001    00:00:00      00:35:23

b.查看日志:Table OGG_TRG.GGS_SETUP does not exist in target database.

    在源中执行了ddl的sql语句后,源schema产生了一些表,但是目标schema没有表,导致replicat进程无法启动,报错如下:

    2019-06-27T15:35:04.145+0800  ERROR   OGG-00199  Oracle GoldenGate Delivery for Oracle, rsydb001.prm:  Table OGG_TRG.GGS_SETUP does not exist in target database.

解决方法:

c.

    (1)把源中的数据expdp、impdp到目标库才能正常启动目标中的replicat进程

    (2)或在目标库执行@marker_setup.sql、@ddl_setup.sql两条语句才能启动目标库的replicat进程

    当前已经初始化数据,所以在target端执行sql脚本;

    1.@marker_setup.sql——输入ogg_trg

    2.@ddl_setup.sql——输入ogg_trg

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:ogg_trg
Marker setup table script complete, running verification script...
Please enter the name of a schema for the GoldenGate database objects:
Setting schema name to OGG_TRG
MARKER TABLE
-------------------------------
OK
MARKER SEQUENCE
-------------------------------
OK
Script complete.
SQL> select * from ogg_trg.GGS_SETUP;
select * from ogg_trg.GGS_SETUP
                      *
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> @ddl_setup.sql
Oracle GoldenGate DDL Replication setup script
Verifying that current user has privileges to install DDL Replication...
You will be prompted for the name of a schema for the Oracle GoldenGate database objects.
NOTE: For an Oracle 10g source, the system recycle bin must be disabled. For Oracle 11g and later, it can be enabled.
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:ogg_trg

 d.启动replica进程,仍然失败,提示错误:

 2019-06-28T15:42:17.698+0800  WARNING OGG-01004  Oracle GoldenGate Delivery for Oracle, rsydb001.prm:  Aborted grouped transaction on OGG_TRG.GGS_SETUP, Database error 1 (OCI Error ORA-00001: unique constraint (OGG_TRG.GGS_SETUP_UKEY) violated (status = 1), SQL <INSERT INTO "OGG_TRG"."GGS_SETUP" ("PROPERTY","VALUE") VALUES (:a0,:a1)>).

    unique constraint (OGG_TRG.GGS_SETUP_UKEY) violated (status = 1),违反唯一性约束条件,OGG_TRG.GGS_SETUP_UKEY是索引(http://www.juliandyke.com/Research/GoldenGate/GoldenGateDDLReplicationObjects.php)

解决方法:

第一步:分析违反唯一性约束条件,设计的表为GGS_SETUP,对应的索引为GGS_SETUP_UKEY;

第二步:暂时无法找到直接解决方法,只能通过删除此索引解决。

第三步:删除索引方法:drop sequence SEQ_ACM_CLAIM(索引名);因为是强制唯一/主键的索引,所以报错,改为如下方法删除:

解决ora-02429:无法用于删除强制唯一/主键的索引

alter table HMZD(表名) drop constraint PK_HMZD(索引名) , 执行之后解除索引和表的关联,然后再执行删除索引操作,即可成功(我执行时,直接atler table后就自动删除了,不知为何,可能和OGG同步有关?)

四、测试开始

1.source端、target端,当前表t2表结构:

[oracle@ORACLEOGG1 /data/u01/app/oracle/product/ogg_trg]$sqlplus ogg_src/ogg_src 
SQL> desc t2;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                        NOT NULL NUMBER
 NAME                                               VARCHAR2(20)
 
[oracle@ORACLEOGG2 /data/u01/app/oracle/product/ogg_trg]$sqlplus ogg_trg/ogg_trg 
SQL> desc t2;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                        NOT NULL NUMBER
 NAME                                               VARCHAR2(20)

2.增加字段

source端增加字段:
SQL> alter table t2 add location varchar2(200);
Table altered.
查看target端:
[oracle@ORACLEOGG2 ogg_trg]$ sqlplus ogg_trg/ogg_trg

SQL> desc t2;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                        NOT NULL NUMBER
 NAME                                               VARCHAR2(20)
 LOCATION                                           VARCHAR2(200)

3.增加新表:

source端增加新表
SQL>create table t3 as select object_id,object_name from dba_objects;
查看trget端
SQL> select tname from tab where tname='T3';
TNAME
--------------------------------------------------------------------------------
T3
SQL> select count(*) from t3;
  COUNT(*)
----------
     73329

4.查看DDL日志(具体在哪里看,还不确定,复制其他人的语句):

可以看到DDL语句已经执行了,我们看看DDL语句的日志:

SESS 380011-2015-06-10 16:47:19 : DDL : ************************* Start of log for DDL sequence [14], v[ $Id: ddl_setup.sql /st_oggcore_11.2.1/8 2012/04/02 11:11:33 smijatov Exp $ ] trace level [0], owner schema of DDL package [GGUSR], objtype [TABLE] name [HR.T2]
SESS 380011-2015-06-10 16:47:19 : DDLTRACE1 : Before Trigger: point in execution = [1.0], objtype [TABLE] name [HR.T2]
SESS 380011-2015-06-10 16:47:19 : DDL : DDL operation [alter table t2 add location varchar2(200) ], sequence [14], DDL type [ALTER] TABLE, real object type [TABLE], validity [VALID], object ID [76836], object [HR.T2], real object [HR.T2], base object schema [], base object name [], logged as [HR]
SESS 380011-2015-06-10 16:47:19 : DDL : Start SCN found [1107605]
SESS 380011-2015-06-10 16:47:20 : DDL : ------------------------- End of log for DDL sequence [14]
 
SESS 390002-2015-06-10 16:48:14 : DDL : ************************* Start of log for DDL sequence [501], v[ $Id: ddl_setup.sql /st_oggcore_11.2.1/8 2012/04/02 11:11:33 smijatov Exp $ ] trace level [0], owner schema of DDL package [GGUSR], objtype [TABLE] name [HR.T3]
SESS 390002-2015-06-10 16:48:14 : DDLTRACE1 : Before Trigger: point in execution = [1.0], objtype [TABLE] name [HR.T3]
SESS 390002-2015-06-10 16:48:14 : DDL : DDL operation [create table t3 as select object_id,object_name from dba_objects ], sequence [501], DDL type [CREATE] TABLE, real object type [TABLE], validity [], object ID [], object [HR.T3], real object [HR.T3], base object schema [], base object name [], logged as [HR]
SESS 390002-2015-06-10 16:48:14 : DDL : Start SCN found [1107994]

SESS 390002-2015-06-10 16:48:14 : DDL : ------------------------- End of log for DDL sequence [501]

DML+

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2019年7月27日

admin

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2022 拓扑园. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鲁ICP备2021020523号

鲁ICP备2021020523号