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

Oracle (7)Online Redo Log Files

目录

一、Oracle Online Redo Log Files及其相关内容介绍

1、Online Redo Log Files简介

2、Online Redo Log Files特点

3、Online Redo Log Files文件组

4、多路复用文件

5、联机重做日志文件工作方式

6、LGWR什么时候写重做

7、LS和LSN

8、删除Redo文件成员

9、删除重做文件组

10、重新定位和重命名

11、什么是重做线程

12、归档的重做日志文件(安全,正常企业开发需要打开)

二、Online Redo Log Files一些必要的操作

1、Force Log Switches(强制切换日志开关)和CK

2、增加组操作

3、添加Redo文件成员

4、删除Redo文件成员

5、删除日志文件组

6、重新定位和重命名

7、清理Redo Files(慎用)

8、用OMF管理重做文件

9、 Group & Member Informatior(实用)

 三、安全性提示


一、Oracle Online Redo Log Files及其相关内容介绍

1、Online Redo Log Files简介

        Oracle Online Redo Log Files是Oracle数据库中的一种重要的日志文件,用于记录数据库中所有的修改操作。

        在Oracle数据库中,当发生修改操作时,这些操作将首先写入Online Redo Log Files中,然后再写入数据库中的磁盘上。这样可以保证即使发生意外故障,Oracle数据库也能通过Redo Log来恢复数据,保证数据的完整性和一致性。

        Online Redo Log Files通常由多个文件组成,这些文件可以分布在不同的磁盘上,这样可以提高性能和可靠性。同时,Oracle数据库还提供了Archive Log模式,可以在数据库关闭时自动将Online Redo Log Files转储到磁盘上的Archive Log文件中,从而保证数据的可靠性和完整性。

        总的来说,Oracle Online Redo Log Files对于保证Oracle数据库的高可用性、高性能和数据的完整性非常重要,是Oracle数据库架构中的核心组成部分之一。

2、Online Redo Log Files特点

  • 记录对数据所做的所有更改
  • 提供恢复机制
  • 组织成小组
  • 至少需要两组

3、Online Redo Log Files文件组

  • 联机重组日志文件的一组相同的副本称为联机重做日志文件组
  • LGWR后台进程并发地向组内所有联机重做日志文件中写入相同的信息
  • Oracle服务器至少需要两个联机重做日志文件组,以保证数据库的正常运行
  • 组中的每一个联系重做日志文件被称为一个成员
  • 组中每个成员具有相同的日志序列号,并且具有相同的大小
  • LSN(日志序列号)是Oracle服务器每次写日志组时分配的,用来唯一标识每个在线重做日志文件

4、多路复用文件

        为了防止涉及重做日志本身的故障,Oracle数据库允许多路重做日志,这意味着可以在不同的位置自动维护两个或多个相同的重做日志副本。为了获得最大的好处,这些位置应该位于单独的磁盘上。然而,即使重做日志的所有副本都在同一个磁盘上,冗余也可以帮助防止l/O错误、文件损坏等。当重做日志文件多路复用时,LGWR并发地将相同的重做日志信息写入多个相同的重做日志文件,从而消除了重做日志单点故障。

        复用是通过创建多组重做日志文件实现的。一个组由一个重做日志文件和它的多路副本组成。每个相同的副本被称为组的一个成员。每个重做日志组都用一个数字来定义,比如组1、组2,等等。

        注意:Oracle建议您使用多重重做日志文件。如果需要恢复,日志文件数据的丢失可能是灾难性的。请注意,当您复用重做日志时,数据库必须增加它执行的I/0量。根据您的配置,这可能会影响数据库的整体性能。

5、联机重做日志文件工作方式

  • 联机重做日志文件以循环方式使用
  • 当一个联机重做日志文件已满时,LGWR会移动到下一个日志组
    • 称为日志切换
    • 检查点操作也会发生
    • 写入控制文件的信息
  • 从一个日志文件组切换到另一个日志文件组的行文称为日志切换
  • 检查点是将脏的(修改的)快从缓冲区缓存写到磁盘

6、LGWR什么时候写重做

  • 事务提交的时候。
  • 每三秒。
  • 当重做日志缓冲区满三分之一时。
  • 当重做日志缓冲区中有超过1兆字节的更改记录时。
  • 在DBWn将Database Buffer Cache中修改过的块写入数据文件之前。

7、LS和LSN

日志交换机和日志序列号

  •         日志开关是数据库停止写入一个重做日志文件并开始写入另一个日志文件的点。通常,日志切换发生在当前重做日志文件被完全填满,必须继续写入下一个重做日志文件的时候。但是您可以将日志切换配置为定期发生,而不管当前重做日志文件是否被完全填满。你也可以手动强制日志切换。
  •         Oracle数据库在每次日志切换发生并且LGWR开始写入时,为每个重做日志文件分配一个新的日志序列号。当数据库归档重做日志文件时,归档的日志保留其日志序列号。重做日志文件被循环回用时,会被赋予下一个可用的日志序列号。
  •         每个在线或存档的重做日志文件都由其日志序列号唯一标识。在崩溃、实例或介质恢复期间,数据库通过使用必要的归档和重做日志文件的日志序列号,以升序正确地应用重做日志文件

8、删除Redo文件成员

  •         允许删除重做日志文件,使多路重做日志暂时变得不对称。例如,如果你使用双工重做日志文件组,你可以删除一个组中的一个成员,即使所有其他组每个组都有两个成员。但是,您应该立即纠正这种情况,以便所有组至少有两个成员,从而消除重做日志可能出现的单点故障。
  •         一个实例总是需要至少两组有效的重做日志文件,而不管组中成员的数量。(一个组由一个或多个成员组成 ) 如果要删除的成员是组中最后一个有效的成员,则在其他成员生效之前不能删除该成员。要查看重做日志文件状态,请使用VSLOGFILE视图。如果数据库无法访问重做日志文件,则重做日志文件变为INVALID。如果数据库怀疑它不完整或不正确,则变为STALE。当一个陈旧的日志文件的组下一次被设置为活动组时,该日志文件将再次变为有效的。
  •         只有当重做日志成员不属于活动组或当前组时,才能删除重做日志成员。如果你想删除一个活动组的成员,首先强制进行日志切换。
  •         在删除成员之前,请确保重做日志成员所属的组已存档(如果存档已启用)。 要查看是否发生了这种情况,请使用VSLOG视图。
  •         当重做日志成员从数据库中删除时,操作系统文件不会从磁盘中删除。相反,更新关联数据库的控制文件以从数据库结构中删除该成员。在删除重做日志文件后,确保删除成功完成,然后使用适当的操作系统命令删除被删除的重做日志文件。

9、删除重做文件组

  •   一个实例至少需要两组联机重做日志文件
  • 不能删除活动组或当前组
  • 删除联机重做日志文件组时,不会删除操作系统文件

10、重新定位和重命名

  • 您可以使用操作系统命令重新定位重做日志,然后使用ALTER DATABASE语句使数据库知道它们的新名称(位置)。这个过程是必要的,例如,如果当前用于某些重做日志文件的磁盘将被删除,或者数据文件和多个重做日志文件存储在同一个磁盘上,并且应该分开以减少争用。
  • 要重命名重做日志成员,您必须具有ALTERDATABASE系统权限。此外,您可能还需要操作系统权限来将文件复制到所需的位置和特权,以打开和备份数据库。
  • 在重新定位重做日志或对数据库进行任何其他结构更改之前,请完全备份数据库,以防在执行操作时遇到问题。作为预防措施,在重命名或重定位一组重做日志文件后,应立即备份数据库控制文件。

11、什么是重做线程

        在多个数据库实例的上下文中,每个数据库实例的重做日志也称为重做线程。在典型的配置中,只有一个数据库实例访问甲骨文数据库,所以只有一个线程。然而,在甲骨文实际应用集群环境中,两个或多个实例并发地访问一个数据库,每个实例都有自己的重做线程。每个实例的单独重做线程避免了对单个重做日志文件集的争用,从而消除了潜在的性能瓶颈。

12、归档的重做日志文件(安全,正常企业开发需要打开)

  • 可以归档已填充的联机重做日志文件。
  • 在ARCHIVELOG模式下运行数据库和存档联机重做日志文件有两个优点
    • 恢复:数据库备份以及联机和归档的重做日志文件可以保证恢复所有提交的事务。
    • 备份:可以在数据库打开时执行此操作
  • 默认情况下,以NOARCHIVELOG模式创建数据库。
  • 由ARCn自动完成
  • 通过SQL语句手动完成
  • 成功归档时:
    • 在控制文件中创建一个条目
    • 记录:归档日志名称、日志序列号和高低系统变更号(SCN)
  • 填充的联机重做日志文件不能重复使用直到:
    • 设立了检查站
    • 文件已由ARCn存档
  • 可以多路复用
  • 由DBA维护

二、Online Redo Log Files一些必要的操作

1、Force Log Switches(强制切换日志开关)和CK

强制切换日志开关(手工切换日志):

ALTER SYSTEM SWITCH LOGFILE;

可以通过以下方式强制检查点:

        设置FAST_START_MTTR_TARGET参数

FAST_START_MTTR_TARGET = 600

        修改系统检查点命令:

ALTER SYSTEM CHECKPOINT;

2、增加组操作

ALTER DATABASE ADD LOGFILE GROUP 3
('$HOME/ORADATA/u01/log3a.rdo',
'$HOME/ORADATA/u01/log3b.rdo')
SIZE 1M;

3、添加Redo文件成员

ALTER DATABASE ADD LOGFILE MEMBER
'$HOME/ORADATA/u04/log1c.rdo' TO GROUP 1,
'$HOME/ORADATA/u04/log2c.rdo' TO GROUP 2,
'$HOME/ORADATA/u04/log3c.rdo' TO GROUP 3;

4、删除Redo文件成员

ALTER DATABASE DROP LOGFILE MEMBER
'$HOME/ORADATA/u04/log3c.rdo';

这里并不是真正意义上的删除文件,只是修改了控制文件中的信息,实际文件还在,需要手动进行删除

5、删除日志文件组

再删除之前需要先执行以下命令查看当前组,然后再删除需要删除的组

select group#,members,archived,status from v$log;
ALTER DATABASE DROP LOGFILE GROUP 3;

 注意:如果你想要删除的组正在工作可以强制切换日志开关

ALTER SYSTEM SWITCH LOGFILE;

然后在查看组的状态,如果还不想就多来几次切换,查看状态,最后删除。

6、重新定位和重命名

通过以下两种方式之一重新定位或重命名联机重做日志文件:

  • 修改数据库重命名文件命令
    • 关闭数据库。
    • 将联机重做日志文件复制到新位置。
    • 将数据库置于MOUNT模式。
    • 执行命令。
    • 打开数据库进行正常操作。
ALTER DATABASE RENAME FILE
'$HOME/ORADATA/u01/log2a.rdo'
TO '$HOME/ORADATA/u-2/log1c.rdo';
  • 添加新成员,删除老成员

7、清理Redo Files(慎用)

ALTER DATABASE CLEAR LOGFILE 命令用于重新初始化联机重做日志文件

ALTER DATABASE CLEAR LOGFILE GROUP 2:

 使用UNARCHIVED 关键字可避免存档损坏的联机重做日志文件

ALTER DATABASE CLEAR UNARCHIVEDLOGFILE GROUP 2;

8、用OMF管理重做文件

定义DB CREATE ONLINE LOG DEST n参数:

DB CREATE ONLINE LOG DEST 1
DB CREATE ONLINE LOG DEST 2

可以在没有文件规范的情况下添加组:

ALTER DATABASE ADD LOGFILE:

删除一个组:

ALTER DATABASE DROP LOGFILE GROUP 3;

9、 Group & Member Informatior(实用)

可以通过查询以下视图来获取有关某个组及其成员的信息

  • V$LOG
  • V$LOGFILE

动态视图:

  • V$LOG        显示控制文件中的重做日志文件信息
  • V$LOGFILE       标识重做日志组和成员以及成员状态
  • V$LOG_HISTORY       包含日志历史信息

 三、安全性提示

温馨提示:在不同的磁盘上

  • 设置多路复用重做日志时,请将组的成员放在不同的物理磁盘上。如果有一个磁盘出现故障,那么只有一个组成员对LGWR不可用,其他成员仍然可以被LGWR访问,因此实例可以继续运行。
  • 如果归档重做日志,请将重做日志成员分散到多个磁盘,以消除LGWR和ARCn后台进程之间的争用。例如,如果有两组多路复用的重做日志成员(双工重做日志),请将每个成员放在不同的磁盘上,并将存档目标设置为第五个磁盘。这样做将避免LGWR(向成员写入) 和ARCn之间的争用(宣读成员)。
  • 数据文件也应该与重做日志文件放在不同的磁盘上,以减少写入数据块和重做记录时的争用。

相关文章:

Oracle (7)Online Redo Log Files

目录 一、Oracle Online Redo Log Files及其相关内容介绍 1、Online Redo Log Files简介 2、Online Redo Log Files特点 3、Online Redo Log Files文件组 4、多路复用文件 5、联机重做日志文件工作方式 6、LGWR什么时候写重做 7、LS和LSN 8、删除Redo文件成员 9、删除…...

物联网AI MicroPython传感器学习 之 PAJ7620手势识别传感器

学物联网,来万物简单IoT物联网!! 一、产品简介 手势识别传感器PAJ7620u2是一款集成3D手势识别和运动跟踪为一体的交互式传感器,传感器可以在有效范围内识别手指的顺时针/逆时针转动方向和手指的运动方向等。它可以识别13种手势&a…...

Affinity Photo 2.2.1 高端专业Mac PS修图软件

Affinity Photo Mac中文版是一款面向专业摄影师和其他视觉艺术家的专业图像处理软件,拥有众多专业高端功能,如Raw处理、PSD导入和导出、16位通道的编辑和ICC色彩管理以及兼容大量图片格式。是现在最快、最顺、最精准的专业修图软件。Affinity Photo Mac是…...

微服务-统一网关Gateway

网关的作用 对用户请求做身份认证、权限校验将用户请求路由到微服务,并实现负载均衡对用户请求做限流 搭建网关服务 创建新module,命名为Gateway,引入依赖(1.SpringCloudGateway依赖;2.Eureka客户端依赖或者nacos的服…...

【音视频|wav】wav音频文件格式详解

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…...

网络工程综合试题(二)

1. SR技术有哪些缺点? SR(Segment Routing)技术是一种新兴的网络编程技术,它具有很多优点,但也存在一些缺点,包括: 部署复杂性:SR技术需要对网络进行改造和升级,包括更新…...

Android JNI/NDK 入门从一到二

1. 前言 最基础的创建JNI接口的操作,可以直接看这篇文章 : 第一个Android JNI工程, 本文会基于掌握创建JNI接口的操作的基础之上,来入门JNI/NDK。 2. 在JNI中打印日志 2.1 添加log模块 记得CMake中有log模块,不然编译不过 ta…...

吃瓜教程3|决策树

ID3算法 假定当前样本集合D中第k类样本所占比例为pk,则样本集合D的信息熵定义为 信息增益 C4.5算法 ID3算法存在一个问题,就是偏向于取值数目较多的属性,因此C4.5算法使用了“增益率”(gain ratio)来选择划分属性 CA…...

springboot动态数据源【非伪数据源】

说明&#xff1a;本文章的数据源不是在配置文件中配置两个或多个数据源&#xff0c;在业务方面对这些数据源来回切换&#xff0c;本文章中的数据源是可以动态添加&#xff0c;修改&#xff0c;切换的&#xff0c;废话不多说。 先看工程图&#xff1a; 1.pom.xml文件 <?x…...

如何改善设备综合效率(OEE)并提高工厂的生产力

在现代制造业中&#xff0c;提高设备综合效率&#xff08;Overall Equipment Efficiency&#xff0c;OEE&#xff09;是企业追求高效生产和优化生产能力的重要目标之一。OEE是一个关键的绩效指标&#xff0c;可以帮助企业评估设备的利用效率、生产效率和质量水平。本文将从三个…...

一文接入Android阿里Sophix热更新

最近公司项目渐趋成熟&#xff0c;已经不需要经常更新版本&#xff0c;并且更新版本对客户的影响特别大&#xff0c;但是日常维护难免需要更新代码&#xff0c;因此热修复的技术&#xff0c;就比较迫切了。 经过一段时间的对比&#xff0c;我们最终决定使用阿里的Sophix方案&am…...

【高阶数据结构】并查集和图

目录 1.数据结构--并查集 2.数据结构--图 1.图的基础概念 2.图的简单实现 2.1.邻接矩阵的图实现 2.2.邻接表的图实现 2.3.图的DFS和BFS 2.4.最小生成树 2.4.1.Kruskal(克鲁斯卡尔算法) 2.4.2.Prim&#xff08;普里姆算法&#xff09; 2.5.最短路径 2.5.1.Dijkstra(…...

Git 提交时提示 GPG 签名错误

本来应该一切都是正常的&#xff0c;但今天提交的时候提示 GPG 签名错误。 错误的信息就是 GPG 签名失败。 gpg: skipped "942395299055675C": No secret key gpg: signing failed: No secret key error: gpg failed to sign the data fatal: failed to write commi…...

vite+vue3实现 tomcat 的本地部署

背景&#xff1a; 很多开发小伙伴在本地开发完前端项目后&#xff0c;碍于服务端环境配置麻烦&#xff0c;想先试试在本地部署&#xff0c;已开发好的前端项目&#xff0c;由于很多文章都是文字性描述&#xff0c;不太直观&#xff0c;为了给大多数新手提供一个教程&#xff0c…...

docker+playwright

windows10 docker playwright 难点在于windows下docker的安装&#xff0c;以及官方hub被墙的困难。 wsl2 wsl2 ubuntu docker git clone https://gitee.com/lineuman/lcs_playwright.git npm install npx playwright test docker端口怎么映射到主机上面&#xff1f; 设置重…...

php框架路由实现

在PHP中也有很多框架&#xff08;如Laravel、CodeIgniter&#xff09;提供了路由功能。下面是一个简单的PHP路由实现原理和示例代码&#xff1a; 路由实现原理&#xff1a; 客户端发起请求&#xff0c;请求的URL会被传递给Web服务器。Web服务器将请求传递给PHP解释器&#xff…...

在CentOS 7中手工打造和运行xml文件配置的Servlet,然后使用curl、浏览器、telnet等三种工具各自测试

下载Openjdk并配置环境变量 https://jdk.java.net/java-se-ri/11-MR2是官网下载Openjdk 11的地方。 sudo wget https://download.java.net/openjdk/jdk11.0.0.1/ri/openjdk-11.0.0.1_linux-x64_bin.tar.gz下载openjdk 11。 sudo mkdir -p /usr/openjdk11创建目录&#xff…...

单例模式.

目录 ♫什么是单例模式 ♫饿汉式单例模式 ♫懒汉式单例模式 ♫单例模式的线程安全问题 ♪原子性 ♪内存可见性与指令重排序 ♫什么是单例模式 单例模式是一种设计模式&#xff0c;通过巧用Java的现有语法&#xff0c;实现一个只能被创建一个实例的类&#xff0c;并提供一个全…...

2023年MathorCup高校数学建模挑战赛大数据挑战赛赛题浅析

比赛时长为期7天的妈杯大数据挑战赛如期开赛&#xff0c;为了帮助大家更好的选题&#xff0c;首先给大家带来赛题浅析&#xff0c;为了方便大家更好的选题。 赛道 A&#xff1a;基于计算机视觉的坑洼道路检测和识别 A题&#xff0c;图像处理类题目。这种题目的难度数模独一档…...

c++小惊喜——stringstream

当需要读取一行字符串时&#xff0c;我们通常会有将这个字符串分开的想法 #include<iostream> #include<sstream> using namespace std;int main() {string str;getline(cin, str);stringstream ssin(str);string s[10];int cnt 0;while (ssin >> s[cnt]) …...

ubuntu 18.04 编译安装flexpart 10.4(2023年) —— 筑梦之路

2023年10月29日 环境说明 操作系统版本&#xff1a;ubuntu 18.04 python版本&#xff1a;3.6.9 gcc版本&#xff1a;7.5.0 编译安装路径&#xff1a;/usr/local cmake: 3.10.2 所需要的源码包我已经打包放到我的资源。 2021年1月份已经写过一篇Ubuntu 编译安装的帖子F…...

深度学习(生成式模型)——DDIM:Denoising Diffusion Implicit Models

文章目录 前言为什么DDPM的反向过程与前向过程步数绑定DDIM如何减少DDPM反向过程步数DDIM的优化目标DDIM的训练与测试 前言 上一篇博文介绍了DDIM的前身DDPM。DDPM的反向过程与前向过程步数一一对应&#xff0c;例如前向过程有1000步&#xff0c;那么反向过程也需要有1000步&a…...

HashMap的遍历方式 -- 好几次差点记不起来总结了一下

public class HashMapDemo {public static void main(String[] args) {// 创建一个HashMap并添加一些键值对Map<String, Integer> hashMap new HashMap<>();hashMap.put("Alice", 25);hashMap.put("Bob", 30);hashMap.put("Charlie"…...

PostgreSQL 两表关联更新sql

PostgreSQL两表关联更新SQL如下&#xff1a; UPDATE user SET username ft.name, age ft.age FROM userinfo WHERE user.id ft.id; user 要更新的表 userinfo数据来源表...

R2R 的一些小tip

批次间控制器(Run-to-run Controller)&#xff0c;以应对高混合生产的挑战。将最优配方参数与各种工业特征相关联的模型是根据历史数据离线训练的。预测的最优配方参数在线用于调整工艺条件。 批次控制(R2R control)是一种先进的工艺控制技术&#xff0c;可在运行(如批次或晶圆…...

UML中类之间的六种主要关系

UML中类之间的六种主要关系: 继承&#xff08;泛化&#xff09;&#xff08;Inheritance、Generalization&#xff09;, 实现&#xff08;Realization&#xff09;&#xff0c;关联&#xff08;Association)&#xff0c;聚合&#xff08;Aggregation&#xff09;&#xff0c;组…...

机器学习-朴素贝叶斯之多项式模型

多项式模型&#xff1a; 记住一定用于离散的对象&#xff0c;不能是连续的 于高斯分布相反&#xff0c;多项式模型主要适用于离散特征的概率计算&#xff0c;切sklearn的多项式模型不接受输入负值 因为多项式不接受负值的输入&#xff0c;所以样本数据的特征为数值型数据&…...

下载的nginx证书转换成tomcat证书格式

1、下载的nginx证书格式 XXX.crt private.key 2、转换成JKS格式证书步骤 #crt格式证书转pem openssl x509 -in xxx.crt -out xxx.pem#先转成p12格式&#xff0c;此时注意&#xff0c;如果有别名&#xff0c;需要设置 openssl pkcs12 -export -in xxx.crt -inkey private.key…...

计算机毕业设计选题推荐-社区志愿者服务微信小程序/安卓APP-项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...

ES6中数值扩展

目录 二进制和八进制表示法 Number.isFinite() Number.isNaN() Number.parseInt()和Number.parseFloat() Number.isInteger() Math.trunc() Math.sign() Math.cbrt()&#xff1a; Math.clz32()&#xff1a; Math.imul()&#xff1a; Math.fround()&#xff1a; ES6中…...