重做日志文件

2024-05-03 12:18
文章标签 日志 重做

本文主要是介绍重做日志文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文地址:点击打开链接

概述

特征:

记录对数据所做的所有改变

至少需要两个组(重做日志文件是以循环方式写入的)

重做日志文件是以循环的方式使用

作用:发生介质故障,重做日志文件提供恢复机制;重做日志文件用来在例程失败等情况下恢复尚未写入数据文件的提交数据,重做日志文件只用于恢复

日志的切换:一旦当前联机重做日志文件组被写满,LGWR就开始写入下一个组,这成为日志的切换

强制切换,使用语句:alter system switch logfile

切换到哪个日志哪个日志就处于current状态,使用select group#status from v$log查看;

强制执行检查点,使用语句alter system checkpoint;

打开一个监控日志tail –f $ORACLE_HOME/admin/bdump/alert_

 

重做日志文件的管理

1.添加重做日志文件组

数据库创建后,可以使用如下添加一个日志文件组

SQL> alter database add logfile group 
  2  ('/opt/oracle/oradata/ORCL/onlinelog/log01.log',
  3  '/opt/oracle/oradata/ORCL/onlinelog/log02.log') size 10M;

Database altered

分配给每个重做日志文件的初始空间至少为4M

 

2.添加日志文件组成员

SQL> alter database add logfile member '/opt/oracle/oradata/ORCL/onlinelog/log03.log' to group 1;

Database altered.

不需要分配大小,新成员的大小由组中已有成员大小决定

3.改变重做日志文件组成员文件的名称或位置

注意:只能修改处于inactive或者unused状态的重做日志文件组的成员的名称或位置,数据库要启动在mount状态下

(1)检查要修改的日志文件所在的日志文件组的状态

SQL> select group#,status from v$log;

    GROUP# STATUS
---------- ----------------
         1 CURRENT
         2 INACTIVE
         3 INACTIVE
         4 UNUSED

如果不是处于inactive或者unused状态则需要进行手动切换

SQL> alter system switch logfile;

System altered.

(2)操作系统上重命名日志文件或改变位置

[oracle@localhost onlinelog]$ mv log01.log log001.log

(3)执行下面语句(数据库不能处于open状态

SQL> alter database rename file '/opt/oracle/oradata/ORCL/onlinelog/log01.log' to '/opt/oracle/oradata/ORCL/onlinelog/log001.log';

Database altered.

4.删除重做日志文件组成员

限制:

组中的最后一个成员不能删除;

所在组处于current不能删除;

SQL> alter database drop logfile member '/opt/oracle/oradata/ORCL/onlinelog/log002.log';

这样删除并没有删除操作系统上的日子文件,只是更新了控制文件

5.删除重做日志文件组

SQL> select group#,status from v$log;

    GROUP# STATUS
---------- ----------------
         1 INACTIVE
         2 ACTIVE
         3 CURRENT
         4 ACTIVE

 

SQL> alter database drop logfile group 1;

Database altered.

删除重做日志文件组的限制:

一个数据库至少需要两个重做日志文件

正在处于归档模式下的不能删除,即处于active状态的

只能删除处于inactive或者unused状态的日志文件组

也是更新控制文件了,并没有真正的从操作系统上删除

6.重做日志文件切换

当LGWR进程结束对当前重做日志文件组的使用,开始写入下一个重做日子文件组的时候,称为发生了一次“日志切换”

通常,只有当前的重做日志文件写满后才发生日志的切换

参数archive_lag_target 控制日志切换的时间间隔

手动切换使用下面的语句

SQL> alter system switch logfile;

System altered.

7.清除重做日志文件组

SQL> select group#,status from v$log;

    GROUP# STATUS
---------- ----------------
         2 INACTIVE
         3 INACTIVE
         4 CURRENT

SQL> alter database clear logfile group 2
  2  ;

Database altered.

SQL> select group#,status from v$log;

    GROUP# STATUS
---------- ----------------
         2 UNUSED
         3 INACTIVE
         4 CURRENT

清除重做日志文件就是将重做日志文件中的内容全部清除,并不删除这个文件,还可以使用!相当于删除这个日志文件组,然后进行了一次重建。

SQL> select group#,status from v$log;

    GROUP# STATUS
---------- ----------------
         2 CURRENT
         3 INACTIVE
         4 ACTIVE

SQL> alter database clear logfile group 4;
alter database clear logfile group 4
*
ERROR at line 1:
ORA-01624: log 4 needed for crash recovery of instance orcl (thread 1)
ORA-00312: online log 4 thread 1: '/opt/oracle/oradata/ORCL/onlinelog/log001.log'
ORA-00312: online log 4 thread 1: '/opt/oracle/oradata/ORCL/onlinelog/log02.log'
ORA-00312: online log 4 thread 1: '/opt/oracle/oradata/ORCL/onlinelog/log002.log'


SQL> alter database clear unarchived logfile group 4;

Database altered.

上述说明,如果清空的日志文件组还没有归档,即处于active状态的日志组;则必须使用unarchived子句,以避免这个日志文件组进行归档!

8.查看重做日志文件信息

v$log:查询重做日志文件组的信息

v$logfile:查询日志文件的信息

v$og_history

 

重做日志文件的4种状态:

·           inactive:表示实例恢复已不再需要这组联机重做日志组了。

·            active:表示该组是活动的但不是当前组,实例恢复时需要这组日志。如正在归档

·            current:表示该组日志是当前组,该联机重做日志组是活动的。当前正在被LGWR写入。

·           unused:表示该日志组从未写过,是重做日志刚刚添加到状态。

 

重做日志文件的状态有3种:

valid:当期可用的重做日志文件

invalid:当前不可用的重做日志文件

stale:产生错误的重做日志文件


这篇关于重做日志文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/956728

相关文章

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

C++ Log4cpp跨平台日志库的使用小结

《C++Log4cpp跨平台日志库的使用小结》Log4cpp是c++类库,本文详细介绍了C++日志库log4cpp的使用方法,及设置日志输出格式和优先级,具有一定的参考价值,感兴趣的可以了解一下... 目录一、介绍1. log4cpp的日志方式2.设置日志输出的格式3. 设置日志的输出优先级二、Window

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

解读GC日志中的各项指标用法

《解读GC日志中的各项指标用法》:本文主要介绍GC日志中的各项指标用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基础 GC 日志格式(以 G1 为例)1. Minor GC 日志2. Full GC 日志二、关键指标解析1. GC 类型与触发原因2. 堆

MySQL 打开binlog日志的方法及注意事项

《MySQL打开binlog日志的方法及注意事项》本文给大家介绍MySQL打开binlog日志的方法及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、默认状态二、如何检查 binlog 状态三、如何开启 binlog3.1 临时开启(重启后失效)

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Golang 日志处理和正则处理的操作方法

《Golang日志处理和正则处理的操作方法》:本文主要介绍Golang日志处理和正则处理的操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录1、logx日志处理1.1、logx简介1.2、日志初始化与配置1.3、常用方法1.4、配合defer

Apache 高级配置实战之从连接保持到日志分析的完整指南

《Apache高级配置实战之从连接保持到日志分析的完整指南》本文带你从连接保持优化开始,一路走到访问控制和日志管理,最后用AWStats来分析网站数据,对Apache配置日志分析相关知识感兴趣的朋友... 目录Apache 高级配置实战:从连接保持到日志分析的完整指南前言 一、Apache 连接保持 - 性