oracle完全恢复,不是ORACLE恢复数据使用的结构
0.1并行恢复(7.1版)
并行恢复的目标是利用计算和I/O的并行机制来减少崩溃恢复、单实例恢复和介质恢复的时间。当同时恢复多个磁盘上的多个数据文件时,可以有效地减少恢复时间。
并行恢复架构
并行分区做两件事:
1.阅读重做日志。
2.应用变更向量。
步骤1不适合并行。重做日志必须按顺序读取,然后在媒体恢复中合并。所以这个任务是由一个进程完成的:读取重做日志的进程。
Step 2非常适合并行,所以把应用变更向量的任务委托给一组重做程序的下属进程。重做日志读取进程使用与并行查询相同的IPC机制(进程间通信机制)将更改向量发送到重做程序的从属进程。通过使用散列函数和数据块地址作为参数来分布改变向量。因此,每个重做进程只处理分配给其“桶”的更改向量。重做程序的从进程负责将数据块读入缓存,检查是否应用更改向量,并在必要时应用它。
该架构实现了数据块读取I/O和变化向量应用的并行性。它允许并行执行日志读取I/O和块读取I/O。此外,它还允许并行读取不同哈希桶中数据块的I/O。只要并行带来的收益大于流程管理和沟通带来的成本,恢复时间就有效减少。
10.1.2并联恢复系统初始化参数
并行恢复最大线程数
并行恢复最小线程数
这两个参数控制崩溃恢复或媒体恢复中重做程序的从属进程的数量。
并行实例恢复线程
此参数控制实例恢复中重做程序的从属进程的数量。
0.1.3介质恢复语法更改
recover命令添加了一个可选参数,用于指定重做程序的从属进程的数量。如果指定了此参数,默认参数PARALLEL_RECOVERY_MAX_THREADS的值将被覆盖。
RECOVER TABLESPACE命令添加了一个可选参数,用于指定重做程序的从属进程的数量。如果指定了此参数,默认参数PARALLEL_RECOVERY_MIN_THREADS的值将被覆盖。
recoverfile命令添加了一个可选参数,用于指定重做程序的从属进程的数量。如果指定了此参数,默认参数PARALLEL_RECOVERY_MIN_THREADS的值将被覆盖。
0.2重做日志校验和(7.2版)
日志校验和允许在归档之前检查日志是否损坏。目的是防止损坏的日志被复制(存档)。此功能将与一个新命令CLEAR LOGFILE结合使用,以清除损坏的在线日志,而不将其存档。
新的初始化参数LOG_BLOCK_CHECKSUM控制是否激活日志校验和功能。如果设置,每个日志块将计算一个值,并在从缓冲区写入磁盘之前将其放入日志块的头部。将来,校验和值将在存档或恢复过程中进行验证。如果验证发现此日志块的校验和值不正确,它将尝试读取此日志组的其他成员中的日志块(如果有其他成员)。如果所有成员都有不可避免的校验和错误,则日志读取操作会失败。
如果不可恢复的校验和错误导致日志无法存档,则该日志无法使用。最后一次日志切换和新日志的生成将被延迟。如果不采取任何措施,数据库将停止运行。clearfile命令提供了一种避免归档日志的方法。
0.3清除日志(7.2版)
如果在线日志组的所有成员丢失或损坏(例如由于校验和错误或介质错误等。).重做日志程序可能仍然正常工作,直到重新使用日志组。一旦所有线程的检查点超过日志,日志就可以重用。但是,在下列情况下重用会失败:
1.由于校验和错误,日志无法存档,导致日志无法重用。
2.日志切换失败。由于日志不可用(例如,由于介质故障),日志可能已存档或未存档。
alter clear log file命令用于解决上述情况中的非活动日志文件(即崩溃恢复不需要的日志文件)。Clearfile允许清除不活动的日志,例如丢弃和初始化,类似于先删除日志文件,然后再添加日志文件。在许多情况下,该命令可以避免不必要的数据库关闭或日志重置。
注意:清除日志文件不能用于清除故障恢复所需的在线日志(如具有“当前”或“活动”状态的日志)。如果这样的在线日志被损坏,您需要以非正常方式关闭数据库,然后进行不完全恢复,并使用重置日志的选项打开数据库。
使用“未归档”选项可以使日志清理过程顺利进行,即使日志文件尚未归档。在这种情况下,不允许删除日志文件。此外,清除日志文件允许处理以下情况:
1.线程中只有两个日志组。
2.所有日志组的成员都在介质故障中丢失或损坏。
3.要清除的日志是已关闭线程的当前日志。
在上述所有情况下,都不允许删除日志文件。
清除未归档的日志文件会使现有备份变得无用,因为恢复需要这些日志文件。因此,建议在清除未归档的日志后,立即对数据库进行完整备份。此外,当数据文件离线时,必须结合使用不可恢复的数据文件选项,并且需要日志文件在在线之前进行恢复。使用CLEAR LOGFILE命令中的UNRECOVERABLE DATAFILE选项,必须从数据库中删除脱机数据文件和相应的表空间,因为当该数据文件联机时恢复的日志将被清除而不会备份。
执行清除日志文件时,前台进程分为以下步骤:
1.检查崩溃恢复是否不需要该日志文件,并且可以清除该文件。
2.在控制文件中将日志标记为“正在清除”和“不需要归档”,这样日志文件就不能作为日志切换的候选成员。
3.重新创建一个新的日志文件,并用多个写块清除它(一个漫长的过程)。
4.重置“清除”标志。
如果前台进程在执行CLEAR LOGFILE命令的过程中终止,日志将不可用。重做日志程序将被延迟,并且数据库可能会停止,尤其是当日志被切换时,因为它必须等待检查点或归档完成。如果前台进程在执行CLEAR LOGFILE的时候真的死了,应该重新执行。另一种方法是删除已经部分清除的日志。Clearfile在被清除时也可能由于I/O错误而失败。解决方法是删除日志并添加另一个日志来替换它。
遵循第11章,Oracle恢复的内部原理(BBED)
* * * * * * * * *本博客所有内容均为原创。转载请注明作者和出处!**********
名称:guoyJoe
QQ: 252803295
电子邮件:oracledba_cn@hotmail.com
博客:http://blog.csdn.net/guoyJoe
ITPUB:http://www . ITPUB . net/space-uid-28460966 . html
OCM:http://education . Oracle . com/education/OTN/YGuo。html文件的后缀
_____________________________________________________________
添加小组验证问题:哪些SGA结构是必需的,哪些是可选的?否则,拒绝申请!
答案:http://blog.csdn.net/guoyjoe/article/details/8624392.
DSI核心搜索(QQ群):127149411
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。