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. 数据库停机重启,强制关闭所有事务就可以顺利的执行你的命令了。 3. 立马杀掉这个进程,然后再执行的话就会很快执行完成。
注意:如果在等待命令的过程中,强行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支持。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [翻译] 为什么 Tracebit 用 C# 开发
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· 刚刚!百度搜索“换脑”引爆AI圈,正式接入DeepSeek R1满血版
2021-02-27 ASP.NET Core 微信支付(二)【 发布到服务器上签名加密时报错:系统找不到指定的文件 APIV3】
2021-02-27 ASP.NET Core 微信支付(一)【统一下单 APIV3】