1、刷新重做日志缓存的时机

a.commit

b.缓存满了

c.checkpoint,checkpoint的触发有两种机制:

定时触发,由log_checkpoint_interval[1]参数决定间隔的时间,单位秒;0表示禁用

定量触发,由log_checkpoint_timeout[2]参数决定,表示故障恢复所需要的时间,单位秒;0表示禁用。

2、切换日志的归档方式

a.archive log list (查看日志的日志的归档方式)

b.startup mount

c.alter database archivelog/noarchivelog

d.shutdown immediate ;顺便进行脱机全备份

e.startup

f.archive log start 启用自动归档(当前有效)

alter system set log_archive_start=true scope=spifle;重启后生效

g.修改log_archive_dest_n,指定归档路径

3、日志切换和检查点

日志切换触发检查点,检查点会做一下操作:更新数据文件头、更新控制文件头、刷新数据缓存、刷新日志缓存。【另外dbwn会定时或定量刷新数据缓存,定量:fast_start_io_target(脏数据块的数量),定时:fast_sart_mttr_target(单位秒),数据库能够在该时间内open】

切换日志的命令:alter system switch logfie;

强制检查点(也会导致日志的切换):alter system checkpoint local;对当前实例

alter system checkpoint global;对全局有效

alter tablespace XXX begin backup;  --对表空间做检查点

alter tablespace XXX offline;

4、日志归档的时机

当启用日志自动归档时,日志切换会自动归档日志。

当没有启用日志自动归档时,日志切换到最后一个日志时,会造成等待,等待手动归档日志。

5、新增、删除日志组和日志成员

增加日志成员:

Alter database add logfile member ‘filename’ to group groupnumber;

增加日志组:

Alter database add logfile group ‘filename’;

删除日志成员:

Alter database drop logfile member ‘filename’;

删除日志组:

Alter database drop logfile group groupnumber;

5、修改归档日志文件目录

Alter  system set log_archive_dest_1=’location=d:/log/’;

Alter  system set log_archive_dest_1=’service=tnsname’;

6、重命名重做日志

Alter database clear logfile group n

Shutdown immediate

Copy 日志文件到另一个目录

Alter database rename file “XXXXXX” to “XXXXXX”

Startup

备份控制文件

一、联机重做日志
 
    1、重做线程
 
    每个数据库实例的联机重做日志组都是一个联机重做的实例线程。
    不管有没有多路复用,一般每个Oracle都只有一个重做线程,当然RAC中每个实例都包含一个重做线程。
 
    2、联机重做日志内容
 
    重做条目记录了可以对数据库重新构造的所有修改数据,包括回滚段。
    重做记录在SGA重做日志缓存区中缓冲,并由LGWR进程写入某个联机重做日志文件。
 
    事务被提交时,必定需要用LGWR将日志全部从SGA缓存中写入联机重做日志文件,然后才被告知提交完成。
    LGWR还会为每个事务分配一个识别重做记录的系统修改号(SCN)。
 
    当重做日志缓存填满时LGWR也会将重做条目写入到重做日志文件,这些是可以回滚的。
 
    3、联机重做日志写入方式
 
    数据库的联机重做日志组务必要有两个或两个以上,这样可以保持其中一个一直用于写入,另一个用于归档。
 
    LGWR采用循环写入的方式,即写满一个换下一个。或归档模式则写满了之后归档,否则则直接覆盖。
 
    4、活动与非活动
 
    当前正在写入的联机重做日志文件成为“当前的”联机重做日志文件。
    实例恢复时所需的联机重做日志文件称为“活动的”联机重做日志文件。
    实例恢复不用的联机重做日志文件称为“非活动的”联机重做日志文件。
 
    已经进行存档的联机重做日志文件不能重新使用或重写,知道ARCn存储了这个文件内容。
 
    5、日志切换 & 日志顺序号
 
    一般默认在一个文件写满时切换到写一个文件,但是也可以规定时间进行切换,这样就不用理会是否写满。
    也可以手动进行强制切换。
 
    每次日志切换都会分配一个新的日志顺序号,归档时也将顺序号进行保存。
    每个联机或存档的重做日志文件都通过它的日志顺序号进行唯一标识。
 
 
二、规划联机重做日志
 
    1、多路复用(Group)
 
    多路复用是避免损坏联机重做日志文件。
    多路复用时LGWR将同一重做日志信息同时写入多个同样的联机重做日志文件。
 
    建议必须要使用多路复用(至少两个组)。
 
   
 
    注:当某个成员不可用,则标记为INVALID,并向LGWR跟踪文件和数据报警文件中写入错误信息。不同问题会不同反映。
      * 一个操作成功一个操作失败时:按正常过程进行,忽略不可用成员
      * 日志切换时需要存档而不能访问下一个组时:暂时中断操作,直到归档完成
      * 介质失败,切换时不能访问下一组:关闭数据库,并返回错误信息
      * LGWR写入时不能访问文件:关闭数据库,并返回错误信息
 
    注:不同的组中不一定需要相同个数的成员。只含有1个组的多路复用是非法的。
 
    2、日志成员存放在不同磁盘
 
    设置多路复用时,将日志组成员放置到不同的磁盘上。这样当某磁盘失败时,可以跳过这个成员继续工作。
 
    另外将成员放置到不同磁盘上可以消除LGWR和ARCn在后台进程对联机重做日志成员的争夺。
 
    注:数据文件和联机重做日志文件也应该放在不同磁盘上,以减少写数据块和写记录之间出现的竞争。
 
    3、联机重做日志成员的大小
 
    规定联机重做日志的大小,以便将填满的组存档到脱机存档介质(磁带或磁盘)的某个单元中。
    例如磁盘上有一个填满的联机重做日志组,且磁盘还有49%的未使用存储空间,此时最好降低联机重做日志文件的大小。
 
    多路复用时,同一个组中的多有成员比用拥有同样的大小!
    不同组的成员大小不同,但是这样没有什么好处,而且会对检验点的设置带来不便。
 
    4、联机重做日志文件的数量
 
    联机日志文件数量的确定最好的方法是测试不同的配置的效果。
    最佳配置:在不妨碍LGWR向重做日志写入信息的前提下,使用尽可能少的组(至少2个组)。
 
    仔细检查LGWR跟踪文件和数据库报警文件的内容,如果消息表明:因为检验点还没有完成或者组还没有存档的缘故,LGWR不得不频繁得等待组,那么就需要添加组来解决问题。
 
    注:MAXLOGFILES-最大组数;MAXLOGMEMBERS-最大成员数;要修改这两个参数需要重建数据库或控制文件,所以创建数据库时要慎重。
 
    5、控制存档延迟
 
    在数据库中使用联机重做日志归档,然后将归档日志放到备用数据库,通过查询日志来进行和数据库中同样的操作。这两个操作之间存在一个时间间隔,就叫做存档延迟。可以通过ARCHIVE_LAG_TARGET初始化参数来严格限定延迟的时间长度。
 
    设置了ARCHIVE_LAG_TARGET之后,Oracle将定期检查实例当前的联机重做日志,在发生一下情况时切换日志:
    * n秒钟前创建了当前日志,并估计当前日志存档时间为m秒,而n+m值超过ARCHIVE_LAG_TARGET的值
    * 当前日志包含重做记录
 
    ARCHIVE_LAG_TARGET = 1800  单位是秒,默认为0,表示禁止该功能
 
    在选择数值时考虑一下因素:
    * 切换日志所消耗的系统开销
    * 作为日志完整条件的结果,通常日志切换发生的频率
    * 备用数据库可以人寿多少重做损失
 
    注:当数据库本身就经常切换时,设置这个值没有什么意义,而且当设置值很低时,对性能会产生负面影响。

acle联机日志文件的维护的更多相关文章

  1. ORACLE联机日志文件丢失或损坏的处理方法(转)

    经验总结: 联机日志分为当前联机日志和非当前联机日志,非当前联机日志的损坏是比较简单的,一般通过clear命令就可以解决问题. 损坏非当前联机日志:1.启动数据库,遇到ORA-00312 or ORA ...

  2. Oracle 联机重做日志文件(ONLINE LOG FILE)

    --========================================= -- Oracle 联机重做日志文件(ONLINE LOG FILE) --================== ...

  3. ORACLE体系结构一 (物理结构)- 数据文件、日志文件、控制文件和参数文件

    一.物理结构Oracle物理结构包含了数据文件.日志文件.控制文件和参数文件 1.数据文件每一个ORACLE数据库有一个或多个物理的数据文件(data file).一个数据库的数据文件包含全部数据库数 ...

  4. 【恢复】Redo日志文件丢失的恢复

    第一章 Redo文件丢失的恢复 1.1  online redolog file 丢失 联机Redo日志是Oracle数据库中比较核心的文件,当Redo日志文件异常之后,数据库就无法正常启动,而且有丢 ...

  5. ORACLE 移动数据文件 控制文件 重做日志文件

    ORACLE数据库有时候需要对存储进行调整,增加分区.IO调优等等,此时需要移动数据文件.重做日志文件.控制文件等等,下文结合例子总结一下这方面的知识点. 进行数据文件.重做日志文件.控制文件的迁移前 ...

  6. Oracle重做日志文件

    一.联机重做日志的规划管理 1.联机重做日志 记录了数据的所有变化(DML,DDL或管理员对数据所作的结构性更改等) 提供恢复机制(对于意外删除或宕机利用日志文件实现数据恢复) 可以被分组管理  11 ...

  7. DBA_Oracle日志文件 - altert / trace /audit / redo / archive log(概念)

    2014-07-26 Created By BaoXinjian

  8. Oracle联机日志损坏解决办法

    关于此问题,在网上找到一篇不错的文章. 大家都清楚,联机日志分为当前联机日志和非当前联机日志. ---------------------------------------------------- ...

  9. java log4j 日志文件

    开发中经常会用到log日志文件,根据业务需要可能不产生很大日志文件给维护和[排错带来了麻烦.所以我们希望能够每天或每个月产生一个日志文件,这样文件不至于过大. 或者根据日志文件大小来判断,超过规定大小 ...

随机推荐

  1. vue css动画

    .toggle-cart-enter-active, .toggle-cart-leave-active { transition: all .3s ease-out; } .toggle-cart- ...

  2. 八:Zookeeper开源客户端Curator的api测试

    curator是Netflix公司开源的一套ZooKeeper客户端,Curator解决了很多ZooKeeper客户端非常底层的细节开发工作.包括连接重连,反复注册Watcher等.实现了Fluent ...

  3. nginx: [emerg] unexpected “}”

    https://blog.csdn.net/gxdvip/article/details/46345129

  4. redis 安装及安装遇到的问题解决

    https://blog.csdn.net/jy0902/article/details/19248299 http://q.fireflyclub.org/?/article/24 https:// ...

  5. 关于rem的一点总结【原创】

    关于rem的一点总结 最近在写一个关于小说阅读的webApp,由于没有借用任何框架,所以很多底层的内容都需要自己去解决,幸好的是这次只是关于移动端的内容,还不至于去向着jquery的方向码代码.言归正 ...

  6. 使用 gulp 构建一个项目

    本章将介绍 gulp-watch-path stream-combiner2 gulp-sourcemaps gulp-autoprefixer 您还可以直接学习以下模块: 安装 Node 和 gul ...

  7. Aras Innovator DB备份与还原

    错误信息 确认到该问题是因为孤立帐号的问题,在解决孤立帐号之前,可以通过语句查看,另外,还原了DB后,系统不会自动创建原来的登陆帐号的,需要手动新增登陆帐号 #查看孤立帐号列表exec sp_chan ...

  8. ZSTU OJ 4272 最佳淘汰算法

    线段树. 处理出每个位置下一个位置是哪里.然后搞个线段树找一下最大值就可以了. #include<map> #include<set> #include<ctime> ...

  9. POJ3666 Making the Grade [DP,离散化]

    题目传送门 Making the Grade Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9090   Accepted: ...

  10. sqlldr load UTF8 error

    The default length semantics for all datafiles (except UFT-16) is byte. So in your case you have a C ...