分类: Oracle
2008-05-21 13:15:50
来源: |
|
◆由于直至检查点时所有的数据库修改已记录到数据文件,先于检查点的日志项在实例恢复时不再需要应用于数据文件,所以检查点可加快实例恢复。 虽然检查点有一些开销,但Oracle既不停止活动又不影响当前事务。由于DBWR不断地将数据库缓冲区写入到磁盘,所以一个检查点一次不必写许多数据块。一个检查点自前一个检查点以来的全部修改数据块写入到磁盘。检查点不管填满的日志文件是否正在归档,它总是出现。如果实施归档,在LGWR重用在线日志文件之前,检查点必须完成并且所填满的在线日志文件必须被归档。 检查点可对数据库的全部数据文件出现(称为数据库检查点),也可对指定的数据文件出现。下面说明一下什么时候出现检查点及出现什么情况: ◆在每一个日志开关处自动地出现一数据库检查点。如果前一个数据库检查点正在处理,由日志开关实施的检查点优于当前检查点。 ◆初始化参数据LOG-CHECKPOINT-INTERVAL设置所实施的数据库检查点,当预定的日志块数被填满后(自最后一个数据库检查点以来),实施一数据库检查点。另一个参数LOG-CHECKPOINT-TIMEOUT可设置自上一个数据库检查点开始之后指定秒数后实施一数据库检查点。这种选择对使用非常大的日志文件时有用,它在日志开头之间增加检查点。由初始化参数所启动的数据库检查点只有在前一个检查点完成后才能启动。 ◆当一在线表空间开始后备时,仅对构成该空间的数据文件实施一检查点,该检查点压倒仍在进行中的任何检查点。 ◆当DBA使一表空间离线时,仅对构成该表空间的在线文件实施一检查点。 ◆当DBA以正常或立即方式关闭一实例时,Oracle在实例关闭之前实施一数据库检查点,该检查点压倒任何运行检查点。 ◆DBA可要求实施一数据库检查点,该检查点压倒任何运行检查点。 检查点机制:当检查点出现时,检查点后台进程记住写入在线文件的下一日志行的位置,并通知数据库写后台进程将SGA中修改的数据库缓冲区写入到磁盘上的数据文件。然后由CKPT修改全部控制文件和数据文件的标头,反映该最后检查点。当检查点不发生,DBWR当需要时仅将最近最少使用的数据库缓冲区写入磁盘,为新数据准备缓冲区。 镜象在线日志文件:为了将实例的在线日志文件镜象到它的在线日志文件ORACLE提供镜象功能。当具有镜象在线日志文件时,LGWR同时将同一日志写入到多个同样的在线日志文件。日志文件分成组,每个组中的日志文件称为成员,每个组中的全部成员同时活动,由LGWR赋给相同的日志序列号。如果使用镜象在线日志,则可建立在线日志文件组,在组中的每一成员要求是同一大小。 镜象在线日志的机制:LGWR总是寻找组的全部成员,对一组的全部成员并行地写,然后到下一组的全部成员,并行地写。 每个数据库实例有自己的在线日志组,这些在线日志组可以是镜象的或不是,称为实例的在线日志线索。在典型配置中,一个数据库实例存取一个ORACLE数据库,于是仅一个线索存在。然而在运行ORACLE并行服务器中,两个或多个实例并行地存取单个数据库,在这种情况下,每个实例有自己的线索。
(3)归档日志 Oracle要将填满的在线日志文件组归档时,则要建立归档日志,或称离线日志。其对数据库后备和恢复有下列用处: ◆数据库后备以及在线和归档日志文件,在系统或磁盘故障中可保证全部提交的事务可被恢复。 ◆在数据库打开时和正常系统使用下,如果归档日志是永久保持,在线后备可以进行和使用。 如果用户数据库要求在任何磁盘故障的事件中不丢失任何数据,那么归档日志必须要存在。归档已填满的在线日志文件可能需要DBA执行额外的管理操作。 归档机制:决定于归档设置,归档已填满的在线日志组的机制可由Oracle后台进程ARCH自动归档或由用户进程发出语句手工地归档。当日志组变为不活动、日志开关指向下一组已完成时,ARCH可归档一组,可存取该组的任何或全部成员,完成归档组。在线日志文件归档之后才可为LGWR重用。当使用归档时,必须指定归档目标指向一存储设备,它不同于个有数据文件、在线日志文件和控制文件的设备,理想的是将归档日志文件永久地移到离线存储设备、如磁带。 |