Oracle设置日志参数-ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

要实现两个数据库之间的实时同步,需要给Oracle设置参数

复制代码
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;  -- 执行了12小时,等待数据库中的其它事务都提交以后才执行完成
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS;

遇到的问题

  在执行第一条命令的时候,等待超过12小时,命令挂起12小时。原因是要等待数据库中的其它事务都提交以后才可以执行这个命令。

解决方案

  1. 等待其它事务全部执行完成

  2. 数据库停机重启,强制关闭所有事务就可以顺利的执行你的命令了。

注意:如果在等待命令的过程中,强行kill掉这个设置参数的命令会如何。下面是参考资料,注意,仅供参考。
当执行ALTER DATABASE ADD SUPPLEMENTAL LOG DATA命令时,如果命令长时间不响应,并且决定中断(kill)这个操作,这可能会有几种不同的结果,取决于命令执行到了哪个阶段以及Oracle数据库的具体处理机制。
是否会引起回滚?

  • 命令特性:ALTER DATABASE ADD SUPPLEMENTAL LOG DATA这类DDL (Data Definition Language) 命令通常不涉及大量数据的修改,而是修改数据库的元数据或配置。因此,从理论上讲,即使这个命令被中断,需要回滚的操作相对较少,不像大规模的数据插入或更新那样涉及大量的数据回滚。
  • Oracle处理机制:Oracle数据库对于DDL操作的处理通常是原子性的,意味着要么完全执行,要么完全不执行。如果你强行中断了这个命令,Oracle会尝试撤销已经部分完成的操作,以保持数据库的一致性和完整性。这种撤销操作通常涉及的是元数据的更改,而不是大量数据的回滚。

潜在影响:

  • 数据库状态:强行中断可能会留下未完成的操作,这可能需要数据库在后续操作中进行清理或恢复,但这种情况对于ALTER DATABASE ADD SUPPLEMENTAL LOG DATA来说影响通常较小。
  • 性能影响:即使有回滚发生,由于这个命令涉及的更改主要是配置性质的,不涉及大量数据的移动,所以对数据库性能的影响应该是有限的。

建议:

  • 监控和分析:如果这个命令长时间不响应,建议先通过Oracle的动态性能视图(如VSESSION或VSQL等)监控命令的执行状态,了解是否真的卡住,还是只是执行较慢。
  • 谨慎操作:在决定kill一个数据库操作之前,最好是谨慎考虑,因为这可能会留下未完成的状态。如果必须这么做,确保你了解可能的后果,并准备好执行必要的后续步骤,比如重新执行命令或检查数据库的一致性。

总的来说,虽然中断ALTER DATABASE ADD SUPPLEMENTAL LOG DATA命令可能不会导致大规模的数据回滚,但任何强制中断操作都应谨慎进行,以避免潜在的问题。在操作前最好咨询Oracle的官方文档或寻求专业的DBA支持。

相关推荐
ClouGence4 天前
Oracle 数据同步为什么会出现数据不一致?长事务是常被忽略的原因
数据库·后端·oracle
ClouGence10 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
曹牧11 天前
Oracle EXPLAIN PLAN
数据库·oracle
贤时间11 天前
codex 助力oracle ebs 开发
数据库·oracle
秉承初心11 天前
PostgreSQL 数据性能瓶颈突破实战
数据库·postgresql·oracle
Curvatureflight11 天前
MySQL 深分页越来越慢?从 LIMIT OFFSET 改成游标分页
数据库·oracle
XZ-07000111 天前
MySQL事务
数据库·mysql·oracle
tiancaijiben11 天前
阿里云函数计算FC如何实现网站的定时任务与自动化
数据库·oracle·dba
xfhuangfu11 天前
Oracle 19c 多租户体系架构介绍
数据库·oracle·架构
杨云龙UP11 天前
Spotlight 接入 Oracle 数据库监控操作指南 2026-06-16
数据库·oracle·性能监控·预警·阈值·spotlight·瓶颈分析