ORACLE数据库事务处理和故障恢复
Oracle数据块损坏知识

•
几乎所有的数据块都有Cache层,KCBH
Oracle Block构成 事务层 ktbbh
• • 在本数据块上执行着的 或者执行过的事务信息 存放
– SCN (System Change Number) – ITL 一种事务列表 ktbbhitl – 存放的数据类型 ktbbhtyp , KDDBTINDEX代表索引 , KDDBTDATA 代表数据 – ktbbhflg , MSSM or ASSM, KTBFONFL or KTBFBSEG
– 服务进程修改数据块,checksum被置0 – DBW负责计算checksum并写出块 – 在上述改数据块和checksum之间存在时间,DBW不清楚这中 间的问题,也不负责
db_block_checksum=TRUE
Buffer cache
Block#=X Chkval=0 Block#=X Chkval=A
数据层 Tail
Oracle Block构成 Cache层 Kcbh
• Cache层包含用来检测块损坏的信息
– Cache层的chkval_kcbh用来确认,上一次的写入到磁盘,到现在读取出来磁盘上 的Block的内容是否一致
•
Cache层存放的信息
– 本数据块存放何种数据type_kcbh(Data,Index) – RDBA和格式版本 – 本数据块的更新情况
数据块损坏检测参数 DB_BLOCK_CHECKSUM
• 三种不同作用的检测 保护机制,但都不负责修复 现有问题。 • DB_BLOCK_CHECKSUM负责控制块的cache层的 chkval_kcbh是否在块被写出时计算并写入到磁盘 中
BBED> sum Check value for File 0, Block 500: current = 0x5327, required = 0x5327 BBED> p chkval_kcbh ub2 chkval_kcbh
Oracle数据库技术服务方案

Oracle数据库技术服务方案(V1.0)Oracle技术服务方案书目录前言 ..................................................................... ..................................................... 3 1(数据库系统当前存在的主要问题 ......................................................................3 1.1性能存在严重缺陷 ..................................................................... .................... 3 1.2备份不充分 ..................................................................... ................................ 3 1.3数据库版本有升级需要 ..................................................................... ............. 3 1.4 DBA培训不足 ..................................................................... ........................... 3 2.技术服务方案 ..................................................................... ................................... 3 2.1数据库性能优化 ..................................................................... ........................ 4 2.2备份恢复解决方案 ......................................................................................... 4 2.3数据库系统升级 ..................................................................... ........................ 5 2.4 ORACLE故障解决方案 ..................................................................... ............... 6 2.5 DBA技术培训 ..................................................................... ........................... 6 3.技术服务方式 ..................................................................... ................................... 7 3.1电话支持 ..................................................................... .................................... 7 3.2远程访问 ..................................................................... .................................... 7 3.3 现场服务 ..................................................................... ................................... 7 3.4 EMAIL服务 ..................................................................... ................................. 7 3.5印刷品信息 ..................................................................... ................................ 7 3.6用户访问 ..................................................................... (8)第 2 页/总 8 页Oracle技术服务方案书前言**客户采用Oracle数据库系统进行相关信息的存储管理。
oracle flash back原理

oracle flash back原理Oracle Flashback是一种数据库恢复和查询技术,它可以基于时间或者特定条件,将数据库恢复到过去的某个状态。
本文将详细介绍Oracle Flashback的原理和实现方式。
现代数据库面临着日益增长的数据量和日志的快速变化。
数据库管理员需要能够在数据损坏或删除时快速恢复数据库,并且能够进行详细的查询和分析操作。
Oracle Flashback技术提供了一种可靠且高效的解决方案,使管理员能够快速恢复数据库,追溯数据变更历史和查询特定时刻的数据状态。
【1. Oracle Flashback的基本原理】Oracle Flashback的原理是通过使用Undo数据和Redo数据来实现数据的恢复和查询。
Undo数据是事务发生前的数据副本,也称为回滚段。
当一个事务发生时,Oracle数据库将当前的数据状态复制一份,称为Undo数据。
在事务执行过程中,所有的修改操作都是在Undo数据上进行的,并且还会保存被修改的数据的一个副本。
这样,当需要恢复到过去的某个时刻时,可通过Undo数据将数据库还原到该时刻的状态。
Redo数据是在数据库中发生修改操作时,记录这些操作的数据。
当数据库发生故障或者需要进行恢复时,通过Redo数据可以将数据库恢复到最近的一次备份或者故障前的状态。
【2. Oracle Flashback的实现方式】Oracle提供了多种方式来实现Flashback技术,包括Flashback Query、Flashback Transaction、Flashback Table、Flashback Database等。
下面分别介绍这些实现方式的原理和使用方法。
(1) Flashback QueryFlashback Query是一种基于时间点查询的技术,可以在一个事务中查询到过去某个时间点的数据库状态。
它通过读取Undo数据和Redo 数据,将数据库恢复到指定时间点的状态,然后执行查询操作。
oracle 灾备方案

Oracle 灾备方案1. 引言随着企业对数据安全和业务连续性的需求不断增加,灾备方案的设计和实施变得至关重要。
Oracle作为一种流行的关系数据库管理系统(RDBMS),为企业提供了可靠的数据存储和管理解决方案。
本文档将介绍Oracle灾备方案的基本原理和常见实施方法。
2. 灾备概述灾备(Disaster Recovery)是指为了减少灾难发生时对业务造成的影响而采取的预防和恢复措施。
Oracle灾备方案旨在确保企业的关键数据和系统能够在灾难发生时保持稳定和可用。
3. Oracle 灾备架构Oracle灾备架构通常由两个关键组件组成:主数据库和备份数据库。
主数据库用于处理实时事务和数据更新,而备份数据库则用作主数据库的容灾备份。
下面是常用的Oracle灾备架构类型:3.1. 同城双机房在同一个城市的两个不同机房建立主备数据库,主数据库负责处理业务操作,而备份数据库作为冷备份与主数据库保持数据同步。
主备数据库通过双向数据传输进行同步,以确保数据的一致性。
3.2. 异地容灾异地容灾方案是指将主数据库和备份数据库部署在不同的地理位置上。
这种架构适用于对数据安全和业务连续性要求更高的企业。
主数据库和备份数据库通过网络进行数据同步,并通过自动故障切换实现业务的持续运行。
4. Oracle 灾备技术Oracle提供了多种灾备技术和工具来保证数据的安全和可用性。
以下是一些常见的Oracle灾备技术:4.1. 数据库复制数据库复制是指将数据从一个数据库复制到另一个数据库的过程。
Oracle提供了多种数据复制技术,包括物理复制和逻辑复制。
物理复制使用数据库日志来进行数据同步,而逻辑复制则通过SQL语句来实现数据同步。
4.2. 数据库备份和恢复数据库备份和恢复是灾备方案的基础。
Oracle提供了多种备份和恢复工具,包括RMAN(Recovery Manager)和Data Pump。
通过定期备份数据库,可以在数据意外丢失或损坏时恢复数据。
oracle 基础 体系结构 底层原理

oracle 基础体系结构底层原理Oracle是一种关系数据库管理系统(RDBMS),具有多层次的体系结构。
底层原理:Oracle数据库的底层原理包括以下几个方面:1. 数据存储:Oracle将数据以表的形式存储在数据文件中。
数据文件是操作系统上的一个物理文件,用于持久性存储数据库的数据。
每个数据文件再细分为一组大小固定的数据块,通常为8KB。
数据块是数据库存储单位的最小单元,用于存储表中的数据。
2. 数据缓存:Oracle使用SGA(System Global Area)作为数据缓存,用于存放数据库缓存的数据块。
SGA由多个组件组成,包括数据库缓冲区(Database Buffer Cache)、共享池(Shared Pool)、重做日志缓冲区(Redo Log Buffer)等。
SGA中的数据被频繁使用,可以提高数据库的访问速度。
3. 事务处理:Oracle使用ACID(原子性、一致性、隔离性、持久性)事务模型来保证数据库的可靠性和一致性。
每个事务被视为一个独立的工作单元,要么完全执行,要么完全回滚。
通过使用锁机制和多版本并发控制(MVCC)来实现事务的隔离性。
4. 查询优化:Oracle使用CBO(Cost-Based Optimizer,基于成本的优化器)来选择最优的执行计划。
CBO通过估算各种执行路径的成本,并选择成本最低的执行计划。
为了实现这一点,CBO需要统计和分析数据库中的数据分布、数据相关性和查询语句的特性。
5. 日志和恢复:Oracle通过重做日志(Redo Log)和恢复日志(Undo Log)来保证数据库的持久性和可恢复性。
重做日志记录数据库的修改操作,以便在发生故障时进行恢复。
恢复日志用于回滚无效或中断的事务,以维护数据库的一致性。
综上所述,Oracle的底层原理涵盖了数据存储、数据缓存、事务处理、查询优化、日志和恢复等方面,这些原理共同构成了Oracle数据库的基础体系结构。
oracle中文使用手册

oracle中文使用手册Oracle是一款功能强大的关系型数据库管理系统,广泛应用于企业数据管理和应用开发领域。
本手册将详细介绍Oracle数据库的基本概念、常用命令和操作方法,以帮助初学者快速上手和熟练使用Oracle。
1. Oracle简介Oracle是美国Oracle公司开发的一种关系型数据库管理系统。
它是目前企业级应用系统首选的数据库产品之一,被广泛应用于各个行业的数据管理和应用开发中。
Oracle具有可靠性高、性能优异、安全性强等特点,成为大型企业数据处理的首选。
2. 安装与配置在开始使用Oracle之前,首先需要进行安装和配置。
可以从Oracle官方网站下载安装程序,根据提示进行安装。
安装完成后,需要进行一些基本的配置,如创建数据库实例、设置监听器等。
详细的安装和配置过程可以参考Oracle官方提供的文档或手册。
3. 数据库连接与登录使用Oracle数据库前,需要先进行数据库连接和登录。
可以使用SQL*Plus命令行工具或Oracle SQL Developer等图形化界面工具来进行连接和登录。
在连接时需要提供数据库的主机名、端口号和SID等信息,以及合法的用户名和密码。
连接成功后,即可开始对数据库进行操作。
4. SQL基本操作SQL是结构化查询语言,用于在关系型数据库中进行数据的增删改查等操作。
下面介绍一些常用的SQL命令:- 创建表: 使用CREATE TABLE语句可以创建数据表,并指定表的字段、数据类型、约束等信息。
- 插入数据: 使用INSERT INTO语句可以向表中插入数据。
- 更新数据: 使用UPDATE语句可以更新表中的数据。
- 删除数据: 使用DELETE FROM语句可以删除表中的数据。
- 查询数据: 使用SELECT语句可以查询表中的数据。
5. 数据库事务和锁机制数据库事务是指对数据库进行的一系列操作,要么全部执行成功,要么全部不执行。
Oracle提供了事务管理机制,可以确保数据库的一致性和完整性。
oraclerman管理方式下的热备份及恢复
数据丢失问题及解决方案
硬件故障
如硬盘故障、存储设备故障等,可能导致数据丢失。
软件故障
如数据库崩溃、软件错误等,也可能导致数据丢失。
数据丢失问题及解决方案
• 人为错误:如误删除数据、误修改数据等,也可能导致数据丢失。
数据丢失问题及解决方案
配置通道,设置备份设备 (例如磁盘、磁带等)和 相关参数。
创建RMAN备份
使用RMAN命令行工具执行 备份操作。
选择要备份的数据库、表空 间、数据文件等。
02
01
指定备份类型(完全、增量
等)。
03
设置备份文件的存储位置和 名称。
04
05
执行备份命令,监控备份过 程,确保备份成功完成。
监控备份过程
解决方案
建立数据恢复计划,以便在 数据丢失时能够快速恢复。
定期进行数据备份,确保数 据安全。
加强系统监控和安全措施, 防止人为错误导致的数据丢 失。
THANKS FOR WATCHING
感谢您的观看
01 在RMAN客户端中查看备份进度和状态。
02
检查备份日志文件,了解备份过程中的任 何错误或警告信息。
03
定期检查备份文件的完整性,确保备份数 据可用。
04
根据需要,可以设置自动备份计划,定期 自动执行备份操作。
03 Oracle RMAN热恢复操 作
恢复数据库
数据库恢复
在RMAN中,可以使用RESTORE命令来恢复数据库。RESTORE命令用于将数据库文件从备份中提取出来,并将其放 置在数据库的原始位置或指定的新位置。
方案
01 Oracle RMAN热备份介 绍
oracle database replay 原理
oracle database replay 原理(实用版)目录1.Oracle Database Replay 简介2.Oracle Database Replay 原理3.Oracle Database Replay 的应用场景4.Oracle Database Replay 的优势与不足5.总结正文【1.Oracle Database Replay 简介】Oracle Database Replay 是 Oracle 数据库提供的一种复制解决方案,它可以将一个或多个源数据库中的数据和事务复制到目标数据库。
通过使用 Oracle Database Replay,用户可以实现在不同数据库之间同步数据和事务,满足数据迁移、数据备份和恢复等需求。
【2.Oracle Database Replay 原理】Oracle Database Replay 的基本原理是基于 Oracle 数据库的复制技术,主要包括以下三个组件:1.源数据库(Source Database):源数据库是指需要将其数据和事务复制到目标数据库的数据库。
在源数据库上,Oracle Database Replay 会捕获并记录数据库中的事务,包括数据修改、删除和插入等操作。
2.复制服务器(Replication Server):复制服务器是 Oracle Database Replay 中的核心组件,负责将从源数据库捕获的事务处理并传递给目标数据库。
复制服务器会将源数据库中的事务转换为可执行的 SQL 语句,并将这些 SQL 语句发送到目标数据库执行。
3.目标数据库(Target Database):目标数据库是指接收源数据库复制过来的数据和事务的数据库。
在目标数据库上,Oracle Database Replay 会执行复制服务器发送过来的 SQL 语句,完成数据和事务的复制。
【3.Oracle Database Replay 的应用场景】Oracle Database Replay 可以应用于以下场景:1.数据库迁移:将数据从一个数据库迁移到另一个数据库,例如从旧版本的 Oracle 数据库迁移到新版本的 Oracle 数据库。
oracle rollback用法
oracle rollback用法Oracle是世界著名的数据库管理系统,并且十分适用于企业级应用场景,其安全性和稳定性都得到了广泛的听证。
在使用Oracle数据库的过程中,很多开发者会用到Oracle Rollback功能,那么究竟什么是Oracle Rollback,它的用法又是怎样的呢?下面将为大家一一阐述。
1、什么是Oracle Rollback?在数据库管理系统中,rollback操作是非常常见的。
它可以撤销或恢复之前的一些操作,让数据恢复到之前的状态。
若存在多个操作,那么rollback也可以仅撤销其中的某一次,以达到部分数据恢复的效果。
Oracle Rollback指的是数据库中回退有关操作的一组日志记录,这些记录通常储存在内存中,以确保在发生故障时,系统可以尝试恢复操作。
2、Oracle Rollback的作用是什么?Oracle Rollback主要用于事务控制中,它的作用是保证事务操作的原子性和一致性。
在实际的开发过程中,有些操作可能会由于意外情况或者其他原因,导致事务执行失败或者无法正常提交,此时就会用到Oracle Rollback,将当前的事务撤销并恢复到原来的状态,以避免数据的不一致性和错误。
Oracle Rollback还可以作为错误处理机制的组成部分,可以帮助开发者快速定位并解决问题,并保障数据的完整性。
3、Oracle Rollback的使用方法?Oracle Rollback常常需要与事务相关联,因此,我们需要首先开启一个事务,在事务中对数据库进行相应的操作,如果操作成功,则可以提交事务,将对数据库的修改永久保存;如果操作失败,则可以通过Rollback命令撤销之前的操作,使得数据库恢复到操作之前的状态。
下面是一个Oracle Rollback的简单实例:我们可以通过下面的SQL语句来创建一个用于测试的表格:CREATE TABLE testtable (id INTEGER PRIMARY KEY,name VARCHAR2(50) NOT NULL,age NUMBER(3) NOT NULL);接下来,我们在事务中插入一行数据:BEGININSERT INTO testtable(id, name, age) values(1, '张三', 26);COMMIT;END;如果现在我们想要删除这一行数据,可以按照如下步骤进行:BEGINDELETE FROM testtable WHERE id=1; -- 删除数据ROLLBACK; -- 回滚--COMMIT; -- 提交END;执行DELETE操作后,我们发现数据丢失了,那么这个时候我们可以通过ROLLBACK命令来回滚数据,让数据恢复到之前的状态。
oracle重做日志文件和归档日志
数据库恢复的原理
当数据库发生故障时,可以利用重做 日志文件来进行恢复。Oracle会根据 重做日志文件中的记录,重新执行对 数据库所做的更改,从而将数据库恢 复到一致的状态。
04 Oracle重做日志文件和归 档日志的管理和维护
日志文件的备份与恢复
备份策略
制定定期备份和增量备份策略,确保重做日志文件和归档日志的安全。
恢复方法
在发生故障时,根据备份情况选择适当的恢复方法,如全量恢复或增量恢复。
日志文件的清理与维护
清理过期日志
定期清理过期或不再需要的日志文件 ,释放存储空间。
Oracle重做日志文件和归档日志
contents
目录
• Oracle重做日志文件 • 归档日志 • Oracle重做日志文件和归档日志的关系 • Oracle重做日志文件和归档日志的管理
和维护 • Oracle重做日志文件和归档日志的故障
处理
ቤተ መጻሕፍቲ ባይዱ
01 Oracle重做日志文件
重做日志文件的作用
数据恢复
THANKS FOR WATCHING
感谢您的观看
存储容量
需要合理规划存储空间,确保有足够的空间存储归档日志文件,避 免空间不足导致数据库故障。
归档日志的恢复
恢复方法
当数据库发生故障时,可以使用归档日志进行恢复。可以选择完全恢复或部分恢复,根据需要选择相应的归档日志文 件。
恢复过程
在恢复过程中,需要按照时间顺序应用归档日志文件,确保数据的一致性。可以使用RMAN(Oracle Recovery Manager)进行自动恢复或手动恢复。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ORACLE数据库事务处理和故障恢复 一、并发控制 数据库是一个共享资源,可为多个应用程序所共享。这些程序可串行运行,但在许多情况下,由于应用程序涉及的数据量可能很大,常常会涉及输入/输出的交换。为了有效地利用数据库资源,可能多个程序或一个程序的多个进程并行地运行,这就是数据库的并行操作。在多用户数据库环境中,多个用户程序可并行地存取数据库,如果不对并发操作进行控制,会存取不正确的数据,或破坏数据库数据的一致性。 1) 数据库不一致的类型 ◎ 不一致性 在一事务期间,其它提交的或未提交事务的修改是显然的,以致由查询所返回的数据集不与任何点相一致。 ◎ 不可重复读 在一个事务范围内,两个相同查询将返回不同数据,由于查询注意到其它提交事务的修改而引起。 ◎ 读脏数据 如果事务T1将一值(A)修改,然后事务T2读该值,在这之后T1由于某种原因撤销对该值的修改,这样造成T2读取的值是脏的。 ◎ 丢失更改 在一事务中一修改重写另一事务的修改。 ◎ 破坏性的DDL操作 在一用户修改一表的数据时,另一用户同时更改或删除该表。
2)封锁 在多用户数据库中一般采用某些数据封锁来解决并发操作中的数据一致性和完整性问题。封锁是防止存取同一资源的用户之间破坏性的干扰的机制,该干扰是指不正确地修改数据或不正确地更改数据结构。 在多用户数据库中使用两种封锁:排它(专用)封锁和共享封锁。排它封锁禁止相关资源的共享,如果一事务以排它方式封锁一资源,仅仅该事务可更改该资源,直至释放排它封锁。共享封锁允许相关资源可以共享,几个用户可同时读同一数据,几个事务可在同一资源上获取共享封锁。共享封锁比排它封锁具有更高的数据并行性。 在多用户系统中使用封锁后会出现死锁,引起一些事务不能继续工作。当两个或多个用户彼此等待所封锁数据时可发生死锁。
3) ORACLE多种一致性模型。 ORACLE利用事务和封锁机制提供数据并发存取和数据完整性。在一事务内由语句获取的全部封锁在事务期间被保持,防止其它并行事务的破坏性干扰。一个事务的SQL语句所作的修改在它提交之后所启动的事务中才是可见的。在一事务中由语句所获取的全部封锁在该事务提交或回滚时被释放。 ORACLE在两个不同级上提供读一致性:语句级读一致性和事务级一致性。ORCLE总是实施语句级读一致性,保证单个查询所返回的数据与该查询开始时刻相一致。所以一个查询从不会看到在查询执行过程中提交的其它事务所作的任何修改。为了实现语句级读一致性,在查询进入执行阶段时,在注视SCN的时候为止所提交的数据是有效的,而在语句执行开始之后其它事务提交的任何修改,查询将是看不到的。 ORACLE允许选择实施事务级读一致性,它保证在同一事务内所有查询的数据
4)封锁机制 ORACLE自动地使用不同封锁类型来控制数据的并行存取,防止用户之间的破坏性干扰。ORACLE为一事务自动地封锁一资源以防止其它事务对同一资源的排它封锁。在某种事件出现或事务不再需要该资源时自动地释放。 ORACLE将封锁分为下列类: ◎ 数据封锁:数据封锁保护表数据,在多个用户并行存取数据时保证数据的完整性。数据封锁防止相冲突的DML和DDL操作的破坏性干扰。DML操作可在两个级获取数据封锁:指定行封锁和整个表封锁,在防止冲突的DDL操作时也需表封锁。当行要被修改时,事务在该行获取排它数据封锁。表封锁可以有下列方式:行共享、行排它、共享封锁、共享行排它和排它封锁。 ◎ DDL封锁(字典封锁) DDL封锁保护模式对象(如表)的定义,DDL操作将影响对象,一个DDL语句隐式地提交一个事务。当任何DDL事务需要时由ORACLE自动获取字典封锁,用户不能显式地请求DDL封锁。在DDL操作期间,被修改或引用的模式对象被封锁。 ◎ 内部封锁:保护内部数据库和内存结构,这些结构对用户是不可见的。
5)手工的数据封锁 下列情况允许使用选择代替ORACLE缺省的封锁机制: ◎ 应用需要事务级读一致或可重复读。 ◎ 应用需要一事务对一资源可排它存取,为了继续它的语句,具有对资源排它存取的事务不必等待其它事务完成。 ORACLE自动封锁可在二级被替代:事务级各系统级。 ◎ 事务级:包含下列SQL语句的事务替代ORACLE缺省封锁:LOCK TABLE命令、SELECT…FOR UPDATE命令、具有READ ONLY选项的SET TRANSACTIN命令。由这些语句所获得的封锁在事务提交或回滚后所释放。 ◎ 系统级:通过调整初始化参数SERIALIZABLE和REO-LOCKING,实例可用非缺省封锁启动。该两参数据的缺省值为: SERIALIZABLE=FALSE ORW-LOCKING=ALWAYS
二、数据库后备和恢复 当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。因此当发生上述故障后,希望能重新建立一个完整的数据库,该处理称为数据库恢复。恢复子系统是数据库管理系统的一个重要组成部分。恢复处理随所发生的故障类型所影响的结构而变化。
1) 恢复数据库所使用的结构 ORACLE数据库使用几种结构对可能故障来保护数据:数据库后备、日志、回滚段和控制文件。 数据库后备是由构成ORACLE数据库的物理文件的操作系统后备所组成。当介质故障时进行数据库恢复,利用后备文件恢复毁坏的数据文件或控制文件。 日志,每一个ORACLE数据库实例都提供,记录数据库中所作的全部修改。一个实例的日志至少由两个日志文件组成,当实例故障或介质故障时进行数据库部分恢复,利用数据库日志中的改变应用于数据文件,修改数据库数据到故障出现的时刻。数据库日志由两部分组成:在线日志和归档日志。 每一个运行的ORACLE数据库实例相应地有一个在线日志,它与ORACLE后台进程LGWR一起工作,立即记录该实例所作的全部修改。在线日志由两个或多个预期分配的文件组成,以循环方式使用。 归档日志是可选择的,一个ORACLE数据库实例一旦在线日志填满后,可形成在线日志的归档文件。归档的在线日志文件被唯一标识并合成归档日志。 回滚段用于存储正在进行的事务(为未提交的事务)所修改值的老值,该信息在数据库恢复过程中用于撤消任何非提交的修改。 控制文件,一般用于存储数据库的物理结构的状态。控制文件中某些状态信息在实例恢复和介质恢复期间用于引导ORACLE。
2) 在线日志 一个ORACLE数据库的每一实例有一个相关联的在线日志。一个在线日志由多个在线日志文件组成。在线日志文件填入日志项,日志项记录的数据用于重构对数据库所作的全部修改。后台进程LGWR以循环方式写入在线日志文件。当当前的在线日志文件写满后,LGWR写入到下一可用在线日志文件当最后一个可用的在线日志文件的检查点已完成时即可使用。如果归档不实施,一个已填满的在线日志文件一当包含该在线日志文件的检查点完成,该文件已被归档后即可使用。在任何时候,仅有一个在线日志文件被写入存储日志项,它被称为活动的或当前在线日志文件,其它的在线日志文件为不活动的在线日志文件。 ORCLE结束写入一在线日志文件并开始写入到另一个在线日志文件的点称为日志开关。日志开关在当前在线日志文件完全填满,必须继续写入到下一个在线日志文件时总出现,也可由DBA强制日志开关。每一日志开关出现时,每一在线日志文件赋给一个新的日志序列号。如果在线日志文件被归档,在归档日志文件中包含有它的日志序列号。 ORACLE后台进程DBWR(数据库写)将SGA中所有被修改的数据库缓冲区(包含提交和未提交的)写入到数据文件,这样的事件称为出现一个检查点。因下列原因实现检查点: ◎ 检查点确保将内存中经常改变的数据段块每隔一定时间写入到数据文件。由于DBWR使用最近最少使用算法,经常修改的数据段块从不会作为最近最少使用块,如果检查点不出现,它从不会写入磁盘。 ◎ 由于直至检查点时所有的数据库修改已记录到数据文件,先于检查点的日志项在实例恢复时不再需要应用于数据文件,所以检查点可加快实例恢复。 虽然检查点有一些开销,但ORACLE既不停止活动又不影响当前事务。由于DBWR不断地将数据库缓冲区写入到磁盘,所以一个检查点一次不必写许多数据块。一个检查点保证自前一个检查点以来的全部修改数据块写入到磁盘。检查点不管填满的在线日志文件是否正在归档,它总是出现。如果实施归档,在LGWR重用在线日志文件之前,检查点必须完成并且所填满的在线日志文件必须被归档。 检查点可对数据库的全部数据文件出现(称为数据库检查点),也可对指定的数据文件出现。下面说明一下什么时候出现检查点及出现什么情况: ◎ 在每一个日志开关处自动地出现一数据库检查点。如果前一个数据库检查点正在处理,由日志开关实施的检查点优于当前检查点。 ◎ 初始化参数据LOG-CHECKPOINT-INTERVAL设置所实施的数据库检查点,当预定的日志块数被填满后(自最后一个数据库检查点以来),实施一数据库检查点。另一个参数LOG-CHECKPOINT-TIMEOUT可设置自上一个数据库检查点开始之后指定秒数后实施一数据库检查点。这种选择对使用非常大的日志文件时有用,它在日志开头之间增加检查点。由初始化参数所启动的数据库检查点只有在前一个检查点完成后才能启动。 ◎ 当一在线表空间开始后备时,仅对构成该空间的数据文件实施一检查点,该检查点压倒仍在进行中的任何检查点。 ◎ 当DBA使一表空间离线时,仅对构成该表空间的在线文件实施一检查点。 ◎ 当DBA以正常或立即方式关闭一实例时,ORACLE在实例关闭之前实施一数据库检查点,该检查点压倒任何运行检查点。 ◎ DBA可要求实施一数据库检查点,该检查点压倒任何运行检查点。
检查点机制:当检查点出现时,检查点后台进程记住写入在线文件的下一日志行的位置,并通知数据库写后台进程将SGA中修改的数据库缓冲区写入到磁盘上的数据文件。然后由CKPT修改全部控制文件和数据文件的标头,反映该最后检查点。当检查点不发生,DBWR当需要时仅将最近最少使用的数据库缓冲区写入磁盘,为新数据准备缓冲区。 镜象在线日志文件:为了安全将实例的在线日志文件镜象到它的在线日志文件ORACLE提供镜象功能。当具有镜象在线日志文件时,LGWR同时将同一日志信息写入到多个同样的在线日志文件。日志文件分成组,每个组中的日志文件称为成员,每个组中的全部成员同时活动,由LGWR赋给相同的日志序列号。如果使用镜象在线日志,则可建立在线日志文件组,在组中的每一成员要求是同一大小。 镜象在线日志的机制:LGWR总是寻找组的全部成员,对一组的全部成员并行地写,然后转换到下一组的全部成员,并行地写。