oracle 重做日志

原创转载请注明出处

重做日志:记录数据库数据的变化(DDL,DML)

重做日志组:由一个或者多个完全一样的重做日志文件组成,如果一个日志组有多个日志文件,后台进程LGWR会把事务变化写到同一个日志组的多个文件中。

每个数据库最少包括2个日志组,日志组可以循环使用。

重做日志成员:日志组的每个文件都称为日志成员。

工作原理:当用户执行DDL或者DML操作的时候,Oracle进程会把操作记录(重做记录)写到重做日志高速缓冲区中,最后有后台进程LGWR写到重做日志中。

LGWR在以下情况会进行写入操作

提交事务

每隔3秒(默认)

重做日志缓冲区1/3写满

DBWR进程将脏数据写到数据文件之前

增加日志:为了提高安全性和性能数据库管理员应该增加重做日志。

T-SQL:查询

SQL> select
thread#,instance,groups from v$thread;

THREAD#
INSTANCE                                                                                    
GROUPS

----------
--------------------------------------------------------------------------------
----------

1 orcl
                                                                                       
     3

SQL> select * from
v$logfile;

GROUP#
STATUS  TYPE   
MEMBER                             
    IS_

---------- ------- -------
---------------------------------------- ---

3        ONLINE 
/home/oracle_11/app/oradata/orcl/redo03. NO

log

2        ONLINE 
/home/oracle_11/app/oradata/orcl/redo02. NO

log

1        ONLINE 
/home/oracle_11/app/oradata/orcl/redo01. NO

log

1 INVALID ONLINE  /home/oracle_11/app/oradata/orcl/redoC1. NO

log

GROUP#
STATUS  TYPE   
MEMBER                             
    IS_

---------- ------- -------
---------------------------------------- ---

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

GROUP#  SEQUENCE#   MEMBERS STATUS

---------- ----------
---------- ----------------

1       
16              2
INACTIVE

2       
17              1
INACTIVE

3       
18              1
CURRENT

切换日志:alter system switch logfile;

添加日志组:ALTER DATABASE ADD LOGFILE
‘/home/oracle_11/app/oradata/orcl/redo04.log‘

size
20M  --(会自动创建一个日志组)

ALTER DATABASE
ADD LOGFILE group 4 ‘/home/oracle_11/app/oradata/orcl/redo04.log‘ SIZE 20M

添加日志成员:ALTER DATABASE ADD LOGFILE member 
‘/home/oracle_11/app/oradata/orcl/redoB1.log‘ to GROUP 1,
‘/home/oracle_11/app/oradata/orcl/redoB2.log‘ TO GROUP 2;

删除日志组成员: ALTER DATABASE DROP LOGFILE member
‘/home/oracle_11/app/oradata/orcl/redoB2.log‘ --(不能删除当前日志组的成员 不然会出错)

删除日志组:ALTER DATABASE DROP LOGFILE GROUP 2 --(不能删除当前日志组的成员
不然会出错)

移动日志:host cp /home/oracle_11/app/oradata/orcl/redoB1.log
/home/oracle_11/app/oradata/orcl/redoC1.log

ALTER DATABASE RENAME FILE ‘/home/oracle_11/app/oradata/orcl/redoB1.log‘ TO
‘/home/oracle_11/app/oradata/orcl/redoC1.log‘

host rm /home/oracle_11/app/oradata/orcl/redoB1.log;

oracle 重做日志,布布扣,bubuko.com

时间: 2024-10-19 14:35:05

oracle 重做日志的相关文章

Oracle重做日志恢复数据模拟实验

一 系统环境: 1.操作系统:oracle Linux 5.6 2.数据库: Oracle 11g 二 Oracle 重做日志的作用: [模拟介质恢复] 1. 关闭数据库归档模式: [[email protected] ~]$ sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on Mon Feb 6 23:49:30 2017 Copyright (c) 1982, 2009, Oracle. All rights reserved.

Oracle重做日志组状态及切换解析

Oracle重做日志(redo log)是用来记录操作条目,用于数据库数据恢复.为了提高效率,oracle通常建议设置三组redo log. 一.概述 oracle重做日志组通常有四种状态,即unused,inactive,active,current. unused通常指从未被使用的日志组,即新添加的日志组. current状态为LGWR进程正把redo log buffer的日志写进日志组中. active为刚刚完成日志切换后的状态,此时该日志组中提交的事务引起的数据改变还没有完全从DB b

Oracle重做日志管理与深入解析_超越OCP精通Oracle视频课程培训14

oracle视频教程目标 Oracle视频教程,风哥本套oracle教程培训学习oracle数据库Redo log日志文件作用与概念解析,重做日志日常维护与优化优化,Redo Log的增加/删除/镜像,DDL/DML操作与REDO的关系,详解update.truncate.select的redo过程,oracle redo转储日志文件深入分析等日常管理与维护. 适用人群 IT相关从业人员.Oracle数据库技术人员.想加工资的.想升职的都可以. 视频在线学习地址: http://edu.51ct

Oracle重做日志文件

http://blog.csdn.net/leshami/article/details/5749556 一.Oracle中的几类日志文件 Redo log files      -->联机重做日志 Archive log files   -->归档日志 Alert log files     -->告警日志 Trace files         -->跟踪日志 user_dump_dest          -->用户跟踪日志 backupground_dump_dest

[转] 增大oracle重做日志的大小

重做日志(redo log)是由LGWR来进行控制的.Oracle对于DML操作数据的时候,并不会马上去修改数据块,而是产出redo记录,并记录到联机的redo log里,当redo Log用满,或者启动全局checkpoint,也或者alter system switch logfile; 这时都会切换redo log group,(如果redo log状态为current,是当前redo log,如果是inactive就是已经有DBWN写入数据块,Inactive还没有写入)redo log

Oracle重做日志REDO

什么是重做? 重做日志包含所有数据产生的历史改变记录. 重做日志目的是保证数据的安全,如果数据因特殊原因没有写到磁盘上,可以通过重做日志来恢复. 重做日志文件通常用于 恢复(实例恢复和介质恢复) 日志挖掘:可以通过oracle工具分析日志里面的内容 流:通过分析redo,从redo获取实时数据,应用到远程数据库. 数据库产生的每个改动: 写入数据库缓存之前,先写入重做日志--内存 写入数据文件之前先写入日志文件 ----数据文件 内存里操作,重做日志的内存区叫Redo buffer 当提交后,日

ORACLE重做日志小结

1.Redo log特点 重做日志以磁盘I/O为主,将数据库操作记录到日志文件.(磁盘I\O性能有可能成为瓶颈) 每个实例只有一个活动的LGWR(log writer)进程,至少有两个日志组(logfile group),每个日志组至少一个日志文件,同一日志组多个日志文件内容相同,互为镜像. 当一个日志组写满时,LGWR自动切换至下一个日志组,覆盖日志文件内容,继续写入.(频繁的日志切换可能影响性能) 当切换到新的日志组时,如果DBWR(db writer)尚未将所有修改写入数据文件,LGWR将

oracle 重做日志文件无法自动创建保存问题Thread 1 cannot allocate new log, sequence 233678

Mon Nov 26 09:10:16 2018 Thread 1 cannot allocate new log, sequence 233678 Checkpoint not complete Current log# 1 seq# 233677 mem# 0: D:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG Thread 1 advanced to log sequence 233678 (LGWR switch) Current log# 2 s

修改oracle重做日志文件大小

创建3个新的日志组 SQL> ALTER DATABASE ADD LOGFILE GROUP 4 ('/u01/app/oracle/oradata/orcl/redo06.log') SIZE 500M; SQL> ALTER DATABASE ADD LOGFILE GROUP 5 ('/u01/app/oracle/oradata/orcl/redo05.log') SIZE 500M; SQL> ALTER DATABASE ADD LOGFILE GROUP 6 ('/u01