原创转载请注明出处

重做日志:记录数据库数据的变化(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 重做日志的更多相关文章

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

    一 系统环境: 1.操作系统:oracle Linux 5.6 2.数据库: Oracle 11g 二 Oracle 重做日志的作用: [模拟介质恢复] 1. 关闭数据库归档模式: [oracle@t ...

  2. Oracle重做日志文件

    一.联机重做日志的规划管理 1.联机重做日志 记录了数据的所有变化(DML,DDL或管理员对数据所作的结构性更改等) 提供恢复机制(对于意外删除或宕机利用日志文件实现数据恢复) 可以被分组管理  11 ...

  3. oracle重做日志文件硬盘坏掉解决方法

    rman target/ list backup; list backup summary; 删除数据库数据文件夹下的log日志,例如/u01/app/oracle/oradata/ORCL下的所有后 ...

  4. 初识oracle重做日志文件

    转自 http://blog.csdn.net/indexman/article/details/7746948 以下易容翻译自oracle dba官方文档,不足之处还望指出. 管理重做日志文件 学习 ...

  5. Oracle重做日志REDO

    什么是重做? 重做日志包含所有数据产生的历史改变记录. 重做日志目的是保证数据的安全,如果数据因特殊原因没有写到磁盘上,可以通过重做日志来恢复. 重做日志文件通常用于 恢复(实例恢复和介质恢复) 日志 ...

  6. ORACLE重做日志小结

    1.Redo log特点 重做日志以磁盘I/O为主,将数据库操作记录到日志文件.(磁盘I\O性能有可能成为瓶颈) 每个实例只有一个活动的LGWR(log writer)进程,至少有两个日志组(logf ...

  7. Oracle重做日志和日志挖掘

    重做日志-Redo log 首先给出参考资料: 1.Oracle官网-Managing the Redo Log 为什么需要redo log 内存中数据修改后,不必立即更新到磁盘---效率 由日志完成 ...

  8. 修改oracle重做日志文件大小

    创建3个新的日志组 SQL> ALTER DATABASE ADD LOGFILE GROUP 4 ('/u01/app/oracle/oradata/orcl/redo06.log') SIZ ...

  9. ORACLE - 管理重做日志文件

    ORACLE重做日志文件用于在数据库崩溃等情况下用于恢复数据,默认情况下为三个文件redo01.log/redo02.log/redo03.log,文件组循环使用,在录入与更新操作比较多的应用中,日志 ...

随机推荐

  1. JS常用工具类代码

    http://www.cnblogs.com/liszt/archive/2011/08/16/2140007.html js/javascript删除字符串中的html标签 function rem ...

  2. Java钉钉开发_00_资源帖

    1.源码 本系列教程的源码已上传至GitHub:  https://github.com/shirayner/DingTalk_Demo 2.官方 官方源码:https://github.com/op ...

  3. python的random模块及加权随机算法的python实现

    random是用于生成随机数的,我们可以利用它随机生成数字或者选择字符串. random.seed(x)改变随机数生成器的种子seed. 一般不必特别去设定seed,Python会自动选择seed. ...

  4. 【leetcode刷题笔记】Add Two Numbers

    You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...

  5. HDU1257(简单DP)

    最少拦截系统 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  6. 笔者带你剖析轻量级Sharding中间件——Kratos1.x

    之所以编写Kratos其实存在一个小插曲,当笔者满山遍野寻找成熟.稳定.高性能的Sharding中间件时,确实是翻山越岭,只不过始终没有找到一款合适笔者项目场景的中间件产品.依稀记得当年第一款使用的S ...

  7. c++对象导出到lua

    转自:http://www.cnblogs.com/ringofthec/archive/2010/10/26/luabindobj.html 虽然有tolua++, luabind等等, 不过自己手 ...

  8. 第 五 课 golang语言变量

    1 变量三种声明: (第一种的var和类型都是多余: 第二种最简洁,但是第二种只能用在函数中,不能是全局变量的声明)        第一种: var v_name v_type(注意顺序) v_nam ...

  9. 删除 char[10][10] 中的一行

    1. 描述 删除二维字符数组其中一行,并用下一行进行填补 2. 代码 #include <iostream> #include <string.h> using namespa ...

  10. kafka 基础知识梳理(转载)

    一.kafka 简介 kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据.这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因 ...