当前位置: 首页 > ai >正文

Oracle日志系统之附加日志

Oracle日志系统之附加日志

在 Oracle 数据库中,附加日志(Supplemental Log)是一种增强日志记录的机制,用于在数据库的 redo log 中记录更多的变更信息,尤其是在进行数据迁移、复制和同步等任务时,能够确保捕获更多的数据库变更信息。

从生效范围划分,可以分为表级附加日志和库级附加日志,其SQL语句的不同之处在于前者是ALTER TABLE,而后者为ALTER DATABASE

从补充日志的内容上可以分为两大类:最小补充日志和标识键补充日志;标识键补充日志又分为ALL、PK、UNIQUE、FK四个级别。

NONE(默认级别)

NONE是补充日志的默认开启级别,在此级别下,Oracle只会记录对数据的基本DML操作的必要信息,并且不会记录任何额外的细节(如主键或唯一约束的信息)。

  • 适用于普通的数据库操作,不会额外消耗存储空间。
  • 适合对复制或数据库变更同步要求较低的应用场景。

启用SQL如下:

-- 在数据库级别开启最小补充日志
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

ALL(所有列补充日志)

ALL补充日志级别是最全面的设置,它记录了表中所有列的变更信息,无论这些列是否是主键、唯一约束、索引等。这意味着,无论是哪一列发生变更,Oracle 都会将这些变更记录到 redo log 中,提供最详细的日志信息。

  • 适用于严格的数据复制和同步场景,确保捕获每个数据变更的详细信息。
  • 但需注意,ALL补充日志会给存储系统带来较大压力,导致 redo log 的占用空间快速增加。

启动SQL如下:

--在数据库级别开启所有列的补充日志:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;

PRIMARY KEY(主键补充日志)

当启用主键补充日志级别时,Oracle 会记录涉及表主键的 DML 操作的变更信息。这意味着,即使没有显式更新主键列,Oracle 也会在 redo log 中记录主键信息。

  • 适用于需要基于主键进行数据同步主键驱动的复制系统

启动SQL如下:

--在数据库级别开启主键的补充日志:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;

UNIQUE(唯一键补充日志)

当启用唯一键补充日志级别时,Oracle 会记录涉及表唯一键的 DML 操作的变更信息,即只有当唯一索引字段被修改时,才会记录该字段的旧值。使数据库将行的复合唯一键或位图索引的所有列放入重做日志文件中。唯一键可以是由唯一约束或唯一索引引起的。

启动SQL如下:

--在数据库级别开启唯一索引的补充日志:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS;

FOREIGN KEY(外键补充日志)

当启用外键补充日志级别时,Oracle 会记录涉及表外键的 DML 操作的变更信息,即只有当外键被字段被修改时,才会记录该字段的旧值。
启动SQL如下:

--在数据库级别开启外键的补充日志:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS;
http://www.xdnf.cn/news/157.html

相关文章:

  • 学习海康VisionMaster之中线查找
  • 新手蓝桥杯冲击国一练习题单(四)
  • C++ 二叉搜索树
  • LINUX418 加载YUM源 wireshark ping程序 解析
  • 亚远景-ASPICE评估标准与车企供应商准入要求的关联性
  • 串口通信实战:从寄存器操作到数据处理的完全指南
  • 人像面部关键点检测
  • 力扣刷题Day 20:柱状图中最大的矩形(84)
  • FPGA HR Bank如何支持ODELAY问题分析
  • Yocto项目实战教程 · 第4章:4.3小节-层
  • 七、LangChain Tool类参数对接机制解析:基于Pydantic的类型安全与流程实现
  • JavaScript 核心特性完全指南
  • Python如何助力区块链网络安全?从攻击防范到智能合约审计
  • Jenkins 多分支管道
  • uniapp打包报错,
  • LeetCode -- Flora -- edit 2025-04-17
  • 间接飞行时间 (iToF) 原理介绍
  • 守护进程编程
  • idea 许可证过期
  • docker中freshrss不自动更新问题解决方案
  • 【ROS】TEB 规划器
  • Vue3 + TypeScript中provide和inject的用法示例
  • 【映客直播-注册/登录安全分析报告】
  • Kafka系列之:计算kafka集群topic占的存储大小
  • FairMOT与MCFairMOT算法对比
  • 智能翻译播放器,让无字幕视频不再难懂
  • 基于CNN卷积神经网络和GEI步态能量提取的视频人物步态识别算法matlab仿真
  • 基于WOA鲸鱼优化的NARMAX模型参数辨识算法MATLAB仿真,对比PSO优化算法
  • 系统架构师2025年论文写作技巧
  • 使用Pydantic优雅处理几何数据结构 - 前端输入验证实践