Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2970141
  • 博文数量: 412
  • 博客积分: 3010
  • 博客等级: 中校
  • 技术积分: 7374
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-25 15:15
个人简介

学习是一种信仰。

文章分类

全部博文(412)

文章存档

2014年(108)

2013年(250)

2010年(11)

2009年(43)

我的朋友

分类: Oracle

2013-11-30 19:55:52

第7章  管理重做日志
----重做日志的增(add)删(drop)改(rename)查
日志文件组(redo logfile group),多组的话,循环写;
日志文件成员(redo logfile member),一组至少一个,多个的话互为镜像;
DEMO有两个日志文件组,每个组有一个成员:redo01.log,redo02.log;
SCN(System Change Number):记录数据库变化的唯一标示号,执行事务操作时顺序递增;
日志序列号:日志切换时顺序递增;
实例恢复:当出现断电、硬件故障等时,实例失败退出(相当于shutdown abort),再次启动时,由后台进程SMON执行实例恢复(根据SCN比较控制文件、数据文件、日志文件的不同步,执行redo和undo,使他们达到一致状态);
1、增加日志文件组
SQL> alter database add logfile group 3 'd:\Oracle_Database\DEMO\redo03.log'
  2  size 10M;
数据库已更改。
SQL> col member format a50;
SQL> select group#,member from v$logfile;
    GROUP# MEMBER
---------- --------------------------------------------------
         2 D:\ORACLE_DATABASE\DEMO\REDO02.LOG
         1 D:\ORACLE_DATABASE\DEMO\REDO01.LOG
         3 D:\ORACLE_DATABASE\DEMO\REDO03.LOG
SQL>
2、增加日志文件成员
alter database add logfile member
'd:\Oracle_Database\DEMO\redo01b.log' to group 1,
'd:\Oracle_Database\DEMO\redo02b.log' to group 2,
'd:\Oracle_Database\DEMO\redo03b.log' to group 3;
SQL> select group#,member from v$logfile;
    GROUP# MEMBER
---------- --------------------------------------------
         2 D:\ORACLE_DATABASE\DEMO\REDO02.LOG
         1 D:\ORACLE_DATABASE\DEMO\REDO01.LOG
         3 D:\ORACLE_DATABASE\DEMO\REDO03.LOG
         1 D:\ORACLE_DATABASE\DEMO\REDO01B.LOG
         2 D:\ORACLE_DATABASE\DEMO\REDO02B.LOG
         3 D:\ORACLE_DATABASE\DEMO\REDO03B.LOG
已选择6行。
3、删除日志文件成员
把redo03b.log改名或删除;
SQL> alter database drop logfile member 'd:\Oracle_Database\DE
数据库已更改。
SQL> select group#,member from v$logfile;
    GROUP# MEMBER
---------- --------------------------------------------------
         2 D:\ORACLE_DATABASE\DEMO\REDO02.LOG
         1 D:\ORACLE_DATABASE\DEMO\REDO01.LOG
         3 D:\ORACLE_DATABASE\DEMO\REDO03.LOG
         1 D:\ORACLE_DATABASE\DEMO\REDO01B.LOG
         2 D:\ORACLE_DATABASE\DEMO\REDO02B.LOG
SQL>
4、删除日志文件组
SQL> alter database drop logfile group 3;
数据库已更改。
SQL> select group#,member from v$logfile;


    GROUP# MEMBER
---------- -----------------------------------------
         2 D:\ORACLE_DATABASE\DEMO\REDO02.LOG
         1 D:\ORACLE_DATABASE\DEMO\REDO01.LOG
         1 D:\ORACLE_DATABASE\DEMO\REDO01B.LOG
         2 D:\ORACLE_DATABASE\DEMO\REDO02B.LOG
SQL>
不能删除当前正在使用的日志文件,要删除需先手工进行日志切换:
SQL>alter system switch logfile;
5、清除重做日志
SQL>alter database clear logfile group 2;
6、修改重做日志
(1)确定重做日志状态
select a.group#,a.status from v$log a, v$logfile b
where a.group#=b.group#
and b.member='D:\ORACLE_DATABASE\DEMO\REDO02B.LOG';
SQL> select group#,status from v$log;
    GROUP# STATUS
---------- ----------------
         1 UNUSED
         2 CURRENT
(2)移动位置
SQL>  host copy d:\Oracle_Database\DEMO\REDO02B.LOG e:\Oracle_Database\DEMO\REDO02B.LOG
已复制         1 个文件。
SQL> alter system switch logfile;
系统已更改。
SQL>  host copy d:\Oracle_Database\DEMO\REDO01B.LOG e:\Oracle_Database\DEMO\REDO
01B.LOG
已复制         1 个文件。
SQL> 
(3)改变控制文件中记录的重做日志文件指针
SQL> alter database rename file 'D:\Oracle_Database\DEMO\REDO01B.LOG' to 'E:\Ora
cle_Database\DEMO\REDO01B.LOG';
数据库已更改。
SQL> alter system switch logfile;
系统已更改。
SQL> alter database rename file 'D:\Oracle_Database\DEMO\REDO02B.LOG' to 'E:\Ora
cle_Database\DEMO\REDO02B.LOG';
数据库已更改。
SQL>
7、使用OEM管理重做日志

阅读(731) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~