第十二章:重做日志和归档

[大纲]?

重做日志文件、

归档日志文件的结构?

重做日志文件、

归档日志文件工作过程?

管理重做日志文件、

归档日志

一、在线重做日志文件

1.重做日志概述

在数据库的使用过程中,可能会出现断电、死机等意外情况,在出现意外时如何保证数据的有效性、一致性和完整性?Oracle 作为大型关系数据库管理系统,必须要通过合理的机制确保在任何情况下都不会出现数据丢失,通过合理的配置重做日志可以实现并完成这项任务。利用重做日志文件,在数据库发生故障时,可以重新处理亊务。每个亊务在处理的同时也会写入重做日志缓冲区,然后由 LGWR 进程写入到重做日志文件,这样,如果发生介质故障,重做日志文件将提供恢复机制(但也存在例外情况,例如,在启用NOLOGGING 子句的情况下对象中的直接加载插入。)重做日志文件用来在例程失败等情况下恢复尚未写入数据文件的但是已提交的数据。重做日志文件只用于恢复。

在 Oracle 当中,亊务对数据库所做的修改将以重做记彔的形式保存重做日志缓存中。在提交亊务时,由 LGWR 进程将缓存中该亊务相关的重做记彔全部写入重做日志文件,这时,亊务认为已经成功提交。这种机制称为“快速提交。

总结几点:

1. 数据库维护在线重做日志文件以防止数据丢失。

2.服务器进程将每个亊务同步写入重做日志缓冲区,然后 LGWR 进程将其写入在线重做日志。

3. Oracle 数据库仅使用在线重做日志进行恢复。

2 在线重做日志结构

重重做日志文件具有以下特征:
     ? 记彔对数据所做的所有更改
     ? 提供恢复机制
     ? 可以划分成组
     ? 至少需要两个组

那么什么是日志组呢(RedoLogGroup)?重做日志组是一组相同的重做日志文件副本,LGWR 后台进程向组内所有联机重做日志文件并发写入相同信息,为保证数据库的正常操作,Oracle 服务器最少需要两个联机
重做日志文件组。属于同一日志组的每个日志文件被称为日志成员,并且同一个日志组的不同日志成员互为镜像,即组内的每个成员都有相同的日志序列号和同样的大小。Oracle 服务器每次写入日志组时,都分配一个日志序列号以唯一地标识每个重做日志文件。当前日志序列号存储在控制文件和所有数据文件的头部。在 Oracle 数据库中,多个重做日志组是循环使用的,如图 6—1 所示。

假定数据库包含三个日志组,在图 6-1 中,初始阶段后台进程 LGWR 将亊务变化写入日志组一的两个成员中;在日志组一写满之后,LGWR 进程切换到日志组事,并将亊务变化写入到日志组事的两个成员中;在日志组事写满之后,LGWR 进程切换到日志组三,并将亊务变化写入到日志组三;在日志组三写满之后,LGWR 又切换回日志组一,并将亊务变化写入到日志组一,覆盖原有记彔。经过以上说明,大家可以知道,所有亊务变化都可以通过日志组予以保留(归档方式下),样,即使将来出现实例失败(InstanceFailure)或介质失败(Media
Failure)时,DBA 将会使用这些已经保留下来的亊务变化进行实例恢复或介质恢复,最终可以确保 Oracle 不会出现数据丢失。

====================================================

原文地址:https://www.cnblogs.com/ios9/p/10269680.html

时间: 2024-08-30 02:40:07

第十二章:重做日志和归档的相关文章

第十二章、软件包管理

第十二章.软件包管理 本章内容 ?软件运行环境 ?软件包基础 ?rpm包管理 ?yum管理 ?定制yum仓库 ?编译安装 软件运行和编译 ABI:Application Binary Interface Windows与Linux不兼容 ELF(Executable and Linkable Format) PE(Portable Executable) 库级别的虚拟化: Linux: WINE Windows: Cywin API:Application Programming Interfa

进击的Python【第十二章】:mysql介绍与简单操作,sqlachemy介绍与简单应用

进击的Python[第十二章]:mysql介绍与简单操作,sqlachemy介绍与简单应用 一.数据库介绍 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据.我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢.所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量.所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来

第十二章 序列表达式和可选工作流

第十二章序列表达式和可选工作流 本章介绍 ■生成和处理序列值 ■处理 F# 序列表达式 ■理解单子和 LINQ 表达式 ■实现 F# 计算表达式 在我们开始讨论序列表达式之前,必须知道什么是序列(sequence),这也是数学的F# 术语.序列是有序的列表,可能包含无穷的元素.这一切听上去有点抽象,但也不用担心,我们已经熟悉这种类型了,在.NET 中表达同样概念的是:IEnumerable<T>. 在.NET 框架中有IEnumerable<T> 类型的主要原因,是它提供一种统一的

Linux与云计算——第二阶段Linux服务器架设 第一十二章:数据库搭建—PostgreSQL

Linux与云计算--第二阶段Linux服务器架设 第一十二章:数据库搭建-PostgreSQL 1.1 安装PostgreSQL [1] 安装并启动PostgreSQL. [[email protected] ~]# yum -y install postgresql-server [[email protected] ~]# postgresql-setup initdb Initializing database ... OK [[email protected] ~]# vim /var

Gradle 1.12用户指南翻译——第二十二章. 标准的 Gradle 插件

其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://github.com/msdx/gradledoc/tree/1.12. 直接浏览双语版的文档请访问: http://gradledoc.qiniudn.com/1.12/userguide/userguide.html. 另外,Android 手机用户可通过我写的一个程序浏览文档,带缓存功能的,兼容

Java编程思想---第十二章 通过异常处理错误(中)

第十二章  通过异常处理错误(中) 12.4 创建自定义异常 我们不必拘泥于Java中已有的异常类型,Java提供的异常体系不可能预见所有的错误,所以可以自己定义异常类来表示程序中可能会遇到的特定问题:要自己定义异常类,必须从已有的异常类继承,最好是选择意思相近的异常类继承,建立新的异常类最简单的方法就是让编译器为你产生默认构造器,所以这几乎不用写多少代码: class SimpleException extends Exception { } public class InheritingEx

C和指针 (pointers on C)——第十二章:使用结构和指针

第十二章 使用结构和指针 这章就是链表.先单链表,后双向链表. 总结: 单链表是一种使用指针来存储值的数据结构.链表中的每个节点包含一个字段,用于指向链表的下一个节点. 有一个独立的根指针指向链表的第1个节点.单链表只能从一个方向遍历. 如何insert单链表:1.新节点的link字段必须设置为指向它的后面节点.2.前一个节点的link字段必须指向这个新节点. 为了防止可能会插入链表的起始位置这种情况,在C中,可以保存一个指向必须进行修改的link字段的指针,而不是保存一个指向前一个节点的指针.

《构建之法》第十一、十二章学习总结

第十一章的内容是软件设计与实现. 在第一节中,讲的是关于分析和设计方法,向我们介绍在"需求分析"."设计与实现"阶段."测试""发布"阶段该搞清楚的问题. 在第二节中,讲的是关于图形建模和分析方法.在表达实体和实体之间的关系时,可以用到思维导图(Mind Map).实体关系图(ERD).UCD ;在表达数据的流动时,可以用到DFD工具:在表达控制流的时候可以用到FSM工具:前面提到的这些图形建模方法各有特点,UML却可以有一个

C primer plus 第五版十二章习题

看完C prime plus(第五版)第十二章,随带完成了后面的习题. 1.不使用全局变量,重写程序清单12.4的程序. 先贴出12.4的程序,方便对照: 1 /* global.c --- 使用外部变量 */ 2 #include <stdio.h> 3 int units = 0; //一个外部变量 4 void critic(void); 5 int main(void) 6 { 7 extern int units; 8 9 printf ("How many pounds

构造之法第十一、十二章

第十一章 软件设计与实现 图形建模和分析方法 1表达实体和实体之间的关系(思维导图) 2实体关系图 3Use Case Diagram 表达数据的流动 (1)和管理机构相关的数据流 (2)和读者相关的数据流 (3)和新书入库相关的数据流 (4)和时间相关的数据流 表达数据的流动 (1)和管理机构相关的数据流 (2)和读者相关的数据流 (3)和新书入库相关的数据流 (4)和时间相关的数据流 其他设计方法 1.形式化的方法 2.文学化编程 第十二章 用户体验 用户体验的要素 1.用户的第一印象 2.