原创转载请注明出处

重做日志:记录数据库数据的变化(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. 解决Eclipse和myeclipse在进行 html,jsp等 页面编辑时,自动格式化变丑的问题

    在eclipse和myelipse写JAVA代码时中使用ctrl+shift+f 快捷键自动排版省时又省力,排版后的代码规范美观又层次性,但在我们写jsp或html代码时,使用这个快捷键排版简直奇丑无 ...

  2. Java_异常_02_java.lang.NoClassDefFoundError: org/apache/log4j/Level

    总结:解析Json时,除了要导入json-lib-2.2-jdk15.jar外,还要导入: commons-beanutils.jar, commons-httpclient.jar, commons ...

  3. myeclipes如何调试web项目

    你可以右击项目,然后选中那个debug as,然后选择open debug dialog,在project中选择要运行的项目,sever中选择服务器,然后单击debug就ok了,,

  4. 【前端】【javascript】es6中的遍历器接口Iterator

    好久没发文章啦-.-为了证明我还活着,我决定从笔记里面抓一篇还算不乱比较像文章的发出来... 这些笔记是我在学es6的时候断断续续记录的,最近会一份一份整理陆陆续续发出来,顺便也自己再看一遍.我学习e ...

  5. C++中类型转换

    static_cast            静态类型转换. 在编译的时候C++编译器会做类型检查,基本类型能转换,指针类型不进行转换. C语言中隐式类型转换的地方均可以使用static_cast. ...

  6. ACM学习历程—HDU4746 Mophues(莫比乌斯)

    Description As we know, any positive integer C ( C >= 2 ) can be written as the multiply of some ...

  7. 51nod 1149 Pi的递推式 组合数

    题目大意: \(F(x) = 1 (0 \leq x < 4)\) \(F(x) = F(x-1) + F(x-\pi) (4 \leq x)\) 给定\(n\),求\(F(n)\) 题解: 我 ...

  8. Django来敲门~第一部分【4. 创建第一个模块应用】

    成若缺,其用不弊.大盈若冲,其用不穷.大直若屈.大巧若拙.大辩若讷.静胜躁,寒胜热.清静为天下正 ——老子<道德经> 本章内容 创建应用(app) 开发第一个视图(View) URL访问配 ...

  9. JS通过经纬度计算两个地方的距离

    1 主要原理: Lat1 Lung1 表示A点纬度和经度,Lat2 Lung2 表示B点纬度和经度: a=Lat1 – Lat2 为两点纬度之差  b=Lung1 -Lung2 为两点经度之差: 63 ...

  10. 浅谈Huffman树

    所谓Huffman树,就是叶子结点带权的\(K\)叉树,假设每个叶子的权值为\(v\),到根的距离为\(dep\),那么最小化\(\sum v_i*dep_i\)就是\(Huffman\)树的拿手好戏 ...