【翻译自mos文章】Main Note - ogg的 Supplemental Logging and TRANDATA

本文介绍Oracle GoldenGate (OGG) 中如何通过addtrandata命令配置补充日志,确保在进行更新操作时主键列也被记录,这对于跨库同步至关重要。


Main Note - ogg的 Supplemental Logging and TRANDATA

参加原文:
Main Note - Supplemental Logging and TRANDATA for OGG (Doc ID 1537838.1)

适用于
Oracle GoldenGate - Version 9.5_EA and later
Information in this document applies to any platform.

目的
从oracle redo log 抽取数据之前,需要从ggsci命令提示符下 先使用 dbloin命令,再使用add trandata命令。
默认情况下,对update操作,oracle 只会记录变化的列。正常情况下,这意味着主键列在update操作时不会被记录。
但是,为了在目的库上应用源端ogg进程传输过来update变化,ogg的replicat 进程需要主键列。
add trandata命令别用来 让oracle 对所有update操作都记录主键列。
为了添加补充日志(supplemental log data),在unix下执行下面的命令。table名可以用*代替。所有被捕捉的表必须被添加补充日志。

$ cd /ggs $ ggsci
GGSCI (unixserver) > DBLOGIN USERID userid  --->额外注意:敲回车后,ggsci会提示你输入密码,只是此处没列出来而已。
GGSCI (unixserver) > ADD TRANDATA schema.<table-name>


细节:--暂时不翻译。
Oracle GoldenGate Best Practices: Instantiation from an Oracle Source Database[Document 1276058.1]
OGG GGSCI Add Trandata Fails with OGG-00706 Failed to Add Supplemental Log Group on Table[Document 1357001.1]
Why is ADD TRANDATA, Supplemental Logging Not OGG replicated  [Document 1444946.1]
OGG Unable To ADD TRANDATA Because Of Insufficient Permission  [Document 969574.1]
Adding Supplemental Logging With No PK And > 33 Columns (Oracle) add trandata[Document 965993.1]
In Bi-Directional Replication, Supplemental logging via DDL Is NOT Replicated To The Target unless[Document 1472420.1]
OGG: How To Log All Columns With Add Schematrandata To Get NOCOMPRESSUPDATES[Document 1413142.1]
It is recommended to perform a del/add trandata cycle on all tables when upgrading[Document 1299567.1]
Why OGG Warns me "No unique key is defined" When There Is A PK For The Table[Document 1345152.1]
Internal Notes:
Why Add Trandata On Tables Without Primary Key, Can Cause SQL Server 2005 Replication Log Reader St[Document 1060875.1](Internal Only)
SQLServer 2005 - Add Trandata Failed With "Unable To Enable Replication"[Document 1063132.1](Internal Only)
Effect Of Key Selection Change In OGG V10, On Upgrade Procedure From Earlier Version.  [Document 1060879.1]  (Internal Only)

<think>好的,我现在需要帮助用户确认Oracle数据库是否启用了补充日志记录(supplemental logging)。首先,我得回忆一下相关的知识,可能涉及到查询数据库的动态性能视图或者数据字典视图。记得在Oracle中,补充日志的信息通常存储在V$DATABASE或者相关的视图中,比如DBA_LOG_GROUPS或者V$DATABASE的SUPPLEMENTAL_LOG_DATA相关字段。 用户的问题是如何检查是否启用了补充日志,所以需要给出具体的SQL查询命令。根据之前的引用内容,补充日志有不同的级别,比如最小、主键、唯一键等,可能需要检查不同级别的状态。例如,SUPPLEMENTAL_LOG_DATA_MIN可能显示是否启用了最小补充日志,而SUPPLEMENTAL_LOG_DATA_PK或SUPPLEMENTAL_LOG_DATA_UI可能指示是否记录主键或唯一键的信息。 我需要确保提供的SQL语句正确,并且能够覆盖用户的需求。可能需要查询V$DATABASE视图的SUPPLEMENTAL_LOG_DATA_MIN字段,看看是否为YES。另外,如果需要更详细的信息,比如特定日志组的情况,可能需要查询DBA_LOG_GROUPS视图,但用户可能只需要确认是否启用,所以先给出基础的检查方法。 还要注意权限问题,执行这些查询可能需要特定的权限,比如SELECT_CATALOG_ROLE或者直接授予对V$DATABASE的访问权限。在回答中应该提醒用户需要DBA权限或者足够的权限来执行这些查询。 此外,用户可能对结果中的各个字段不太熟悉,需要解释每个字段的含义,比如SUPPLEMENTAL_LOG_DATA_MIN表示是否启用了最小补充日志,而其他字段如PK或UI可能表示是否记录了主键或唯一键的信息。 最后,根据引用[1]和引用[2]的内容,补充日志会增加日志量,所以用户可能还需要知道如何关闭不必要的日志,但当前问题只是确认是否启用,所以可能不需要深入讨论关闭的方法,但可以建议用户如果发现启用了不必要的级别,可以调整以优化性能。 总结步骤: 1. 使用SELECT语句查询V$DATABASE视图,检查SUPPLEMENTAL_LOG_DATA_MIN是否为YES,确认是否启用了最小补充日志。 2. 检查其他补充日志相关的字段,如主键、唯一键等,以确定启用的具体级别。 3. 查询DBA_LOG_GROUPS视图,查看已配置的日志组。 4. 提醒用户需要足够的权限,并解释各个字段的含义。</think>要确认Oracle数据库是否启用了补充日志记录(supplemental logging),可通过以下步骤检查: --- ### **方法1:检查数据库级补充日志** 执行以下SQL语句查看数据库级别的补充日志状态: ```sql SELECT SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_PK, SUPPLEMENTAL_LOG_DATA_UI, SUPPLEMENTAL_LOG_DATA_FK, SUPPLEMENTAL_LOG_DATA_ALL FROM V$DATABASE; ``` - **字段说明**: - `SUPPLEMENTAL_LOG_DATA_MIN`:是否启用**最小补充日志**(YES/NO) - `SUPPLEMENTAL_LOG_DATA_PK`:是否为所有主键列记录补充日志(YES/NO) - `SUPPLEMENTAL_LOG_DATA_UI`:是否为所有唯一索引列记录补充日志(YES/NO) - 其他字段对应外键、全字段等补充日志类型[^2] --- ### **方法2:检查表级补充日志组** 若需要查看具体表或列的补充日志配置: ```sql SELECT * FROM DBA_LOG_GROUPS; SELECT * FROM DBA_LOG_GROUP_COLUMNS; ``` - `DBA_LOG_GROUPS`:列出所有已定义的补充日志组 - `DBA_LOG_GROUP_COLUMNS`:显示日志组中包含的具体列[^1] --- ### **关键结果解读** - 如果`SUPPLEMENTAL_LOG_DATA_MIN=YES`,表示数据库已启用最小补充日志(基础要求) - 若其他字段为YES,则表示启用了更高级别的补充日志(如主键、唯一键等) --- ### **注意事项** 1. **权限要求**:执行上述查询需要具有`SELECT_CATALOG_ROLE`或DBA权限 2. **日志影响**:补充日志会增加Redo日志量,需根据实际需求启用必要级别[^1] ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值