OGG DDL 操作详解

2024-02-28 12:32
文章标签 详解 操作 ddl ogg

本文主要是介绍OGG DDL 操作详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


DLL说明

从OGG 12c 开始,提供了2种DDL方式:

(1)trigger-based DDL capture:通过数据库级别的触发器来捕获。

(2)native DDL capture:也叫:triggerless DDLcapture模式,在

Source 端进行logmining。

 

具体的规则如下:

(1)Extract 使用的是integrated 模式,但是数据库是11.2.0.4 之前的,

那么必须使用trigger-based DDL capture。

(2)Extract 使用的是classic capture 模式,不管数据库是什么版本,都 

必须使用trigger-based DDL capture。因为Native DDL capture不

支持classic capture 模式。

(3)Extract是integrated模式,数据库版本大于等于11.2.0.4,那么必须

使用native DDL capture。 这种模式也叫triggerless DDL capture。

 

DLL语句长度限制

OGG使用byte为单位来计算DDL语句的长度,在12c中,最大支持4MB的DDL语句。如果DDL的长度超过4MB,那么Extract会发出警告并且忽略这个DDL操作。


查看异常信息

一般使用VIEW REPORTGROUPNAME


查看Replicat的DDL报告

Replicat 报告包含如下信息:
1Source 端每个DDL 操作的语法和SCN 值。
2DDL 条目的MAPPED, UNMAPPED 等信息。
3)其他记录处理过程的条目。
4)附加的条目,记录操作是成功还是失败。

2013-01-20 15:11:45 GGS INFO 2104 DDL found, operation [drop table myTableTemp ], Source SCN [1186713.0].                

2013-01-20 15:11:45 GGS INFO 2100 DDL is of mapped scope, after mapping new operation [drop table "QATEST2"."MYTABLETEMP" ].                

2013-01-20 15:11:45 GGS INFO 2100 DDL operation included [include objname myTable*], optype [DROP], objtype [TABLE], objname                 

[QATEST2.MYTABLETEMP].                

2013-01-20 15:11:45 GGS INFO 2100 Executing DDL operation.                

2013-01-20 15:11:48 GGS INFO 2105 DDL error ignored for next retry: error code [942], filter [include objname myTableTemp],                 

error text [ORA-00942: table or view does not exist], retry [1].                

2013-01-20 15:11:48 GGS INFO 2100 Executing DDL operation , trying again due to RETRYOP parameter.                

2013-01-20 15:11:51 GGS INFO 2105 DDL error ignored for next retry: error code [942], filter [include objname myTableTemp],                 

error text [ORA-00942: table or view does not exist], retry [2].                

2013-01-20 15:11:51 GGS INFO 2100 Executing DDL operation, trying again due to RETRYOP parameter.                

2013-01-20 15:11:54 GGS INFO 2105 DDL error ignored for next retry: error code [942], filter [include objname myTableTemp],                 

error text [ORA-00942: table or view does not exist], retry [3].                

2013-01-20 15:11:54 GGS INFO 2100 Executing DDL operation, trying again due to RETRYOP parameter.                

2013-01-20 15:11:54 GGS INFO 2105 DDL error ignored: error code [942], filter [include objname myTableTemp], error                 

text [ORA-00942:table or view does not exist].                


查看Extract的DDL报告

Extract report 包含如下信息:
 (1) Capture DDL 操作的条目语法,开始和结束的SCN值, oracle 实例,DDL sequence number(从 

history tableSEQNO 列查询)和 操作的大小(单位byte)。
 (2) 记录应用操作的子条目,如INCLUDE  EXCLUDE filtering
 (3) 其他的条目,记录操作是否写入trail 

2013-01-20 15:11:41 GGS INFO 2100 DDL found, operation [create table myTable                 

(                

myId number (10) not null,                

myNumber number,                

myString varchar2(100),                

myDate date,                

primary key (myId)                

) ], start SCN [1186754], commit SCN [1186772] instance [test11g (1)], DDL seqno [4134].                

2013-01-20 15:11:41 GGS INFO 2100 DDL operation included [INCLUDE OBJNAME myTable*], optype [CREATE], objtype [TABLE], objname                

 [QATEST1.MYTABLE].                

2013-01-20 15:11:41 GGS INFO 2100 DDL operation written to extract trail file.                

2013-01-20 15:11:42 GGS INFO 2100 Successfully added TRAN DATA for table with the key, table [QATEST1.MYTABLE], operation [ALTER TABLE                

 "QATEST1"."MYTABLE" ADD SUPPLEMENTAL LOG GROUP "GGS_MYTABLE_53475" (MYID) ALWAYS /* GOLDENGATE_DDL_REPLICATION */ ].                

2013-01-20 15:11:43 GGS INFO 2100 DDL found, operation [create table myTableTemp (vid varchar2(100),someDate date,primary key (vid)                

) ], start SCN [1186777], commit SCN [1186795] instance [test11g (1)], DDL seqno [4137].                

2013-01- 20 15:11:43 GGS INFO 2100 DDL operation excluded [EXCLUDE OBJNAME myTableTemp OPTYPE CREATE], optype [CREATE], objtype                 

[TABLE],objname [QATEST1.MYTABLETEMP].                


查看处理报告的统计信息

  可以使用如下命令来查看DDL 处理过程的统计信息,该命令可以查看Extract和Replicat的报告:

SEND {EXTRACT | REPLICAT} group REPORT



这篇关于OGG DDL 操作详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/755519

相关文章

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

MyBatis常用XML语法详解

《MyBatis常用XML语法详解》文章介绍了MyBatis常用XML语法,包括结果映射、查询语句、插入语句、更新语句、删除语句、动态SQL标签以及ehcache.xml文件的使用,感兴趣的朋友跟随小... 目录1、定义结果映射2、查询语句3、插入语句4、更新语句5、删除语句6、动态 SQL 标签7、ehc

详解SpringBoot+Ehcache使用示例

《详解SpringBoot+Ehcache使用示例》本文介绍了SpringBoot中配置Ehcache、自定义get/set方式,并实际使用缓存的过程,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录摘要概念内存与磁盘持久化存储:配置灵活性:编码示例引入依赖:配置ehcache.XML文件:配置

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

Redis 基本数据类型和使用详解

《Redis基本数据类型和使用详解》String是Redis最基本的数据类型,一个键对应一个值,它的功能十分强大,可以存储字符串、整数、浮点数等多种数据格式,本文给大家介绍Redis基本数据类型和... 目录一、Redis 入门介绍二、Redis 的五大基本数据类型2.1 String 类型2.2 Hash

Java中的.close()举例详解

《Java中的.close()举例详解》.close()方法只适用于通过window.open()打开的弹出窗口,对于浏览器的主窗口,如果没有得到用户允许是不能关闭的,:本文主要介绍Java中的.... 目录当你遇到以下三种情况时,一定要记得使用 .close():用法作用举例如何判断代码中的 input