Decode360's Blog

业精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

  BlogJava :: 首页 :: 新随笔 :: 联系 ::  :: 管理 ::
  397 随笔 :: 33 文章 :: 29 评论 :: 0 Trackbacks
联机重做日志操作
 
    接着昨天来学习一下关于redo log的操作。这些操作都是日常维护数据库时都需要用到的,所以需要记清楚。
 
一、创建联机重做日志
 
    1、创建联机重做日志组
 
    ALTER DATABASE ADD LOGFILE ('/oracle/dbs/log1c.rdo','/oracle/dbs/log2c.rdo') SIZE 500K;
 
    ALTER DATABASE ADD GROUP 10 ('/oracle/dbs/log1c.rdo','/oracle/dbs/log2c.rdo') SIZE 500K;
 
    注:组号必须在1和MAXLOGFILES之间,且不要跳跃使用,否则会耗费数据库控制文件中的空间。
 
    2、创建联机重做日志成员
 
    ALTER DATABASE ADD LOGFILE MEMBER '/oracle/dbs/log2b.rdo' TO GROUP 2;
 
    ALTER DATABASE ADD LOGFILE MEMBER '/oracle/dbs/log2c.rdo' TO ('/oracle/dbs/log2a.rdo','/oracle/dbs/log2b.rdo');
 
    注:指定组中所有成员也可以表示这个组。新建的日志成员状态为INVALID,首次使用时变成活动状态。
 
 
二、重定位 & 重命名
 
    ① 关闭数据库:SHUTDOWN
 
    ② 在操作系统中移动或重命名联机重做日志文件
 
    ③ 启动并装载数据库:STARTUP MOUNT
 
    ④ 使用RENAME语句
 
    ALTER DATABASE RENAME FILE '/diska/logs/log1a.rdo','/diska/logs/log2a.rdo'
    TO '/diskc/logs/log1c.rdo','/diskc/logs/log2c.rdo'
 
 
三、取消联机重做日志组成员
 
    1、取消日志组
 
    要注意:
    ① 至少需要保留两组联机重做日志文件
    ② 日志组状态为“非活动”时才可以取消,如果是“活动”的,则需要进行强制切换
    ③ 要确保日志组已经存档,可以查看V$LOG视图查看是否存档
 
    ALTER DATABASE DROP LOGFILE GROUP 3;
 
    在执行DROP之后要在操作系统中删除磁盘文件
 
    2、取消联机重做日志成员
 
    要注意:
    ① 可以取消原先对称的组中的成员,使其暂时不对称,但最好立即调整这种状况
    ② 实例需要至少两个有效联机重做日志文件,且不能取消最后一个有效成员,使用V$LOGFILE查看状态
    ③ 和取消组一样,需要成员为非活动状态,否则需要进行一次强制切换
    ④ 确保要取消的成员已经经过存档
 
    ALTER DATABASE DROP LOGFILE MEMBER '/oracle/dbs/log3c.rdo';
 
 
四、强制切换日志
 
    ALTER SYSTEM SWITCH LOGFILE;
 
 
五、校验重做日志文件中的块
 
    设置DB_BLOCK_CHECKSUM初始化参数为TRUE,则对所有写到磁盘上的Oracle数据块进行校验,包括重做数日志块。
    DB_BLOCK_CHECKSUM参数的默认值是FLASE
 
    <具体原理未知>
 
    注:允许校验会对系统产生额外的开销,并且降低数据库性能。需要监视数据库性能以判断校验的代价是否过重。
 
 
六、清除联机重做日志文件
 
    在联机重做日志损坏时,可以使用CLEAR命令来初始化联机重做日志文件
 
    但是要注意以下情况不能使用:
    * 仅有两个日志组
    * 受到损坏的重做日志文件属于当前组
 
    ALTER DATABASE CLEAR LOGFILE GROUP 3;
    ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 3;
 
    注:清除了恢复备份所需的日志文件,则不能再进行恢复,Oracle将在警报文件中写入一条消息来描述不能恢复的备份。
 
    注:若清除的日志可以将脱机表空间变成联机状态,则需要在语句中加上UNRECOVERABLE DATAFILE子句。
        因为清除该日志后再也不能把脱机表空间变成联机状态,所以不得不撤销表空间或执行未完成的恢复过程。
 
 
七、查看联机重做日志信息
 
    V$LOG:显示来自于控制文件的重做日志文件信息
    V$LOGFILE:标识重做日志文件组及其成员的状态
    V$LOG_HISTORY:包含日志历史信息
 
 
posted on 2008-11-26 23:13 decode360 阅读(270) 评论(0)  编辑  收藏 所属分类: 08.DBA

只有注册用户登录后才能发表评论。


网站导航: