河南企起网站建设,网站网络推广方式方法,信邦建设工程有限公司网站,wordpress直达链接文章目录 一、基础知识1、体系结构详解2、Database Files 数据库文件3、Database Other Files 其他数据文件4、Dynamic Views 动态视图5、Large Pool6、DB Buffer Cache,DBWn7、Configuring Tablespaces 配置表空间8、Redo Log Buffer, LGWR9、Database Checkpoints 数据库检查… 文章目录 一、基础知识1、体系结构详解2、Database Files 数据库文件3、Database Other Files 其他数据文件4、Dynamic Views 动态视图5、Large Pool6、DB Buffer Cache,DBWn7、Configuring Tablespaces 配置表空间8、Redo Log Buffer, LGWR9、Database Checkpoints 数据库检查点10、Types of Checkpoints 检查点的类型11、CKPT Process CKPT进程12、Multiplexed Control Files 多路控制文件13、ARCn Archived Log Files ARCn 和存档日志文件14、Database Synchronization 数据库同步15、Phases forInstance Recovery 实例恢复阶段16、Tuning the Duration of IR/CR 调整IR/CR的持续时间17、Backup and Recovery lssues 备份和恢复问题18、Tuning the Phases of CR/IR 调整CR/IR的相位19、Fast-Start On-Demand Rollback 快速启动按需回滚20、Fast-Start Parallel Rollback FastStart并行回滚 二、基础操作1、查看数据库动态视图 Instance and Media Recovery Structures 实例和介质恢复结构 目标 掌握与恢复相关的Oracle进程、内存结构和文件了解检查点、重做日志文件和归档日志文件的重要性掌握优化实例恢复的方法 一、基础知识
1、体系结构详解 SGA Database buffer cache用于存储从数据文件读取的块的内存区域。数据由服务器进程读取到块中并由DBWn异步写入。Log buffer包含要写入重做日志的更改数据的前后映像副本的内存Large poolSGA中的一个可选区域为备份和恢复操作、I/O服务器进程以及共享服务器和 Oracle XA的会话内存提供大量内存分配。Shared pool存储SOL语句、PL/SOLprocedures和数据字典信息的解析版本Java pool在服务器内存中用于Java虚拟机JVM中所有特定于会话的Java代码和数据。 Background Processes 后台进程 Database writer(DBWn)将脏缓冲区从数据缓冲区缓存写入数据文件。此活动是异步的。Log writer (LGWR)将数据从重做日志缓冲区写入重做日志文件System monitor(SMON)执行自动实例恢复。在空间段不再使用时恢复它们。根据设置的参数合并可用空间的连续区域。Process monitor(PMON)清理用于正常终止的用户进程的连接/服务器进程。执行回滚并释放失败进程所占用的资源。Checkpoint(CKPT)将数据文件和控制文件的标头与当前重做日志和检查点编号同步Archiver (ARCn)(optional)自动复制已标记为存档的重做日志的过程。 User Server Process 用户和服务器进程 The User Process用户进程是在用户启动工具如SQL*Plus、Oracle Forms Developer、Oracle Reports Developer、Oracle Enterprise Manager等时创建的。此进程可能位于客户端或服务器上并为用户提供一个界面用于输入与数据库交互的命令。The Server Process服务器进程接受来自用户进程的命令并执行步骤来完成用户请求。如果数据库不在共享服务器配置中则在建立有效连接时会在包含实例的计算机上创建服务器进程。
2、Database Files 数据库文件
Oracle数据库由以下物理文件组成这些文件的格式都是二进制的
Datafiles数据的物理存储。每个数据库至少需要一个文件。此文件存储系统表空间。Redo logs包含更改数据的前后映像副本用于恢复目的。至少需要两组。Control files记录数据库的状态。物理结构和RMAN元数据Archive logs(optional)联机重做日志文件的物理副本。当数据库设置为存档日志模式时创建。用于恢复中。
3、Database Other Files 其他数据文件
Initialization parameter file初始化参数文件实例启动所需的存储参数数据类型为TEXTServer initialization parameter file服务器初始化参数文件存储实例启动所需的持久参数数据类型为二进制Password file(optional)密码文件可选存储可以启动关闭并恢复数据库的用户的信息数据类型为二进制
4、Dynamic Views 动态视图
Oracle服务器提供了许多标准视图来获取数据库和实例的信息。这些视图包括
V$SGA查询共享池、日志缓冲区、数据缓冲区的实例大小和固定的内存大小取决于操作系统V$INSTANCE查询实例的状态如实例模式、实例名称、启动时间和主机名V$PROCESS查询为实例创建的后台和服务器进程V$BGPROCESS查询为实例创建的后台进程V$DATABASE列出有关数据库的状态和恢复信息。它包括关于数据库名称、唯一数据库标识符、创建日期、控制文件创建日期和时间、最后一个数据库检查点和其他信息的信息。V$DATAFILE列出数据库中包含的数据文件的位置和名称。它包括与文件编号和名称、创建日期、状态(在线或离线)、启用 (只读、读写)、最后数据文件检查点、大小和其他信息有关的信息。
5、Large Pool
可配置为SGA中的单独内存区域用于 Oracle备份和恢复操作I/0服务器进程共享服务器的会话内存 由LARGE_POOL_SIZE参数确定大小 大池用于从共享内存中分配顺序的I/0缓冲区。对于I/0从站和甲骨文备份和恢复RDBMS分配的缓冲区大小为几百KB。 配置大型池可以防止RMAN与其他子系统争夺相同的内存。当您将DBWR_IO_SLAWS或BACKUP_TAPE_IO_SLAWS参数设置为模拟异步10时恢复管理器(RMAN)将使用大池进行备份和恢复。如果这两个参数都未启用那么甲骨文将从本地进程内存而不是共享内存分配备份缓冲区。因此不使用大池。如果设置了LARGE_POOL_SIZE那么甲骨文将尝试从大型池中获取内存。如果这个值不够大那么甲骨文不会尝试从共享池中获取缓冲区。如果没有设置LARGE_POOL_SIZE初始化参数那么甲骨文服务器将尝试从SGA中的共享池中分配共享内存缓冲区。 如果甲骨文无法获得足够的内存那么它从本地进程内存中获得1/0缓冲内存并向alert.log文件写入一条消息指示同步I/0用于备份。 6、DB Buffer Cache,DBWn
Function of the Database Buffer Cache 数据库缓冲区缓存的功能 数据库缓冲区缓存是SGA中用于存储最近使用的数据块的区域服务器进程从数据文件中读取表、索引和撤消段并在需要时对缓冲区缓存中的数据块进行更改Oracle服务器使用最近最少使用 (LRU) 算法来确定哪些缓冲区可以覆盖以适应缓冲区缓存中的新块。 Function of the DBWn Background Process DBWn后台进程的功能 数据库写入程序进程DBWn将脏缓冲区从数据库缓冲区缓存写入数据文件。它确保数据库缓冲区缓存中有足够数量的可用缓冲区当服务器进程需要从数据文件中读取块时可以覆盖的缓冲区。数据库编写器定期同步数据库缓冲区缓存和数据文件:这是在各种情况下触发的检查点事件。虽然一个数据库写入进程对于大多数系统来说已经足够了但是如果您的系统需要大量修改数据您可以配置其他进程(DBW1到DBW9)来提高写入性能。这些额外的数据库写入进程在单处理器系统上是没有用的。
7、Configuring Tablespaces 配置表空间
表空间包含一个或多个数据文件。重要的是要谨慎地创建表空间以提供灵活和可管理的备份和恢复策略。以下是表空间的非典型配置考虑到备份和恢复操作的要求
System: 如果系统和用户数据包含在不同的表空间中备份和恢复就更加灵活Temporary:如果包含临时段 (用于排序等) 的表空间丢失可以重新创建它而不是恢复它。Undo重要:备份撤销表空间的过程与备份任何其他读/写表空间的过程完全相同。由于自动撤消表空间对于恢复和读取一致性非常重要因此应该经常对其进行备份。Read-only data: 可以减少备份时间因为只有在将表空间设为只读时才必须备份表空间。Highly volatile data高度易失性数据重要:应该更频繁地备份该表空间同时减少恢复时间Index data: 应该创建只存储索引段的表空间。通常可以重新创建这些表空间而不是恢复它们。
8、Redo Log Buffer, LGWR
Function of the Redo Log Buffer 恢复日志缓冲区的功能 重做日志缓冲区是一个循环缓冲区它保存有关对数据库所做更改的信息。这些信息存储在重做条目中。重做条目包含重建或重做INSERT、UPDATE、DELETE、CREATE、ALTER或DROPoperation对数据库所做更改所需的信息。恢复条目用于数据库恢复如有必要。重做条目由Oracle服务器进程从用户的内存空间复制到重做日志缓冲区。 Function of the LGWR Background Process LGWR后台进程的功能 日志写入器 (LGWR) 将重做条目从重做日志缓冲区写入重做日志文件如下所示重做日志缓冲区已满三分之一时当超时发生时(每三秒钟)当有1MB的重做在DBWn将数据库缓冲区缓存中的修改块写入数据文件之前当一个事务提交 Redo Log Switches 在日志切换时当前重做日志组被分配一个日志序列号该日志序列号标识存储在该重做日志组中的信息并且也用于同步。日志切换发生在LGWR停止写入一个重做日志组并开始写入另一个重做日志组时当LGWR填充了一个日志文件组时将发生日志切换DBA可以使用ALTER SYSTEM SWITCH LOGFILE命令强制进行日志切换在日志开关处自动发生检查点。只要组中至少有一个成员可用处理就可以继续。如果成员损坏或不可用消息将写入LGWR跟踪文件和警报日志。
9、Database Checkpoints 数据库检查点
检查点用于确定应从何处开始恢复检查点位置-恢复开始的位置检查点队列-脏块的链接列表 Checkpoint Position 检查点位置 重做日志中开始恢复的位置称为检查点位置。在该点之前的所有引用数据块都已被DBWn写入磁盘。它被定义为它与重做日志结束之间的“距离”。它也可以被认为是检查点队列中第一个条目的“年龄“个按块第一次被弄脏的时间顺序排列的脏块链接列表。 Checkpoint Queue 检查点队列 检查点队列中的每个条目都包括数据块的标识符(即文件号和块号)和重做日志中第一次弄脏数据块的位置(称为重做字节地址或RBA)。它还包含重做日志中上次更改数据块的位置。检查点队列中的第一个条目标识数据库缓冲区缓存中最旧的脏块。DBWn按照检查点队列的顺序从缓冲区高速缓存写入块并在写入块时删除每个条目。 10、Types of Checkpoints 检查点的类型
Full checkpoint 完全检查点 写入所有脏缓冲区正常关机、立即关机或事务关机改变系统检查点 Incremental checkpoint (Fast-Start checkpoint) 增量检查点(快速启动检查点) 周期性写入只写最老的块 Partial checkpoint 部分检查点 属于表空间的脏缓冲区改变表空间开始备份更改表空间表空间脱机正常
11、CKPT Process CKPT进程
Checkpoint Process(CKPT)
检查点进程 (CKPT) 负责在检查点向DBWn发送信号并更新数据库的数据文件和控制文件以指示最近的检查点每隔三秒CKPT从控制文件中检查点队列中最老的条目中记录RBA。此RBA表示重做日志中的点在此点上实例恢复将在实例失败后开始。它可以这样做因为以前重做记录中表示的所有数据块都保证已被DBWn写入磁盘只有在日志切换的情况下CKPT才会将这些信息写入数据文件的头部。为了提高性能并不是所有的头文件都被一次写入而是以组的形式进行更新这被称为“懒写“日志开关不会强制将所有脏缓冲区写入磁盘
12、Multiplexed Control Files 多路控制文件
Control File Function 控制文件功能 控制文件是描述数据库结构的二进制文件。无论何时装载或打开数据库它都必须可由Oracle服务器进行写入。它的默认名称取决于操作系统。如果没有此文件则无法装载数据库并且需要恢复或重新创建控制文件。建议的配置是在不同的磁盘上至少有两个控制文件以最大限度地减少丢失一个控制文件的影响。 Control File Contents 控制文件内容 数据库名称数据库创建时间戳恢复所需的同步信息 (检查点和日志序列信息)数据文件和重做日志文件的名称和位置数据库的归档模式当前日志序列号恢复管理器备份元数据
13、ARCn Archived Log Files ARCn 和存档日志文件
Function of the Archive Background Process 归档后台处理的功能 ARCn进程是一个可选进程。启用后它会将重做日志文件归档到指定的存储区域。此过程对于设置为ARCHIVE LOG模式的数据库的备份、还原和恢复具有重要意义在这种模式下数据库每天24小时、每周7天都在运行ARCn进程在发生日志切换时启动并将最后一个(未归档的)重做日志组的一个成员复制到由一个或多个初始化参数指定的至少一个目标。 Archived Log Files 归档日志文件 当数据库设置为ARCHIVELOG模式时LGWR进程会等待在线重做日志文件归档手动或通过ARCn进程然后才能重用它们。如果联机重做日志文件已损坏则使用来自同一组的另一个成员。归档日志有利于备份和恢复过程因为 数据库备份与归档重做日志文件相结合可保证将所有提交的数据恢复到故障点可以在数据库联机时进行有效的数据库备份。 Archiving Considerations 归档注意事项 是否启用归档的选择取决于每个数据库的可用性和可靠性要求。归档日志可以存储在多个位置(双重或多个目标)因为它们对恢复至关重要。对于生产数据库建议将归档日志功能用于多个目的地。
14、Database Synchronization 数据库同步
所有数据文件(脱机和只读除外) 必须同步才能打开数据库。同步基于当前检查点编号。应用重做日志文件中记录的更改将同步数据文件。重做日志文件是由Oracle服务器自动请求的。
15、Phases forInstance Recovery 实例恢复阶段
实例恢复的步骤
Datafiles out-of-synch 数据文件不同步判断是否同步是否需要恢复Roll forward (redo) 向前回滚redo利用redo进行回滚把redo恢复并且恢复undoCommitted and non-committed data in files 文件中已提交和未提交的数据Roll back (undo) 向后回滚undo利用undo信息把没有提交的数据回滚掉Committed data in files 文件中的提交数据 所有数据同步只包含已经提交的数据
16、Tuning the Duration of IR/CR 调整IR/CR的持续时间
将实例和崩溃恢复的持续时间保持在用户指定的范围内的方法
设置初始化参数以影响恢复中涉及的重做日志记录和数据块的数量。调整重做日志文件的大小以影响检查点频率发出SQL语句以启动检查点并行化实例恢复操作 有几种方法可以用来将实例和崩溃恢复的持续时间保持在用户指定的范围内。快速启动故障恢复功能可用于控制实例恢复。这通过使前滚时间有界和可预测来减少前滚时间还消除了执行回滚所需的时间。快速启动故障恢复的基础是快速启动检查点体系结构。通过初始化参数指定完成恢复的前滚阶段的目标时间。重做日志文件的大小直接影响检查点。最小日志的大小越小Oracle越积极地将脏缓冲区写入磁盘以确保检查点的位置已提前到当前日志在日志完全填充之前以便可以重用。 17、Backup and Recovery lssues 备份和恢复问题
保护数据库不受多种类型故障的影响增加平均故障间隔时间(MTBF)减少平均恢复时间(MTTR)以最小化数据损失Initialization Parameters 初始化参数 FAST_START_MTTR_TARGET以秒为单位指定的预期MTTR V$INSTANCE_RECOVERY:实例恢复视图 用于监视限制恢复I/0的可用机制统计从这个视图计算哪个参数对检查点的影响最大
18、Tuning the Phases of CR/IR 调整CR/IR的相位
通过调整参数进行调优
调整前滚相位调整回滚阶段 Tuning the RFP往前滚 并行块恢复RECOVERY_PARALLELISM指定并发恢复进程的数量 Tuning the RBP往后滚 快速启动按需回滚快速启动并行回滚 19、Fast-Start On-Demand Rollback 快速启动按需回滚
遇到要回滚的数据的服务器进程执行以下操作:
回滚包含所雪行的块将进一步的恢复(可能是并行的) 移交给SMON
20、Fast-Start Parallel Rollback FastStart并行回滚 二、基础操作
1、查看数据库动态视图
此处对应基础知识的第4部分 连接数据库查看动态视图
SELECT * FROM V$SGA;Fixed Size是固定的大小Variable Size大小是可变的包括了Large pool、Shared pool、Java pool等Database Buffers用于存储从数据文件读取的块的内存区域这部分一般比较大Redo Buffers包含要写入重做日志的更改数据的前后映像副本的内存
SELECT * FROM V$SGASTAT;查看其他动态视图的方法也是这样的可以参考基础知识的第四部分查看其他动态视图