ogg目标端禁用触发器和约束

本文介绍了GoldenGate在数据复制过程中如何使用SUPPRESSTRIGGERS选项来抑制触发器的启动,以及如何利用DEFERREFCONST选项延迟约束检查,确保数据库一致性。

转自:http://www.askmaclean.com/archives/goldengate-parameter-suppresstriggers-deferrefconst.html


SUPPRESSTRIGGERS

Trigger的抑制和Cascading Deletes

在复制的时候,由于应用以及Trigger会出现影响DB的一致性的情况
“SUPPRESSTRIGGERS”选项用于抑制在数据复制时对目标段对象的Trigger启动
DBOPTIONS SUPPRESSTRIGGERS

缺省值为不抑制 (NOSUPPRESSTRIGGERS)
可使用的DB版本
Oracle 10.2.0.5 以上
Oracle 11.2.0.2 以上
Replicat的用户必须有Streams的管理权限
dbms_goldengate_auth.grant_admin_privilege

 

DEFERREFCONST 约束生效的延迟

    • 可以用DEFERREFCONST选项来代替手动设置约束无效
      • Database 9.2.0.7以上
    • 一直到Replicat的事务提交、DEFERREFCONST会延迟完整性约束的确认与生效
    • DBOPTIONS DEFERREFCONST

      不支持的版本则会忽略DEFERREFCONST参数。忽略的话,也不会写GoldenGate的log。


<think>嗯,用户询问的是Oracle GoldenGate源端目标端的正确停止顺序。这是一个很专业的运维问题,需要严谨处理。 用户可能正在执行OGG环境的维护或故障处理,需要确保数据一致性进程安全。这类操作顺序错误可能导致数据丢失或进程异常,所以用户特别谨慎。 参考系统提供的引用内容:引用[2]提到Replicat进程读取trail文件并应用到目标库,说明两端进程有依赖关系;引用[1][4]涉及OGG目录表空间配置,但当前问题更关注进程管理。 根据OGG的工作原理: - 源端Manager管理Extract进程trail文件传输 - 目标端Replicat依赖源端传输的trail文件 因此必须最后停止源端,否则目标端可能因突然中断而报错。 具体步骤上: 1. 目标端先停Replicat:因为它是数据消费端,停止后源端仍可缓存数据 2. 源端再停Extract:确保所有已传输数据被完整记录 3. 最后停Manager进程:这是控制进程 这个顺序符合OGG架构设计,类似"先关水龙头再关总闸"的逻辑。 用户可能还关心: - 如何验证进程是否完全停止(用info all命令) - 异常停止的处理预案(如强制终止方式) - 与数据库启停顺序的配合(建议在DB之前停OGG) 这些在相关问题里都覆盖了,用户可以根据需要选择深入。</think>### Oracle GoldenGate 源端与目标端正确停止顺序 在 Oracle GoldenGate (OGG) 环境中,**必须严格按照顺序停止进程**,以避免数据丢失或进程异常。正确顺序如下: 1. **停止目标端 Replicat 进程** - 登录目标端服务器,进入 OGG 安装目录: ```bash su - oracle cd $OGG_TARGET_HOME ``` - 停止 Replicat 进程: ```bash ./ggsci STOP REPLICAT <进程名> # 例如:STOP REPLICAT RPT01 EXIT ``` *原因*:目标端需先停止数据写入,避免源端持续传输导致事务积压或冲突[^2]。 2. **停止源端 Extract 进程** - 登录源端服务器,进入 OGG 安装目录: ```bash su - oracle cd $OGG_SRC_HOME ``` - 停止 Extract 进程: ```bash ./ggsci STOP EXTRACT <进程名> # 例如:STOP EXTRACT EXT01 EXIT ``` *原因*:确保目标端已停止消费后,再关闭源端的数据抓取[^1]。 3. **停止 Manager 进程(先目标端,后源端)** - **目标端**: ```bash ./ggsci STOP MANAGER EXIT ``` - **源端**: ```bash ./ggsci STOP MANAGER EXIT ``` *原因*:Manager 负责进程监控端口管理,最后停止可避免进程残留[^4]。 --- ### ⚠️ 注意事项 1. **验证进程状态** 每次操作后执行 `INFO ALL` 确认进程状态为 `STOPPED`。 2. **异常处理** 若进程无法正常停止,使用 `KILL` 命令强制终止(需谨慎): ```bash ./ggsci KILL EXTRACT <进程名> KILL REPLICAT <进程名> ``` 3. **与数据库联动** OGG 完全停止后,再关闭数据库(避免未提交事务丢失)[^3]。 --- ### 流程图解停止顺序 ```mermaid graph LR A[停止目标端 Replicat] --> B[停止源端 Extract] B --> C[停止目标端 Manager] C --> D[停止源端 Manager] ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值