oracle基本文件之联机重做日志文件

来源:互联网 发布:淘宝刷一单多少钱一个 编辑:程序博客网 时间:2024/06/06 20:39

oracle中日志文件大致分为这么几类:

Redo log files--<联机重做日志  

Archive log files--<归档日志

Alert log files--<告警日志   bdump文件夹下:alert<sid>.ora

Trace files--<跟踪日志    bdump文件夹下

user_dump_dest--<用户跟踪日志  udump文件夹下

backupground_dump_dest--<进程跟踪日志


这里我们主要讲的是Redo log files

一、联机重做日志文件

联机重做日志文件,主要记录所有数据变化(如DML、DDL、DCL或者dba对数据所做的结构性更改等)。

联机重做日志文件一般有多个(至少两个)联机重做日志文件组构成,而一个联机重做日志文件组又由一个或者多个重做日志文件成员构成。同一个日志文件组中所有的成员互成镜像即所有成员内容是相同的,只是为了多了复用而已。

重做日志文件组是轮流切换的,当一个文件组写满了,自动切换到另个文件组,当然也可以手动切换。

查看所有日志文件组状态,可以通过视图v$log:

     其中status#表示文件组状态:current 表示当前正在使用,inactive表示已经写满,然后切换走。当你先添加一个文件组,还会有出现另一种状态:unused。

  其中sequence#表示日志序列号,最小的序列文件组将是下一个切换首选目标。

  日志序列号非常重要,它用以标明这个日志文件组的唯一性,无论这日志归档与否,都具有。在数据库介质恢复时候,oracle通过序列号的依次,可以重做之前所做过的一切操作,已达到恢复数据库的目的。不过,当数据库执行恢复时,使用了resetlogs命令,则日志学历好将重置为1。  


  联机重做日志文件由后台进程LGWR同时将日志内容写入到一个文件组中的所有成员。

LGWR的触发条件:

1)在事务提交的时候(commit)

    2)Redo Log Buffer 写满三分之一

    3)Redo Log Buffer 记录变化大于一兆

4)在DBWn写入数据文件之前


二、联机重做日志文件的操作

1、查看日志状态或者位置

 相关视图:v$log,v$logfile

2、切换日志文件组

alter system switch logfile;   

3、添加日志文件组

alter database add logfile [group n] (‘redo_log_file_path') size file_size;

例:ALTER DATABASE ADD LOGFILE ('d:/logfile/redo 04a.log','e:/logfile/redo04b.log') SIZE 15M;

   注意:由于没有使用GROUP选项,所有oracle系统会自动地在最大的组号上加1来产生新的组号。显示结果如下,创建一组新的日志组,组号是4,有两个成员,成员大小为15M。

4、删除日志文件组

alter database drop logfile group n; --不可删除当前在用的文件组

例:ALTER DATABASE DROP GOUP 4;

5、添加日志成员

alter database ad logfile member 'logfile' to group n;

6、删除日志成员

   alter database [db_name] drop logfile member 'logfile';    --只能删除非活动的重做日志组的成员



原创粉丝点击