您现在的位置是:主页 > 数据库技术 > 数据库技术

Oracle恢复和介质恢复的方法是什么

IDCBT2022-01-07服务器技术人已围观

简介这篇文章主要介绍“Oracle恢复和介质恢复的方法是什么”,在日常操作中,相信很多人在Oracle恢复和介质恢复的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操

这篇文章主要介绍“Oracle恢复和介质恢复的方法是什么”,在日常操作中,相信很多人在Oracle恢复和介质恢复的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Oracle恢复和介质恢复的方法是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、恢复解决方案

错误类型及解决方案

错误分类

恢复解决方案

介质失败

如果是少量的块损坏,使用块介质恢复;如果是大量的块、数据文件、表空间的损坏,可能需要对损坏的数据文件或者表空间执行完全恢复;如果是归档Redo日志文件或者联机Redo日志文件的丢失,那么只需要不完全恢复方式。

逻辑损坏

如果是程序员错误导致出现的问题,可通过补丁应用修复问题。对于无法修复的问题,也可采用介质恢复手段来恢复数据。

用户错误

根据不同用户错误,选择不同的Flashback技术恢复,使用Flashback技术恢复用户错误是首选方案。如果Flashback不能很好的恢复数据再考虑使用介质恢复或者表空间时间点恢复。

注意:恢复依赖于备份,当生产环境中部署完成就应该确保有一次数据库的全库备份,且确保归档Redo日志被打开。

二、SCN时间机制

SCN(System Change Number,系统改变号)是Oracle内容非常重要的时间机制,一致性、数据恢复都与SCN有着非常密切的关系。Oracle启动时,也是通过SCN的验证来确认数据库是否需要执行实例恢复的。虽然RAC有多个实例,但是只有一个数据库,SCN是对应数据库级别的改变号,所以在不同的实例产生的SCN都必须是唯一的、有序的,这是由SCN生成器完成的工作。系统时间和SCN之间可以非常容易的相互转换,下面是系统时间和SCN相互转换的例子:

SQL> select timestamp_to_scn(sysdate) from dual;

TIMESTAMP_TO_SCN(SYSDATE)

-------------------------

               6980593

SQL> select scn_to_timestamp(6980593) from dual;

SCN_TO_ TIMESTAMP (6980593)

-------------------------

02-DES-13 11.12.21.000000000 PM

SQL>

以下为几种常见的SCN:

?  检查点SCN

查询当前最近的检查点SCN:

SQL> select checkpoint_change# from v$database;

CHECKPOINT_CHANGE#

------------------

        3.6555E+12

SQL>

每执行一次检查点就由CKPT进程来更新,这个SCN保存在控制文件中。检查点的执行能够确保检查点执行时刻数据的完整性和一致性。实例恢复也是从上一次检查点开始进行恢复,检查点执行的频率决定了Crash恢复或者实例恢复需要花费的时间。当发生日志切换或者请求的SGA空间不足等情况时就会触发检查点。发生检查点,DBWn进程会将所有的脏数据写回磁盘,从而能够确保已提交的一致性数据被写回磁盘。单个联机Redo日志文件越大,发生检查点的间隔时间可能越长,实例恢复的时间也相应地增长,日志文件的丢失也会导致更多的数据丢失。

标签:

很赞哦! ()

本栏推荐