oracle 重做日志文件和归档日志解析

合集下载

oracle 归档日志解析

oracle 归档日志解析

oracle 归档日志解析摘要:一、归档日志概述二、归档日志的作用三、归档日志的解析方法四、归档日志解析的应用场景五、总结与建议正文:随着大数据时代的到来,Oracle 数据库归档日志在各行各业中发挥着越来越重要的作用。

本文将对归档日志进行简要概述,分析其作用,介绍解析方法,并讨论应用场景。

最后给出总结与建议。

一、归档日志概述Oracle 归档日志(Archive Log)是一种用于记录数据库事务日志的技术。

它可以将数据库中的更改操作(如插入、更新和删除)记录下来,以便在出现故障时恢复数据。

归档日志采用增量方式记录,即每次更改操作后,日志文件会逐步变大。

二、归档日志的作用1.数据恢复:归档日志可以在数据库发生故障时,用于恢复数据至故障发生前的状态。

2.数据审计:归档日志可以记录所有对数据库的更改操作,方便审计人员追溯和分析数据变更原因。

3.性能优化:通过分析归档日志,可以找出数据库性能瓶颈,为优化数据库性能提供依据。

三、归档日志解析方法1.手工解析:通过编写SQL 语句或使用第三方工具,查询归档日志文件内容,分析日志中的数据。

2.使用Oracle 提供的事件解析工具:如DBMS_LOGSTD.REPORT 等,可以方便地生成归档日志的报表和统计数据。

3.使用第三方归档日志分析工具:如Oracle 的Partner 产品OraInsight 等,可以提供更丰富的归档日志分析功能。

四、归档日志解析的应用场景1.数据库故障排查:通过分析归档日志,可以找出导致数据库故障的原因,快速恢复业务。

2.性能监控与优化:分析归档日志中的SQL 语句执行情况,找出性能瓶颈,优化数据库性能。

3.数据审计与追溯:归档日志可以记录所有数据变更操作,方便审计人员分析和追溯数据变更原因。

4.数据库安全分析:通过分析归档日志,可以监控数据库访问权限和操作,提高数据库安全。

五、总结与建议归档日志在数据库管理中具有重要意义。

对于数据库管理员而言,应充分利用归档日志进行故障排查、性能优化和数据审计等工作。

oracle 重做日志文件

oracle 重做日志文件

重做日志文件重做日志文件记录的两类数据:1.修改前的数据2.修改后的数据当满足一定条件时先将修改操作所产生的重做记录写入重做日志文件中,然后才将内存中的修改结果成批的写入数据文件,最后在提交事务重做日志文件是由重做记录组成的,重做记录是由修改向量组成的。

当用户执行一条update 语句对某一个表中的记录进行修改时,会生成一条记录,这条记录用多个向量记录下了被这条语句修改过的各个db块中的信息。

重做记录采用循环的方式在SGA区的重做日志缓存区中进行缓冲,并且由后台进程LGWR 写入到其中的某个重做日志文件中。

用户无论何时提交事务,LGWR都会将该事务的重做记录从SGA的重做日志缓存区写入到某个重做日志文件中,并且为提交的每个事务分别分配一个识别重做记录的系统修改编号。

只有当与已知事务相关的所有重做记录都安全的写入重做日志文件后,用户进程才被告之已经提交。

LGWR进程在开始写入下一个重做日志文件之前,必须确保这个即将覆盖的重做日志文件已经完成了如下的工作:1.如果数据库处于“非归档日志模式(noarchivelog)”,则该重做日志文件中的所有重做记录所对应的修改结果,必须全部被写入到数据文件中。

2.如果数据库处于“归档日志模式(archivelog)”,则该重做日志文件中的所有重做记录所对应的修改结果,必须全部被写入到数据文件中,并且归档进程ARCH已经将该重做日志文件进行了归档。

活动的,非活动的,当前的联机重做日志文件LGWR当前写入的重做日志文件称为当前的联机重做日志文件,例程恢复时需要的重做日志文件称为活动的重做日志文件,例程恢复时不需要的重做日志文件称为非活动的重做日志文件。

如果已经能够进行归档,oracle就不能重新使用或重写活动的重做日志文件,知道ARCH 存储了这个文件的内容。

如果不能进行归档,当最后一个重做日志文件被填满是时,将通过重写的方法继续使用第一个可用的活动重做日志文件。

日志切换1.当一个重做日志文件被完全填满,必须填写下一个联机重做日志文件2.手动强制执行日志切换强制切换日志,需要有alter system权限,使用alter system switch logfile强制切换日志顺序号没次发生日志切换和LGWR开始进行填写时,oracle都会为每个联机重做日志文件分配一个新的日志序列号重做日志文件的归档归档就是在重做日志文件被覆盖之前,将该重做日志文件通过复制操作系统文件的方式,保存到指定的位置。

关于Oracle归档介绍

关于Oracle归档介绍

数据库归档模式介绍简介:归档日志(Archive Log)是非活动的重做日志备份.通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换时,后台进程ARCH会将重做日志的内容保存到归档日志中,当数据库出现介质失败时,使用数据文件备份,归档日志和重做日志可以完全恢复数据库。

在Oracle10g中,只要启动数据库的归档模式,Oracle就会启用自动归档,从而避免了10g以前由于用户疏忽所带来的一系列问题。

日志操作模式:ARCHIVELOG(归档),NOARCHIVELOG(非归档)启动Oracle10g数据库的归档模式详细步骤对于非归档模式的数据库改为归档模式(主要以Oracle 10g为参考)使用以下步骤:步骤1(查看数据库的归档状态)首先查看数据库现有模式可使用以下语句,显示数据库处于非归档模式下SQL> select name,log_mode from v$database;NAME LOG_MODE--------- ------------ZHQHDB NOARCHIVELOG也可以用下面的语句[oracle@wangdm ~ 10:28 #9]$ sqlplus / as sysdbaSQL> archive log listDatabase log mode No Archive ModeAutomatic archival DisabledArchive destination ?/dbs/archOldest online log sequence 534Current log sequence 536步骤2(设置归档日志文件路径)SQL>alter system set log_archive_dest_1='location=/u01/arch';该语句含义是设置归档日志文件的存放路径,实际上Oracle 10g以后可以生成多份一样的日志,保存多个位置以防不测例如再添加一个归档日志文件存放位置可使用以下语句SQL>alter system set log_archive_dest_2='location=/u02/arch ';“location=/u01/arch”此目录是要从根目录开始的一个完整的目录详细介绍归档日志文件的存放的两种方法:步骤3(修改数据库为归档模式)关闭数据库SQL> shutdown immediate启动数据mount状态:SQL> startup mount修改数据库为归档模式:SQL> alter database archivelog;打开数据库,查询:SQL> alter database open步骤4(配置归档进程个数)可选初始化参数LOG_ARCHIVE_MAX_PROCESSES用于指定例程初始启动的最大归档进程个数,当将数据库转变为ARCHIVELOG模式时,默认情况下oracle会自动启动两个归档进程.通过改变初始化参数LOG_ARCHIVE_MAX_PROCESS的值,可以动态地增加或降低归档进程的个数,每个实例归档进程数量最多只能为30个取值范围为[0-9 a-t]: ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=3 scope=both; 如果设置的归档进程个数超过30如下图会有错误提示其实对于oracle 10g以前的版本还有log_archive_start参数与LOG_ARCHIVE_MAX_PROCESSES结合使用,但是对于10g及后期的版本这个参数完全做废了,如下图数据库已启用归档同时在日志发生切换时日志也会自动归档只是log_archive_start参数值还是false,所以到10G后这个参数就不用理它了步骤5(显示归档日志信息)1.使用ARCHIVE LOG LIST命令可以显示日志操作模式,归档位置,自动归档机器要归档的日志序列号等信息.2.显示归档日志信息.Select name, sequence#, first_change# FROM v$archived_log;Name用于表示归档日志文件名,sequence#用于表示归档日志对应的日志序列号,firs_change#用于标识归档日志的起始SCN值.3.执行介质恢复时,需要使用归档日志文件,此时必须准确定位归档日志的存放位置.通过查询动态性能视图v$archive_dest可以取得归档日志所在目录.SELECT * FROM v$archive_dest;4.显示日志历史信息SELECT * FROM v$loghist;THREAD#用于标识重做线程号,SEQUNCE#用于标识日志序列号,FIRST_CHANGE#用于标识日志序列号对应的起始SCN值,FIRST_TIME用于标识起始SCN的发生时间.SWICTH_CHANGE#用于标识日志切换的SCN值.5.显示归档进程信息.进行日志切换时,ARCH进程会自动将重做日志内容复制到归档目录中,为了加快归档速度,应该启用多个ARCH进程.通过查询动态性能视图V$ARCHIVE_PROCESSES可以显示所有归档进程的信息!SELECT * FROM v$archive_processes;Porcess用于标识ARCH进程的编号,status用于标识ARCH进程的状态(ACTIVE:活动, STOPPED:未启动),log_sequence用于标识正在进行归档的日志序列号,state用于标识ARCH进程的工作状态步骤6(执行手工归档)从oracle database 10g开始,当将日志操作模式转变未ARCHIVELOG模式时,oracle会自动启动ARCH进程.如果要使用手工归档.那么在改变日志操作模式时必须使用命令ALTER DATABASE ARCHIVELOG MANUAL;需要注意,使用手工归档方式,数据库管理员必须手工执行归档命令.如果没有执行手工归档命令,日志组的原有内容将不能被覆盖.ALTER DATABASE ARCHIVELOG MANUAL 命令是为了与先前的版本兼容而保留的,将来的oracle版本会淘汰该命令,使用手工归档方式时,数据库管理员可以执行以下命令归档重做日志:alter system archive log all; --手动归档所有switch的日志alter system archive log sequence 545; --545为日志序列号alter system archive log current; --归档当前联机日志文件arter database archivelog; --用此命令再次将数据库改为自动归档,手动归档一般情况下在10g及后期版本其实已经没什么了注意点1 特别指出的是在Oracle 9i中还要修改参数log_archive_start = true才能生效,oracle 10g中已经废除了该参数,所以不需要设置该参数。

Oracle Archive log

Oracle Archive log

Oracle归档日志(Archive Log 一)归档日志即重做日志的备份,使用归档日志的目的是为了实现介质恢复。

一.日志操作模式1.Noarchivelog(非归档模式)不保存重做日志。

不能在open状态下进行物理备份;要定期执行完全数据库备份;只能将数据库恢复到上次的完全备份点。

2.Archivelog当进行日志切换时,ARCH进程会将重做日志的内容复制到归档日志中。

在归档重做日志前,新事务变化不能覆盖旧事务变化。

可以在open 状态下进行物理备份。

可以将数据库恢复到失败前的状态。

可以是用备份数据库与主数据库保持同步。

二.开启归档1.改变日志操作模式shutdown immediate;startup mount;alter database archivelog;alter database open;修改日志操作模式后,必须重新备份数据库2.归档重做日志1).手工归档alter system archive log all;2).自动归档设置初始化参数:log_archive_start=trueshutdown immediate;startup pfile=.3).检查日志操作模式archive log list;三.指定归档位置1.使用log_archive_dest1).设置归档目录log_archive_dest log_archive_duplex_dest 2).设置归档日志格式2.使用log_archive_dest_n1).指定归档位置log_archive_dest_1=’location=f:\arc1’log_archive_dest_3=’service=standby’2).设置其他初始化参数log_archive_dest_state_1=enablelog_archive_dest_state_3=defer四.相关的一些脚本1.显示日志操作模式select log_mode from v$database2.显示归档日志信息select name,sequence#,first_change# from v$archived_log3.显示归档日志位置select destination from v$arvhive_dest4.显示日志历史信息select * from v$loghist;Oracle中的归档日志(Archive Log 二)在Oracle中,数据一般是存放在数据文件中,不过数据库与Oracle 最大的区别之一就是数据库可以在数据出错的时候进行恢复。

oracle redo日志详解

oracle redo日志详解

max_dump_file_size string UNLIMITED
shadow_core_dump string partial
user_dump_dest string /u01/app/oracle/admin/orcl/udump
由LGWR后台进程同时将日志内容写入到一个组的所有成员
LGWR的触发条件
在事务提交的时候(COMMIT)
Redo Log Buffer 三分之一满
Redo Log Buffer 多于一兆的变化记录
--=========================================
-- Oracle 联机重做日志文件(ONLINE LOG FILE)
--=========================================
转载位置: /robinson_0612/article/details/5749556
9.删除日志成员
不能删除组内的唯一一个成员
不能删除处于active 和current 状态组内的成员
删除处于active 和current 状态组内的成员,应使用日志切换使其处于INACTIVE状态后再删除
对于组内如果一个成员为NULL 值,一个为INVALID,且组处入INACTIVE,仅能删除INVALID状态成员
处于归档模式的联机日志,LSN号在归档时也被写入到归档日志之中
4.日志文件的工作方式
日志文件采用按顺序循环写的方式
当一组联机日志组写满,LGWR则将日志写入到下一组,当最后一组写满则从第一组开始写入
写入下一组的过程称为日志切换
user_dump_dest -->用户跟踪日志

Oracle特殊类型文件

Oracle特殊类型文件

Oracle 特殊类型文件Oracle 还提供了其他一些类型的文件,如参数文件、归档日志文件、跟踪和密码文件等。

本节将对这些类型的文件进行简单地介绍。

1.归档日志文件Oracle 利用重做日志文件记录对数据库所做的修改,但是重做日志文件是以循环方式使用的,在重新写入重做日志文件时,其中原来保存的信息将被覆盖。

如果能够将所有的重做记录永久地保留下,就可以完整地记录数据库的全部修改过程。

这可以通过对重做日志文件进行归档来实现。

在重做日志文件被覆盖之前,Oracle 能够将已经写满的重做日志文件通过复制操作系统文件的方式保存到指定的位置。

保存下来的重做日志文件的集合称为“归档重做日志”,复制的过程称为“归档”。

Oracle 数据库可以运行在两种模式之中,归档模式和不归档模式。

只有数据库处于归档模式下,系统才会对重做日志文件执行归档操作,归档操作是由后台进程ACRn 自动完成。

当数据库运行在归档模式下,归档重做日志文件会占用大量的硬盘空间。

也就是说,数据库在归档模式下是牺牲硬盘空间来获取数据的安全性。

2.参数文件在Oracle 数据库系统中,参数文件包含了数据库的配置信息。

数据库实例在启动之前,Oracle 数据库系统首先会读取这些参数文件中设置的参数,并根据初始化参数文件中设置的参数来配置实例的启动。

参数文件包括文本参数文件和服务器参数文件两种类型。

在Windows 平台中,服务器参数文件的名称格式为SPFILE<SID>.ora ,文本参数的名称格式为init<SID>.ora ,其中SID 为数据库实例名。

用户可以通过如下三种方法查看数据库中参数值:● 查看init<SID>.ora 文件。

该参数文件是以文本形式存储参数,用户可以直接打开该参数文件查看数据库参数。

● 查询视图V$PARAMETER 。

可利用该动态性能视图来确定参数的默认值是否修改过,以及是否可以用ALTER SYSTEM 和ALTER SESSION 命令修改。

Oracleredo与undo

Oracleredo与undo

Oracleredo与undoUndo and redoOracle最重要的两部分数据,undo 与redo,redo(重做信息)是oracle在线(或归档)重做⽇志⽂件中记录的信息,可以利⽤redo重放事务信息,undo(撤销信息)是oracle在undo段中记录的信息,⽤于撤销或回滚事务。

1 redo重做⽇志⽂件redo log,是数据库的事务⽇志,oracle维护着2类重做⽇志,在线重做⽇志⽂件和归档重做⽇志⽂件,归档⽇志⽂件就是重做⽇志的副本,系统将⽇志⽂件填满时arch进程会在另⼀个位置建⽴⼀个在线重做⽇志的副本每个oracle数据库⾄少有2个重做⽇志组,以便切换⽇志,每个⽇志组⾄少有1个⽇志组成员,这些在线重做⽇志⽂件是以循环写的⽅式使⽤,2 undo你对数据库执⾏修改时,数据库会⽣成undo信息,以便回滚到更改前的状态,undo⽤于取消⼀条语句或⼀组语句的作⽤,undo在数据库内部存放在⼀组特殊的段中,为undo段(回滚段 rollback segment),利⽤undo,数据库只是逻辑的恢复到原来的样⼦,所有修改都逻辑的取消,但是数据结构以及数据块本⾝在回滚后可能不⼤相同,对于undo⽣成对于直接路径操作不适⽤,直接路径操作能够绕过表上的undo⽣成。

SQL>set autotrace traceonly statisticsSQL>select*from t;--not first executeno rows selectedStatistics----------------------------------------------------------0 recursive calls0 db block gets3 consistent gets0 physical reads0 redo size995 bytes sent via SQL*Net to client374 bytes received via SQL*Net from client1 SQL*Net roundtrips to/from client0 sorts (memory)0 sorts (disk)0 rows processedSQL>insert into t select*from all_objects;49789 rows created.SQL>rollback;Rollback complete.SQL>select*from t;no rows selectedStatistics----------------------------------------------------------0 recursive calls0 db block gets689 consistent gets -----I/O0 physical reads0 redo size995 bytes sent via SQL*Net to client374 bytes received via SQL*Net from client1 SQL*Net roundtrips to/from client0 sorts (memory)0 sorts (disk)0 rows processedInsert导致⼀些块增加到表的⾼⽔位线(HWM),这些块没有因为回滚⽽消失,select extent_id, bytes, blocks from user_extentswhere segment_name = 'X' order by extent_id; 分配给表的存储空间—这个表没有使⽤任何区段3 undo 跟redo如何协作尽管undo信息存储在undo表空间或undo段中,但也会受到redo保护,会把undo信息当成表数据或索引数据⼀样,对undo的修改会⽣成⼀些redo,将记⼊重做⽇志,将undo数据增加到undo段中,并像其他部分的数据⼀样,在缓冲区缓存中得到缓存Insert-update-delete场景3.1 insertInsert语句,都会⽣成redo跟undo信息,插⼊发⽣后,如下图缓存了⼀下已修改的undo块,索引块和表数据块,这些块得到重做⽇志缓冲区相应条⽬的保护1假象现在系统崩溃,sga全部被清空,但是我们不需要sga的中的任何内容,重启动时就好像这个事务就没发⽣过,没有将任何修改的块刷新输出到磁盘,也没有任何redo信息刷新输出到磁盘,我们不需要这些undo或redo信息来实现实例失败恢复2假象:缓冲区缓存已满Dbwr进程要把已修改的块从缓存输出到磁盘,⾸先要求lgwr进程将保护这些数据库的redo条⽬输出到磁盘,dbwr在将任何修改的块输出到磁盘之前,都必须要求lgwr进程先刷新输出到redo⽇志,3.2 updateUpdate所带来的⼯作与insert⼤体⼀样,不过undo信息量更⼤,update,要保存系统的前映像,缓冲区中会有更多的undo块,为了撤销update,如果必要,已修改的数据库表和索引都会存在缓存中,其中重做⽇志有的已经输出到磁盘,有的还在redo buffer 中1 系统崩溃:启动时,oracle会读取重做⽇志,给定系统的当前状态,利⽤重做⽇志⽂件中对应的插⼊的redo条⽬,并利⽤仍在缓冲区中对应的redo条⽬,oracle会前滚插⼊,连接断开,oracle发现事务从未提交,因此将其回滚,利⽤undo,2 应⽤回滚事务Oracle发现这个事务的undo信息可能缓存在undo段中,也肯能已经刷新输出到磁盘,会把und信息应⽤到缓存中的数据和索引上,不在缓存中,则先要读⼊到缓存,恢复其原来的⾏,并刷新输出数据⽂件,回滚过程不涉及重组⽇志,只有恢复和归档才会读取重做⽇志,重做⽇志是⽤来写的,不⽤于读,3 deleteDelete 会⽣成undo⽇志,块将被修改,并把redo⽇志发送到重做⽇志缓冲区,与update类似4 commit已经修改的块放在缓冲区缓存中,可能已经输出到磁盘,重做这个事务所需的全部redo都安全的存放在磁盘上,undo信息会⼀直存在,除⾮undo段回绕并重⽤了这些undo块,4 提交和回滚处理Commit:commit并没有做太多的⼯作,Commit开销,频繁提交,会增加与数据库的往返同学,如果每个记录都提交,⽣成的往返通信量会⼤得多,每次提交时,必须等待redo写到磁盘,这会导致等待在commit之前可能:已经在sga中⽣成了undo 块,已经在sga中⽣成了已修改的数据块,已经在sga中⽣成了对应的2想的redo信息,取决于前3项的⼤⼩,已经这些花费的时间,前⾯的数据可能已经输出到磁盘,已经得到全部锁需要的锁在实际commit时, 1为事务⽣成⼀个scn(系统改变号),scn⽤于保证事务的顺序,并⽀持失败恢复,scn还⽤于保证数据库中的读⼀致性和检查点,每次有⼈commit,scn都会增加1。

oracle 日志归档 原理

oracle 日志归档 原理

oracle 日志归档原理Oracle数据库日志归档(Archive Log Mode)是数据库管理系统中用于实现数据库可恢复性的重要机制。

在归档模式下,Oracle数据库会将已填满的联机重做日志文件的内容复制到单独的归档日志文件中,并且只有在当前的日志内容被安全地归档后,才会覆盖或重新使用这些联机重做日志。

以下是Oracle日志归档的基本原理:1.联机重做日志:•Oracle数据库运行时会产生一系列的联机重做日志文件(Online Redo Logs),这些文件按照日志组的方式组织,每个日志组内包含一个或多个日志成员。

•当数据库执行事务处理时,所有对数据库的修改都会以重做记录的形式写入当前活动的日志组中。

2.日志切换:•随着数据库操作的进行,当前日志组填满后,会触发日志切换(Log Switch),即系统开始往下一个日志组中写入新的重做记录。

•在非归档模式下,旧的日志组可以被覆盖和重复使用;而在归档模式下,必须先将旧日志组的内容归档才能进行切换。

3.归档过程:•归档是由后台进程ARCn (Archiver) 自动完成的,或者管理员可以通过手动方式将填满的联机重做日志文件复制到指定的归档位置。

•归档日志文件具有与原始联机日志相同的逻辑内容,并带有唯一的日志序列号(Log Sequence Number, LSN),以便在恢复过程中确定应用重做记录的顺序。

4.作用:•在发生故障需要恢复数据库时,通过应用归档日志中的重做记录,可以将数据库状态恢复到故障发生前的任意时间点(Point-in-Time Recovery, PITR)。

•对于数据库镜像、数据保护以及维护高可用性环境如Data Guard(物理/逻辑standby数据库)也是至关重要的。

oracle归档日志解析出来的内容

oracle归档日志解析出来的内容

oracle归档日志解析出来的内容oracle归档日志解析的重要性为什么要解析oracle归档日志?•归档日志是oracle数据库中非常重要的组成部分,记录了数据库中发生的各种操作和变更。

•通过解析归档日志,可以还原数据库中的历史操作,用于数据恢复、数据库迁移、性能优化等方面。

归档日志的结构•归档日志由一系列日志块组成,每个日志块存储了一条数据库操作的详细信息。

•日志块包含了操作类型、操作对象、事务ID、时间戳等重要信息,可以通过解析这些信息还原数据库的操作。

解析归档日志的方法1.使用oracle提供的工具–oracle提供了一系列工具,如LogMiner和Data Pump,用于解析归档日志。

这些工具可以直接操作日志文件,提取其中的信息。

2.使用第三方工具–也可以使用第三方工具,如Redgate SQL Log Rescue和ApexSQL Log,来解析和分析归档日志。

解析归档日志的应用场景1.数据恢复–当数据库遭遇意外故障或数据损坏时,通过解析归档日志可以还原数据到故障发生前的状态,避免数据丢失。

2.数据库迁移–在数据库迁移过程中,解析归档日志可以帮助将源数据库中的操作应用到目标数据库中,实现平滑的迁移过程。

3.性能优化–通过分析归档日志,可以查看数据库中的各种操作和变更,从而帮助识别潜在的性能问题并进行优化。

解析归档日志的注意事项•解析归档日志是一个复杂的过程,需要充分了解oracle数据库的结构和日志记录方式。

•解析大量的归档日志会占用大量的系统资源,需要注意对系统性能的影响。

结论通过解析oracle归档日志,可以获得数据库操作的详细信息,用于数据恢复、数据库迁移和性能优化等方面。

但是解析归档日志需要一定的专业知识和技术手段,并且要注意对系统性能的影响。

因此,在进行归档日志解析时,建议使用合适的工具并专业人士的指导。

解析oracle归档日志的步骤步骤一:准备工作•确保数据库已启用归档模式,日志文件已正确配置,并且归档日志已经生成。

Oracle中最易忽视的两个重要进程

Oracle中最易忽视的两个重要进程

Oracle中最易忽视的两个重要进程在Oracle数据库中有两个进程非常的渺小,但是其作用却是非常的巨大。

由于其比较小而往往被数据库管理员所忽视。

笔者这次就给大家提醒提醒,不要忽视了这两个进程的作用。

如果利用的好的话,会减少系统管理员不少的工作。

一、系统监视进程SMON这个进程对于Oracle数据库来说,可以利用一句话来概括,即人小鬼大。

其负责的内容并不是很多,但是对于数据的安全与数据库的性能却有很关键的作用。

如随着表空间中的数据不断的建立、删除、更新等等,在表空间中难免会产生碎片。

由于这些碎片的存在,数据库的性能会逐渐的降低。

而现在系统监视进程SMON的作用,就可以解决这些碎片。

SMON 进程会将各个表空间的空闲碎片合并在一起,让数据库系统更加容易分配。

从而提高数据库的性能。

另外,在数据库运行的过程中,会因为断电或者其他的原因而发生故障。

此时由于数据高速缓存中的脏缓存块还没有来得及写入到数据文件中,从而导致数据的丢失。

在数据库启动的时候,系统监视进程SMON会在下一次启动例程的时候,自动读取重做日志文件并对数据库进行恢复。

也就是说,进行将已提交的事物写入数据文件(已经写入到日志文件中而没有写入到数据文件中的数据)、回退未提交的事务操作。

可见,SMON进程在Oracle 数据库中是一个比较小但是却非常重要的角色。

在管理这个进程的时候,笔者认为主要需要注意两个问题。

一是其启动的时机。

一般情况下,例程重新启动的时候,会启动这个系统监视进程。

然后在这个例程运行期间,这个进程也会被系统定期的唤醒,然后其会检查是否有工作需要其完成。

最重要的是,在有需要的时候,数据库管理员可以通过其他进程来启动这个SMON系统系统监视进程,来完成一些特定的工作。

第二需要注意表空间配置对这个进程的影响。

在表空间管理中,有一个参数叫做PCTINCREASE。

如果将这个参数设置为0的话,则这个SMON系统监视进程对于这个表空间的作用就要打折扣了。

oracle 归档模式理解

oracle 归档模式理解

oracle 归档模式理解Oracle 归档模式是一种数据库管理模式,它可以帮助数据库管理员有效地管理数据库的日志文件。

在这篇文章中,我们将深入探讨Oracle归档模式的概念、原理以及它在数据库管理中的作用。

我们来了解一下什么是归档模式。

归档模式是一种数据库管理策略,它能够将数据库的重要日志文件进行备份和存档,以便在需要时进行恢复和还原操作。

在Oracle数据库中,归档模式可以通过对数据库进行配置来启用。

在归档模式下,Oracle数据库会将所有的数据库操作记录保存在一个特殊的日志文件中,即归档日志文件。

这些归档日志文件可以用于数据库的恢复和还原操作。

当数据库发生故障或需要恢复到某个特定的时间点时,管理员可以使用归档日志文件进行恢复操作,以便将数据库恢复到故障前的状态。

归档模式的原理是通过将数据库的日志文件进行备份和存档,以确保数据库的完整性和可用性。

当数据库发生故障时,管理员可以使用归档日志文件将数据库还原到故障前的状态。

此外,归档日志文件还可以用于数据库的迁移和升级操作,以及数据的长期存储和备份。

在实际的数据库管理中,归档模式具有重要的作用。

首先,归档模式可以保证数据库的可用性和持久性。

通过定期备份和存档归档日志文件,管理员可以在数据库发生故障时快速恢复数据库。

其次,归档模式可以帮助管理员进行数据库的性能优化。

通过归档日志文件的分析和管理,管理员可以了解数据库的使用情况和性能瓶颈,并采取相应的措施来优化数据库的性能。

此外,归档模式还可以用于数据库的迁移和升级操作,以及数据的长期存储和备份。

为了启用归档模式,管理员需要对Oracle数据库进行相应的配置。

首先,管理员需要为数据库指定一个归档日志文件的存储位置。

其次,管理员需要创建一个归档日志文件组,用于存储归档日志文件。

最后,管理员需要启用归档模式,并定期备份和存档归档日志文件。

在实际的数据库管理中,管理员还需要注意一些与归档模式相关的注意事项。

oracle数据库处理归档日志的步骤

oracle数据库处理归档日志的步骤

一、了解归档日志归档日志是Oracle数据库中一种重要的日志记录方式,它记录了数据库中所有发生的修改操作,包括插入、更新、删除等。

归档日志的作用是用于数据库的恢复和回滚操作,确保数据库的完整性和可靠性。

二、启用归档模式1. 确认数据库当前日志模式在连接数据库后,可以使用以下SQL语句确认当前的数据库日志模式:```SELECT log_modeFROM v$database;```如果返回结果为ARCHIVELOG,则表示数据库已经处于归档模式;如果返回结果为NOARCHIVELOG,则表示数据库尚未启用归档模式。

2. 修改数据库为归档模式如果数据库尚未启用归档模式,可以使用以下步骤将数据库修改为归档模式:```SHUTDOWN IMMEDIATE;STARTUP MOUNT;ALTER DATABASE ARCHIVELOG;ALTER DATABASE OPEN;```通过以上步骤,数据库将被修改为归档模式,并可以开始处理归档日志。

三、配置归档参数1. 确认归档目标归档目标是指归档日志文件的存储位置。

可以使用以下SQL语句确认当前的归档目标:```SHOW PARAMETER LOG_ARCHIVE_DEST;```如果没有设置归档目标,需要通过以下SQL语句进行设置:```ALTER SYSTEM SETLOG_ARCHIVE_DEST_1='LOCATION=/archivelog';```其中,/archivelog为归档日志存储的路径,可以根据实际情况进行调整。

2. 确认归档模式归档模式是指数据库在何种情况下触发归档日志的记录。

可以使用以下SQL语句确认当前的归档模式:```SHOW PARAMETER LOG_ARCHIVE_START;```如果归档模式未启用,需要通过以下SQL语句进行设置:```ALTER SYSTEM SET LOG_ARCHIVE_START=TRUE;```通过以上步骤,归档参数将被正确配置,数据库可以开始处理归档日志。

oracle归档文件解析

oracle归档文件解析

oracle归档文件解析
在Oracle数据库中,归档文件(Archive Log Files)是记录数据库操作的重要组成部分,特别是在启用了归档模式的情况下。

归档文件的生成和解析对于数据库的备份和恢复以及数据完整性至关重要。

以下是有关Oracle归档文件解析的一些基本信息:
1.归档模式:在Oracle数据库中,启用归档模式后,数据库会将重要的日志文件保存为归档文件,以便在需要时进行恢复。

2.生成归档文件的条件:归档文件生成的条件通常包括日志切换(log switch)或手动切换,以及达到了特定的归档日志大小或时间限制。

3.归档文件的命名规则:归档文件的命名通常遵循一定的规则,其中包括数据库名称、日志序列号、时间戳等信息。

这有助于在需要时快速识别和检索归档文件。

4.解析归档文件:归档文件的解析可以通过查看归档文件的命名规则和元数据信息来实现。

Oracle提供了一些系统视图,如`V$ARCHIVED_LOG`,用于查看归档文件的相关信息。

5.归档文件的作用:归档文件对于数据库备份、恢复和数据保护非常重要。

它们允许在数据库发生故障时还原到先前的状态。

6.管理归档文件:管理归档文件包括定期备份、清理过期的归档文件,以及确保数据库有足够的空间来存储归档文件。

在进行数据库备份和恢复时,了解和熟悉归档文件的生成、命名规则和解析方法是非常重要的。

这有助于数据库管理员有效地管理数据库的日志文件,确保数据库的可靠性和一致性。

oracle 归档日志概念解释

oracle 归档日志概念解释

oracle 归档日志概念解释在Oracle数据库中,归档日志(Archived Logs)是一种重要的数据库日志,用于记录数据库发生的所有变更操作,以便在系统故障或数据损坏时进行数据库恢复。

以下是有关归档日志的一些关键概念和解释:1. 日志文件:Oracle数据库通过日志文件(Redo Log)记录所有对数据库的变更操作。

这包括插入、更新和删除操作。

日志文件的作用是保留数据库的变更历史,以便在需要时进行恢复。

2. 在线日志和归档日志:日志文件分为在线日志和归档日志两种类型。

在线日志包含当前正在进行的事务的日志信息,而归档日志包含已经完成的事务的日志信息。

当在线日志满了或发生特定的切换事件时,其中的日志会被归档到归档目录中。

3. 归档目录:归档日志被存储在一个被称为归档目录(Archive Destination)的特定位置。

这可以是本地磁盘、网络位置或远程服务器。

在配置归档目录时,确保有足够的磁盘空间存储归档日志,因为这对数据库的正常运行和故障恢复至关重要。

4. 日志切换:当在线日志文件满了或发生某些事件时,数据库会执行一个日志切换(Log Switch)。

这时,当前的在线日志文件会被标记为不可用,并且一个新的在线日志文件会开始记录新的变更。

同时,旧的在线日志文件会被归档。

5. 数据库恢复:归档日志对数据库的恢复非常关键。

如果数据库发生故障,系统可以利用归档日志中的信息,从最后一个完整备份以来的任何时间点将数据库还原到一致的状态。

这种恢复过程称为“介质恢复”(Media Recovery)。

总的来说,归档日志是Oracle数据库中一项关键的功能,它确保了数据库的可靠性和一致性,同时提供了故障恢复的能力。

Oracle归档模式及归档日志的操作

Oracle归档模式及归档日志的操作

ORACLE归档模式及归档日志的操 作
归档模式及归档日志基本概念
为什么要给Oracle做归档操作? Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插 入,删除,更新数据等,对这些操作都会记录在联机重做日志里。 当ORACLE数据库运行在ARCHIVELOG(归档模式)模式时,所有的事务重做日志 都将保存.这意味着对数据库进行的所有事务都留有一个备份,尽管重做日志以 循环方式工作,但在一个重做日志被覆盖前均将为其建立一个副本.在重做日志 文件复制完成之前,ORACLE数据库将停止一切新的操作,在旧的事务记录完成之 前ORACLE不对其进行覆盖.有了所有事务的副本,数据库就可以从所有类型的失 败中恢复,包括用户错误或磁盘崩溃.这是一种最安全的数据库工作方式。在实 际开发中,归档模式是符合开发的,归档模式可以提高Oracle数据库的可恢复 性,生产数据库都应该运行在此模式下,数据库使用归档方式运行时才可以进 行灾难性恢复。
LINUX系统开启归档模式
修改数据库为归档模式(需在关闭数据库后操作,操作完成后启动数据库) alter database 改为非归档,则执行: alter database noarchivelog;)
WINDOWS开启归档模式
删除归档日志释放磁盘空间
先查看归档日志状态: RMAN>list archivelog all; 手工删除归档日志文件(删除7天前的所有归档日志) RMAN>DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; 说明: SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志, 如果使用了闪回功能,也会删除闪回的数据。 同样道理,也可以删除从7天前到现在的全部日志,不过这个命令要考虑清楚, 做完这个删除,最好马上进行全备份数据库。

oracle归档日志格式

oracle归档日志格式

oracle归档日志格式摘要:一、Oracle归档日志概述1.Oracle归档日志的作用2.Oracle归档日志的类型二、Oracle归档日志格式详解1.归档日志文件名2.归档日志文件扩展名3.归档日志文件头信息4.归档日志文件尾信息5.归档日志记录结构三、Oracle归档日志的应用场景1.数据库故障恢复2.数据迁移3.数据库审计四、Oracle归档日志的配置与管理1.配置归档日志2.查看归档日志状态3.清除归档日志4.管理归档日志文件正文:一、Oracle归档日志概述Oracle数据库中,归档日志(Archive Log)是一种记录数据库操作历史的重要文件,它记录了数据库从创建到现在所有的数据操作,包括数据修改、删除和事务操作等。

归档日志的主要作用是在数据库出现故障时,通过读取归档日志文件来恢复数据。

此外,归档日志还可以用于数据迁移、数据库审计等场景。

二、Oracle归档日志格式详解1.归档日志文件名Oracle归档日志文件名由以下几部分组成:- db_name_arch- log_mode- log_sequence_num- ar_suffix其中,db_name_arch表示数据库名,log_mode表示日志模式(如:NOARCHIVELOG、ARCHIVELOG等),log_sequence_num表示日志序列号,ar_suffix表示归档日志文件后缀(如:.arc、.log等)。

2.归档日志文件扩展名Oracle归档日志文件的扩展名有两种:.arc和.log。

.arc文件是归档日志的当前部分,.log文件是归档日志的当前部分的前一个部分。

在数据库运行过程中,.arc文件会不断地增长,而.log文件会不断地被覆盖。

当.arc文件达到一定大小时,Oracle会将它重命名为.log文件,并创建一个新的.arc文件。

3.归档日志文件头信息Oracle归档日志文件头信息包括日志序列号、日志模式、文件名等。

oracle重做日志文件和归档日志

oracle重做日志文件和归档日志
当数据库正常运行时,重做日志文件 会持续写入。如果数据库发生故障, 可以通过重做日志文件来恢复数据, 确保数据的完整性和一致性。
数据库恢复的原理
当数据库发生故障时,可以利用重做 日志文件来进行恢复。Oracle会根据 重做日志文件中的记录,重新执行对 数据库所做的更改,从而将数据库恢 复到一致的状态。
04 Oracle重做日志文件和归 档日志的管理和维护
日志文件的备份与恢复
备份策略
制定定期备份和增量备份策略,确保重做日志文件和归档日志的安全。
恢复方法
在发生故障时,根据备份情况选择适当的恢复方法,如全量恢复或增量恢复。
日志文件的清理与维护
清理过期日志
定期清理过期或不再需要的日志文件 ,释放存储空间。
Oracle重做日志文件和归档日志
contents
目录
• Oracle重做日志文件 • 归档日志 • Oracle重做日志文件和归档日志的关系 • Oracle重做日志文件和归档日志的管理
和维护 • Oracle重做日志文件和归档日志的故障
处理
ቤተ መጻሕፍቲ ባይዱ
01 Oracle重做日志文件
重做日志文件的作用
数据恢复
THANKS FOR WATCHING
感谢您的观看
存储容量
需要合理规划存储空间,确保有足够的空间存储归档日志文件,避 免空间不足导致数据库故障。
归档日志的恢复
恢复方法
当数据库发生故障时,可以使用归档日志进行恢复。可以选择完全恢复或部分恢复,根据需要选择相应的归档日志文 件。
恢复过程
在恢复过程中,需要按照时间顺序应用归档日志文件,确保数据的一致性。可以使用RMAN(Oracle Recovery Manager)进行自动恢复或手动恢复。

oracle_重做日志文件--笔记

oracle_重做日志文件--笔记

oracle_重做⽇志⽂件--笔记重做⽇志⽂件(redo log file)⽬录重做⽇志⽂件相关。

重做⽇志⽂件简介。

查询重做⽇志⽂件的信息。

⽇志切换。

管理⽇志⽂件组增删⽇志⽂件组。

增删⽇志⽂件成员。

归档与⾮归档模式。

⼀.重做⽇志⽂件相关。

Oracle引⼊重做⽇志的⽬的:数据库的恢复。

Oracle相关进程:重做⽇志写进程(LGWR)。

重做⽇志性质:联机⽇志⽂件,oracle服务器运⾏时需要管理它们。

相关数据字典:v$log ; v$logfile。

操作者权限:具有sys⽤户或system⽤户权限。

1.1重做⽇志⽂件的规划。

(于⽹络上收集)联机⽇志⽂件的规划原则如下:1:分散放开,多路复⽤。

⼀般会将同⼀组的不同⽇志成员⽂件放到不同的磁盘或不同的裸设备上。

以提⾼安全性。

2:把重做⽇志放在速度最快的硬盘上(即:⽇志所在的磁盘应当具有较⾼的I/O),⼀般会将⽇志⽂件放在裸设备上。

3:把重做⽇志⽂件设为合理⼤⼩:例如,增⼤⽇志⽂件⼤⼩可以加快⼀些⼤型的INSERT、UPDATE、DELETE操作,也能降低⽇志⽂件切换频率。

减少⼀些⽇志等待事件。

⼀般根据具体业务情况有所不同。

⼀般⽇志组⼤⼩应满⾜⾃动切换间隔⾄少15-20分钟左右业务需求4:ORACLE推荐,同⼀个重做⽇值组下的所有重做⽇志⽂件⼤⼩、成员个数⼀致.⼆.重做⽇志⽂件简介。

2.1重做⽇志重做⽇志⽂件⼜叫联机⽇志⽂件,记录了对数据库修改的信息,包括⽤户对数据修改和数据库管理员对数据库结构的修改。

2.2重做⽇志的作⽤。

它主要⽤于在oracle发⽣故障的时候和数据库备份⽂件配合恢复数据库。

⼀般来说,数据库故障丢失数据,有两种情况。

⼀是,因为停电或死机,脏块未写⼊磁盘,造成该数据丢失。

⼆是,磁盘损坏,数据全完蛋。

对应第⼀种情况,oracle会使⽤实例恢复,使⽤重做⽇志⾃动恢复数据,不需要⽤户⼲预。

没错,实例恢复,它是⾃动的。

对应第⼆种情况,便需要DBA使⽤备份,重做⽇志,归档⽇志来恢复数据了。

Oracle日志介绍

Oracle日志介绍

Oracle日志介绍Oracle的日志是一种记录数据库操作和事件的机制,它可以帮助数据库管理员进行故障排除、恢复数据以及进行性能优化等工作。

Oracle的日志包括事务日志(Redo Log)、归档日志(Archive Log)和警告日志。

事务日志是Oracle数据库最重要的日志,它记录了数据库中每个事务所做的修改。

当用户在数据库执行更新、插入或删除操作时,事务日志会将这些操作以一种逻辑的方式记录下来。

这样即使数据库崩溃或者非正常关闭,管理员仍然可以通过重放事务日志来恢复数据库到崩溃前的状态,保证数据的一致性。

事务日志还可以用于数据库的恢复、数据迁移和数据库备份等操作。

归档日志是在数据库中启用归档模式后,产生的一种备份。

当事务日志已经满时,归档日志会被创建并存储到归档目录中。

归档日志的主要作用是保证数据的持久性,即使系统发生故障或者备份失败,通过归档日志可以保证丢失的数据可以从归档中进行恢复。

通过应用归档日志,可以将数据库恢复到任意时间点,以实现精确的数据恢复。

警告日志记录了Oracle数据库中的错误信息、警告信息和一些其他的重要事件。

警告日志可以帮助管理员及时发现和解决数据库的健康和性能问题。

警告日志也包含了数据库的启动和关闭过程,以及数据库网络连接问题的信息。

同时,警告日志还能记录数据库的配置变更、数据库资源的使用情况以及一些特殊功能的启用和禁用,这些信息都对于诊断和调优数据库非常有用。

在日常的运维工作中,管理员需要定期查看Oracle的日志以监控数据库的健康状况和及时发现问题。

可以通过查看事务日志来判断数据库的工作负载和事务处理情况,通过分析归档日志可以确定数据库备份的完整性和执行效果,通过检查警告日志可以找到数据库运行中的一些异常,并及时进行修复。

同时,管理员还需要根据实际需求和线上的问题,使用参数文件和跟踪文件进行相关的配置和分析工作。

总之,Oracle的日志是数据库运行和维护的重要组成部分,它们扮演着记录、恢复、诊断和优化数据库的重要角色。

oracle数据库归档日志使用情况

oracle数据库归档日志使用情况

oracle数据库归档日志使用情况Oracle数据库归档日志使用情况概述:数据库归档日志是Oracle数据库中一个重要的组成部分,它用于记录数据库的所有变更操作,以便数据库在出现故障或需要恢复时能够通过日志进行数据的恢复。

本文将详细介绍Oracle数据库归档日志的使用情况,包括归档日志的作用、生成方式、存放位置以及管理方法等。

一、归档日志的作用数据库归档日志的主要作用是提供了数据的完整性和可恢复性。

当数据库发生故障,如硬件故障、数据库崩溃或意外删除数据等情况,通过归档日志可以使数据库回滚到故障前的状态或恢复数据至故障发生时的状态。

此外,归档日志还可以用于数据库的灾难恢复、数据库的克隆和备份等操作。

当数据库需要从远程站点进行恢复或克隆时,可以通过归档日志来还原数据库至远程站点的状态,实现数据的同步。

同时,归档日志还可以用于数据库的备份,确保备份是最新的,并且能够完全恢复数据库。

二、归档日志的生成方式Oracle数据库归档日志有两种生成模式,一种是归档模式,另一种是非归档模式。

1. 归档模式数据库处于归档模式时,它会自动将日志文件复制到指定的目录中,以便进行数据的归档和恢复。

在归档模式下,数据库的归档日志会自动生成,并且只有归档日志被才会被复制到指定的归档目录中。

归档模式是默认的数据库模式,它可以通过以下命令进行启用:ALTER DATABASE ARCHIVELOG;2. 非归档模式与归档模式相反,非归档模式下数据库不会自动进行归档操作,也就是说不会生成归档日志。

这种模式适用于对数据的可恢复性要求不高的情况,或者是为了降低数据库的I/O负载,减少磁盘空间的占用。

非归档模式可以通过以下命令进行启用:ALTER DATABASE NOARCHIVELOG;需要注意的是,一旦数据库启用了归档模式,就不能再切换到非归档模式。

因此,在启用归档模式前需要谨慎考虑数据库的需求和成本效益。

三、归档日志的存放位置归档日志的存放位置由参数log_archive_dest_n(n为1-10的整数)指定。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

以下查询显示了当前数据库的重做日志文件的位 置和名称。当前数据库共有3 个日志文 件REDO01.LOG、REDO02.LOG 和REDO03.LOG,位 于D:\ORACLE\ORADATA\DB01\目录下。 SQL> SELECT member FROM v$logfile; MEMBER -----------------------------------------D:\ORACLE\ORADATA\DB01\REDO03.LOG D:\ORACLE\ORADATA\DB01\REDO02.LOG D:\ORACLE\ORADATA\DB01\REDO01.LOG
【本章大纲】
ቤተ መጻሕፍቲ ባይዱ
1.2 日志序列号和日志切换 Oracle 服务器将对数据库所做的所有更改按顺序记录到 重做日志缓冲区中。LGWR 进程把重做条目从重做日志缓 冲区写入联机重做日志组的其中一个组,这个组叫做当 前重做日志组。LGWR 进程将在以下情况下写入: • 当提交事务处理时(Commit) • 当重做日志缓冲区被写满三分之一时 • 当重做日志缓冲区内的已更改记录超过1MB 时 • 每隔3 秒 • 在DBWn 将数据库缓冲区高速缓存中修改的块写入数据 文件之前
利用重做日志文件,在数据库发生故障时,可 以重新处理事务。每个事务在处理的同时也会写 入重做日志缓冲区,然后由LGWR 进程写入到重 做日志文件,这样,如果发生介质故障,重做日 志文件将提供恢复机制。(但也存在例外情况, 例如,在启用NOLOGGING 子句的情况下对象中的 直接加载插入)。 重做日志文件用来在例程失败等情况下恢复尚 未写入数据文件的但是已提交的数据。重做日志 文件只用于恢复。
重做日志文件是以循环方式使用的。每个重做日志文件 组用一个递增日志序列号来标识,每次重新使用日志时 就会覆盖原来的序列号。
LGWR 按顺序向联机重做日志组写入重做信息。一旦当 前联机重做日志组被写满,LGWR 就开始写入下一个组。 这称为日志切换(Log Switch)。 当最后一个可用联机 重做日志文件已满时,LGWR 将返回第一个联机重做日志 文件组并开始重新写入。 假定数据库有三个重做日志组,第一个日志组为当前 日志组,当前日志序列号为56,LGWR 进程将事务变化 写入第一个重做日志组中,当第一个日志组写满后, LGWR 进程自动切换到第二个日志组,在进行日志切换 时,Oracle 服务器完成如下任务: • 日志序列号自动加1,即当前日志序列号变为57,并 且将日志序列号连同SCN 信息写入到控制文件的日志历 史记录中。
•促使CKPT 进程发出检查点,从而使得后台进程 CKPT 将检查点时刻的SCN 信息写入到控制文件和 数据文件头部,并促使后台进程DBWR 将数据高 速缓存中的脏缓冲区写入到数据文件中。 • 当数据库处于ARCHIVELOG 模式时,日志切换还 会促使ARCH 进程开始归档。 当日志组写满之后Oracle Server 会自动进行日志 切换;另外,在一些特定情况DBA 还可以强制系 统进行日志切换,这要求用户必须具有ALTER SYSTEM 系统权限。
第7周 重做日志和归档日志
杨进 goodskyfly@
【学习目标】
介绍Oracle 数据库重做日志文件和归档日志 文件的结构、工作过程以及如何管理重做 日志和归档日志。 重做日志文件是用于数据库故障恢复的文 件,也是Oracle 数据库3 类重要的物理文件之 一。
【本章要点】
• 重做日志的结构和用途 • 日志切换和检查点的概念 • 复用重做日志文件 • 获取重做日志文件的信息
属于同一日志组的每个日志文件被称为日志成员 ,并且同一个日志组的不同日志成员互为镜像, 即组内的每个成员都有相同的日志序列号和同样 的大小。Oracle 服务器每次写入日志组时,都分 配一个日志序列号以唯一地标识每个重做日志文 件。当前日志序列号存储在控制文件和所有数据 文件的头部。在Oracle 数据库中,多个重做日志 组是循环使用的,如图7—1 所示。
假定数据库包含三个日志组,在图7-1 中,初始阶段后 台进程LGWR 将事务变化写入到日志组一的两个成员中; 在日志组一写满之后,LGWR 进程切换到日志组二,并将 事务变化写入到日志组二的两个成员中;在日志组二写 满之后, LGWR 进程切换到日志组三,并将事务变化写 入到日志组三; 在日志组三写满之后,LGWR 又切换回日志组一,并将 事务变化写入到日志组一,覆盖原有记录。经过以上说 明,大家可以知道,所有事务变化都可以通过日志组予 以保留(归档方式下)。 这样,即使将来出现实例失败(Instance Failure)或介 质失败(Media Failure)时,DBA 将会使用这些已经保留下 来的事务变化进行实例恢复或介质恢复,最终可以确保 Oracle 不会出现数据丢失。
【本章大纲】
【本章大纲】
一、 重做日志文件
在数据库的使用过程中,可能会出现断电、死机 等意外情况,在出现意外时如何保证数据的有效 性、一致性和完整性? Oracle 作为大型关系数据库管理系统,必须要 通过合理的机制确保在任何情况下都不会出现数 据丢失,通过合理的配置重做日志可以实现并完 成这项任务。
在Oracle 当中,事务对数据库所做的修改将以重做记 录的形式保存重做日志缓存中。 在提交事务时,由 LGWR 进程将缓存中该事务相关的重做记录全部写入重做 日志文件,这时,事务认为已经成功提交。这种机制称 为“快速提交”。
【本章大纲】
1.1 重做日志结构 重做日志文件具有以下特征: • 记录对数据所做的所有更改 • 提供恢复机制 • 可以划分成组 • 至少需要两个组 那么什么是日志组呢(Redo Log Group)? 重做日志组是一组相同的重做日志文件副本,LGWR 后台 进程向组内所有联机重做日志文件并发写入相同信息, 为保证数据库的正常操作,Oracle 服务器最少需要两个 联机重做日志文件组。
相关文档
最新文档