要实现两个数据库之间的实时同步,需要给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的动态性能视图(如V$SESSION或V$SQL等)监控命令的执行状态,了解是否真的卡住,还是只是执行较慢。
  • 谨慎操作:在决定kill一个数据库操作之前,最好是谨慎考虑,因为这可能会留下未完成的状态。如果必须这么做,确保你了解可能的后果,并准备好执行必要的后续步骤,比如重新执行命令或检查数据库的一致性。
总的来说,虽然中断ALTER DATABASE ADD SUPPLEMENTAL LOG DATA命令可能不会导致大规模的数据回滚,但任何强制中断操作都应谨慎进行,以避免潜在的问题。在操作前最好咨询Oracle的官方文档或寻求专业的DBA支持。

Oracle设置日志参数-ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;的更多相关文章

  1. Linux/Unix shell 监控Oracle告警日志(monitor alter log file)

    使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,AWR report的自动邮件等.本文给出Linu ...

  2. backup, file manipulation operations (such as ALTER DATABASE ADD FILE) and encryption changes on a database must be serialized.

    昨天在检查YourSQLDba备份时,发现有台数据库做备份时出现了下面错误信息,如下所示: <Exec>   <ctx>yMaint.ShrinkLog</ctx> ...

  3. Oracle 设置日志模式

    在NOARCHIVELOG模式下启动和运行一个数据库. 确定闪回恢复区的位置和归档日志目标目录的位置. 步骤一 为归档的重做日志配置FRA和单独的归档日志目标. 首先,设置FRA参数DB_RECOVE ...

  4. Oracle设置内存参数后,启动数据库报ORA-00843 ORA-00849解决办法

    Oracle安装完成后,调优内存参数(MEMORY_TARGET和MEMORY_MAX_TARGET设置为0),重启数据库,报ORA-00843 ORA-00849错误. 根据提示,不应将MEMORY ...

  5. WARNING OGG-00706 Failed to add supplemental log group on table

    在配置OGG时,需要给同步的表添加补充日志,在ggsci命令行执行 add trandata user.table   SQL> desc jack.t1 Name Null? Type --- ...

  6. 通过Oracle补充日志,找到锁阻塞源头的SQL

    问题背景: 有时会考虑一件事情,如果在Oracle环境下出现了锁阻塞的情况,如何定位到SQL源头(通过session.lock.transaction等视图仅能定位到会话)?或许有人会想有没有可能通过 ...

  7. Oracle重做日志文件

    一.联机重做日志的规划管理 1.联机重做日志 记录了数据的所有变化(DML,DDL或管理员对数据所作的结构性更改等) 提供恢复机制(对于意外删除或宕机利用日志文件实现数据恢复) 可以被分组管理  11 ...

  8. 初识oracle重做日志文件

    转自 http://blog.csdn.net/indexman/article/details/7746948 以下易容翻译自oracle dba官方文档,不足之处还望指出. 管理重做日志文件 学习 ...

  9. ORACLE 修改日志大小及增加日志成员

    日志文件能不能resize,直接扩大日志文件的大小?10g是不能的. 网上的一般方法就是新建两个临时日志组(oracle至少要求两个日志组),切换到这两个临时日志组后,删掉重建扩大或缩小,再添加日志组 ...

  10. oracle redo日志维护

    环境 OS:Red Hat Linux As 5 DB:10.2.0.1 1.添加日志组 alter database add logfile group 4 ('/u01/app/oracle/or ...

随机推荐

  1. [转帖]Linux系统下cpio命令详解

    简介 cpio主要是解压或者将文件压缩到指定文件中即copy-in和copy-out模式. 参数说明 参数 参数说明 -i copy-in模式,解压文件 -o copy-out模式,即压缩文件 -d ...

  2. Redis-dump Docker搭建的快速指南

    背景 最近学习redis想能够将dump文件进行导入处理. 看到比较好的办法都是使用ruby ,但是公司的网络太感人了. 想着比较简单的办法是通过docker方式来搭建. 这里简单记录一下搭建过程. ...

  3. 【DS】P9062 [Ynoi2002] Adaptive Hsearch&Lsearch(区间最近点对)

    Problem Link 给定平面上 \(n\) 个点,\(Q\) 次询问编号在 \([l,r]\) 内的点的最近点对.\(n,Q\le 2.5\times 10^5\). 技巧:平面网格化 乱搞都是 ...

  4. vue新一轮的面试题

    参考的连接: https://juejin.cn/post/6844903876231954446 1. 在vue中watch和created哪个先执行?为什么? 在wacth监控数据时,设置imme ...

  5. 【K哥爬虫普法】淘宝一亿快递信息泄漏,有人正在盯着你的网购!

    我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K 哥特设了"K哥爬虫普法"专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识, ...

  6. 基于.Net Core3.1 MVC + EF Core的项目(一)框架的初步搭建

    项目暂时分为六大块,结构如图所示 代码地址是  https://github.com/hudean/VacantCloud-   里面有许多没有完成,不过一些大致的内容都写的差不多了,权限认证依赖注入 ...

  7. GaussDB(for MySQL)剪枝功能,让查询性能提升70倍!

    作者,祝青平,华为云数据库内核高级工程师.擅长数据库优化器内核研发,9年数据库内核研发经验,参与多个TP以及AP数据库的研发工作. 近日,华为云数据库社区下面有这样一条用户提问留言:请问,如何通过My ...

  8. 【Java】引用传递?值传递?

    引用传递和值传递,从上学那会儿就开始强调的概念,不管你是计算机相关专业还是自学Java,一定听过这么一句话: 方法调用参数如果是对象,那就是引用传递,如果是基本数据类型,就是值传递. 比如:funct ...

  9. 3.1 Windows驱动开发:内核远程堆分配与销毁

    在开始学习内核内存读写篇之前,我们先来实现一个简单的内存分配销毁堆的功能,在内核空间内用户依然可以动态的申请与销毁一段可控的堆空间,一般而言内核中提供了ZwAllocateVirtualMemory这 ...

  10. C/C++ 提权与强制卸载DLL

    权限提升 #include <Windows.h> #include <stdio.h> BOOL SetPrivilege(LPCTSTR lpszPrivilege, BO ...