zoukankan      html  css  js  c++  java
  • Oracle在线归档重做日志概念分析

    一、Oracle日志分类

    分三大类: Alert log files--警报日志,Trace files--跟踪日志(用户和进程)和
    redo log 重做日志(记录数据库的更改)。

    本文主要关注Oracle的重做日志。
    重做日志分为在线重做日志和归档重做日志。
    online Redo log files--在线重做日志,又称联机重做日志,指Oracle以SQL脚本的形式实时记录数据库的数据更新,换句话说,实时保存已执行的SQL脚本到在线日志文件中(按特定的格式)。
    Archive Redo log files--归档重做日志,简称归档日志,指当条件满足时,Oracle将在线重做日志以文件形式保存到硬盘(持久化)。

    重做日志的简单原理:在数据更新操作commit前,将更改的SQL脚本写入重做日志。主要用于数据库的增量备份和增量恢复。

    重做日志直接对应于硬盘的重做日志文件(有在线和归档二种),重做日志文件以组(Group)的形式组织,一个重做日志组包含一个或者多个日志文件。


    二、关于在线重做日志(online redo log)

    在线重做日志的原理:

    对于在线重做日志,Oracle 11g默认对于每个数据库实例,建立3个在线日志组,每组一个日志文件,文件名称为REDO01.LOG,REDO02.LOG和REDO03.LOG。(用户可以通过视图操作添加/修改/删除日志组和日志文件来自定义在线重做日志)
    每组内的日志文件的内容完全相同,且保存在不同的位置,用于磁盘日志镜像,以做多次备份提高安全性。默认情况这3组通常只有一组处于活动状态,不断地同步写入已操作的脚本,当日志文件写满时(达到指定的空间配额),如果当前数据库处于归档模式,则将在线日志归档到硬盘,成为归档日志;若当前数据库处于非归档模式,则不进行归档操作,而当前在线日志的内容会被下一次重新写入覆盖而无法保存。因此,通常数据库在运行时,是处于归档模式下的,以保存数据更新的日志。
    当前归档日志组写满后,Oracle会切换到下一日志组,继续写入,就这样循环切换;当处于归档模式下,切换至原已写满的日志组,若该日志组归档完毕则覆盖写入,若没有则只能使用日志缓冲区,等待归档完毕之后才能覆盖写入。当然,处于非归档模式下是直接覆盖写入的。(关于数据库归档模式的设置,我会在另外的博文中讲到)。

    Oracle提供了2个视图用于维护在线重做日志:V$LOG 和 V$LOGFILE,我们可以通过这两个视图查看和修改在线日志。

    关于V$LOG视图的详细属性字段可Oracle 11g的官方文档:http://download.oracle.com/docs/cd/B28359_01/server.111/b28320/dynviews_2029.htm
    关于V$LOGFILE视图的详细属性字段可Oracle 11g的官方文档:
    http://download.oracle.com/docs/cd/B28359_01/server.111/b28320/dynviews_2031.htm

    官方文档还是最给力的呀,不要忽视!!

    通过v$logfile视图查询在线日志文件信息:
    SQL> SELECT * FROM v$logfile ORDER BY group#;

    GROUP# TATUS TYPE MEMBER IS_RECOVERY_DEST_FILE

    1 ONLINE E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG NO
    2 ONLINE E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG NO
    3 ONLINE E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG NO


    通过v$log视图查询在线日志的总体信息:
    SQL> SELECT * FROM v$log;

    GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TIME

    1 1 49 52428800 1 NO CURRENT 1466615 07-1月 -11
    2 1 47 52428800 1 YES INACTIVE 1434125 06-1月 -11
    3 1 48 52428800 1 YES INACTIVE 1460403 07-1月 -11

    当然,还可以通过ALTER DATABASE ADD 、delete等命令增加/修改/删除在线日志或日志组,具体操作可查看http://blog.csdn.net/robinson_0612/archive/2010/07/20/5749556.aspx


    二、关于归档重做日志(Archive redo log)

    其实,所谓的归档,就是指将在线日志进行归档、持久化到成固定的文件到硬盘,便于以后的恢复和查询。
    当然,前提条件是数据库要处于归档模式。

    Oracle 11g 默认是为归档日志设定2个归档位置,这2个归档位置的的归档日志的内容完全一致,但文件名不同。

  • 相关阅读:
    Postman使用教程
    CAD和ArcGIS转换 矢量配准
    SAP CRM Advanced search和Simple search里Max hit表现行为的差异
    SAP CRM Product simple search的启用步骤
    如何快速定位SAP CRM订单应用(Order Application)错误消息抛出的准确位置
    如何动态修改SAP CRM WebClient UI表格栏的宽度
    如何在SAP CRM WebClient UI里创建web service并使用ABAP消费
    如何处理SAP CRM Web Service错误
    如何使用SAP CRM WebClient UI实现一个类似新浪微博的字数统计器
    如何开启SAP CRM基于WORD模板创建附件的功能
  • 原文地址:https://www.cnblogs.com/tracy/p/2192749.html
Copyright © 2011-2022 走看看