redolog files

来源:互联网 发布:sql数据仓库培训 编辑:程序博客网 时间:2024/06/13 09:44

 一、定义&作用

数据库中一种重要文件之一,它记录对于数据库的任何操作,比如记录DML或者DDL语句对数据库的更改,或者数据库结构的更改信息。当数据被意外的删除或者修改,我们就。以利用重做日志进行恢复,当例程失败或者介质失败时,也可以利用日志文件实现例程恢复或者介质恢复,所以日志文件时数据库中维护数据安全很重要的文件。

还有其他一些日志文件,比如归档日志,警告日志,跟踪日志等,其中跟踪日志分为用户信息跟踪日志和进程日志。

日志文件以组的单位,至少两个组,每组最少一个成员,推荐2个以上,所有组写满切换下一组,推荐切换时间15~20分钟,系统自动切换或者人工切换,人工切换时alter system switch logfile,所有组满了之后需要决定是否归档操作,如果归档,可以另外开启归档模式,否则日志文件将会覆盖掉。

原则:分散放开,日志所在盘IO要足够,IO读写需要快,不推荐raid5---读快写慢

二、查看

SQL> select GROUP#,status,type,member from v$logfile;

    GROUP# STATUS  TYPE    MEMBER
---------- ------- ------- ----------------------------------------
         3         ONLINE  +DATA/vion/onlinelog/group_3.274.8440421
                           61

         3         ONLINE  +FRA/vion/onlinelog/group_3.263.84404216
                           7

         2         ONLINE  +DATA/vion/onlinelog/group_2.273.8440421
                           51

         2         ONLINE  +FRA/vion/onlinelog/group_2.262.84404215
                           9

    GROUP# STATUS  TYPE    MEMBER
---------- ------- ------- ----------------------------------------

         1         ONLINE  +DATA/vion/onlinelog/group_1.272.8440421
                           45

         1         ONLINE  +FRA/vion/onlinelog/group_1.261.84404215
                           1

其中有状态列表示,invalid文件不可访问,stale文件内容不完全,deleted文件不再使用,空白表示文件正在使用中。

SQL> select * from v$log;

   

    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- ---------- --- --------
FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
------------- --------- ------------ ---------
         1          1         31   52428800        512          2 YES INACTIVE
      1270238 27-DEC-14      1287496 27-DEC-14

         2          1         32   52428800        512          2 YES INACTIVE
      1287496 27-DEC-14      1305942 28-DEC-14

         3          1         33   52428800        512          2 NO  CURRENT
      1305942 28-DEC-14   2.8147E+14

状态中,current表示当前联机重做日志组,说明该联机重做日志文件时活动的,inactive表示不可用,没有在一个循环内,有一个切换时候优先切换这类文件,active表示联机重做日志组诗活动的,重启之后需要验证的(删除之后重启库之后会发生不一致),但是并非当前联机重做日志文件组,崩溃恢复需要改状态的日志,可能归档了,或者没有。另外clearing表示正在执行alter database clear logfile命令,清空之后将变成空的日志,之后其状态变为unused,unused表示从未对联机重做日志文件组进行写入。

三、增加减少成员

增加

alter database add logfile [group n]  ('XXX','XXX') size <> [,group n ('xxx')size <>];

alter database add logfile member 'XXX' to group <> [,'XXX' to group <>];

减少

v$log 状态中active和current是不可以删除的

alter database drop logfile member 'XXX','XXX';

alter database drop logfile group <> [group <>];

重命名,跟归档非归档没有关系只跟状态有关系,需要在unused或者inactive状态,active状态,并且数据库在归档模式下(如果是非归档时候需要在mount状态操作没有状态限制)

首先使用copy命令,asm需要用到rman

然后使用alter database rename file 'xxx' to 'xxx';即可

四、日志状态和监视

联系第二部,查看状态是否正确,并且查看文件是否存在,磁盘空间是否够用等。

查看切换时间间隔,如果时间间隔比较短,则需要增加日志文件大小:

SQL> select to_char(first_time,'yyyy-mm-dd hh24:mi:ss') time ,group#  from v$log;

TIME                    GROUP#
------------------- ----------
2014-12-27 16:06:25          1
2014-12-27 20:07:05          2
2014-12-28 00:14:41          3

如果时间频繁,可以删除重建大的文件,

五、问题

1、如果启动之后提示不一致,需要清空alter database clear logfile group <>;需要在inactive

alter database clear unarchived logfile group <>;则可以清除归档后的active日志文件。

2、丢失

如果是一致关闭时候,使用步骤1中的清空指令即可,如果是非一致关闭,

a、归档模式下使用欺骗方法恢复,

recover database using backup controlfile

然后使用alter database open resetlogs;打开数据库

b、隐藏参数

alter system set "_allow_resetlogs_corruption"=true scope=spfile;

然后打开startup mount;alter  database open resetlogs;

alter system reset "_allow_resetlogs_corruption" scope=spfile sid=‘*’;

 

0 0
原创粉丝点击