转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> ORACLE >> 正文
Oracle笔记         ★★★★

Oracle笔记

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1279 更新时间:2009/4/22 22:08:03

第四章  重做日志

1.基本概念 

1.  重做线程(Redo Thread)

在OPS(Oracle Parallel Server)中,每个实例都有一套自己的重做日志文件。

重做线程与实例是一一对应的。

2.  SCN(System Change Number)

SCN是用于标识数据库变化的惟一标识号,其数值是顺序递增的。

3.  重做入口(Redo Entry)

4.  日志序列号

日志序列号是重做日志的使用标识号。当进行日志切换时,日志序列会自动增一,并将其信息写入控制文件中。

 

当执行了resetlogs操作后,日志序列号自动复位为1;当数据库处于archivelog模式时,系统会将日志序列号作为归档日志名称的一部分;在恢复数据库时,系统正是按日志序列号来引用归档日志和重做日志的。

 

2.归化重做日志

1.  多元化重做日志

多元化重做日志即镜像日志成员,通过把同一个日志组的不同日志成员放到不同磁盘是一个好主意,避免磁盘损坏导致实例终止。

应该将使不同日志组成员个数保持相同。

2.  合理设置重做日志尺寸

必须合理设置重做日志尺寸,避免日志切换频繁增加检查点次数而降低系统性能。(20~30min切换一次为宜,过大的话有可能导致实例恢复时间太长)

同一日志组成员尺寸必须相同。

3.  选择合适的日志组个数

选择不会妨碍LGWR进程工作的最少日志组个数。

当警告文件和LGWR跟踪文件中出现: 

checkpoint not complete或redo log group not archived时应该增加日志组。

 

3.日志切换

   当日志组写满之后Oracle Server会自动进行日志切换;另外也可以通过alter system switch logfile进行强制日志切换

 

4.检查点

   当启动Oracle Server时,后台进程SMON总会检查控制文件、数据文件和重做日志文件的一致性(即三种文件的SCN值是否相同)。

    a.当数据文件、控制文件、重做日志文件的当前SCN值完全一致,系统会直接打开有数据文件和重做日志。

    b.如果控制文件和数据文件的当前SCN值完全一致,并小于重做日志的当前SCN值,此时需要进行实例恢复(例如shutdown abort;突然断电等)

    c.如果控制文件和数据文件的当前SCN值不匹配,则表示数据文件或控制文件存在损坏,此时就需要进行介质恢复,以恢复损坏的物理文件。

  5.增加重做日志

1.  增加日志组

当警告文件出现了checkpoint not complete时,应该增加日志组。增加日志组的目的是为了确保DBWR进程和ARCH进程不会妨碍LGWR进程的工作,进而提高系统性能。

alter database add logfile

(''''E:\oracle\oradata\lgtest\newREDO01.LOG'''', ''''F:\oracle\oradata\lgtest\newREDO01.LOG'''') size 30m;

2.  增加日志成员

增加日志成员即多元化重做日志,避免某个日志组的某个成员损坏后系统不能正常运转。

Alter database add logfile member

‘F:\oracle\oradata\lgtest\newREDO02.LOG''''’ to group 2;

 

6.改变重做日志位置或名称

1.  复制重做日志到目标位置

copy E:\oracle\oradata\lgtest\newREDO01.LOG  f:\ newREDO01.LOG

2.  改变控制文件所记载的重做日志指针

alter database rename file ‘E:\oracle\oradata\lgtest\newREDO01.LOG’

  to ‘f:\ newREDO01.LOG’;

      但是不能改变当前正在使用的日志组成员。

 

 7.删除重做日志

1.  删除日志成员

alter database drop logfile member ''''F:\oracle\oradata\lgtest\newREDO01.LOG''''

不能删除日志组的惟一成员;

当数据库处于archivelog模式下,确保日志成员所在组已经归档;

不能删除当前日志组的日志成员

2.  删除日志组

alter database drop logfile group 3;

3.  清除重做日志

alter database clear unarchived logfile group 2;

 

    8.相关的一些脚本

1.  获取重做线程信息

   select thread#, groups, current_group#, sequence# from v$thread

2.  获取日志组信息或获取日志组的SCN信息

select * from v$log

[1] [2]  下一页


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台