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. for in 对象时,属性为非负整数的情况

    在我做一个需求的时候 for in 一个对象,对象的属性都是数字 但是我想给这个对象加一个默认的属性跟值 原对象是{5446:"广州市"}.....类似于下去 然后我想给我页面展示 ...

  2. LeetCode解题报告—— Reverse Nodes in k-Group && Sudoku Solver

    1. Reverse Nodes in k-Group Given a linked list, reverse the nodes of a linked list k at a time and ...

  3. Longest Substring Without Repeating Characters——经典题

    Given a string, find the length of the longest substring without repeating characters. For example, ...

  4. C++ cin.ignore()用法

    cin.ignore(int a,char b); a为一行中最大读取字符长度,b为某一个字符.在缓冲区中寻找b,找到后忽略b以前的所有字符(包括b).如果在a的范围内还没有找到b,则忽略b以前的所有 ...

  5. redis三种连接方式

    安装 tar zxvf redis-2.8.9.tar.gz cd redis-2.8.9 #直接make 编译 make #可使用root用户执行`make install`,将可执行文件拷贝到/u ...

  6. QT库在Windows上的编译

    1.从http://www.qtcentre.org/下载QT源代码,注意是源代码.我下载到的是QT4.5.1版,文件名为qt-win-opensource-src-4.5.1.zip: 2.解压,注 ...

  7. NYOJ 228 士兵杀敌(五)【差分标记裸题】

    题目链接 所有元素初始值为0才能这么做: ①l--r全加1 a[l]++; a[r+1]--; 求一遍前缀和为元素本身. 求两遍前缀和为元素前缀和. #include<cstdio> #i ...

  8. 洛谷——P1529 回家 Bessie Come Home

    P1529 回家 Bessie Come Home 题目描述 现在是晚餐时间,而母牛们在外面分散的牧场中. 农民约翰按响了电铃,所以她们开始向谷仓走去. 你的工作是要指出哪只母牛会最先到达谷仓(在给出 ...

  9. 2017 Hackatari Codeathon B. 2Trees(深搜)(想法)

    B. 2Trees time limit per test 0.75 seconds memory limit per test 256 megabytes input standard input ...

  10. Linux命令之sort

    sort [选项] [文件] 对文本文件的行进行排序.常见的字符排序空字符串<数字<a<A<b<B...<z<Z (1).常用选项 -b,--ignore-l ...