ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle database 备份与恢复总结(1)

oracle database 备份与恢复总结(1)

原创 Linux操作系统 作者:axiang888 时间:2013-05-30 23:21:33 0 删除 编辑

恢复分类:

1.实例的恢复

2.介质的恢复

区别:实例的恢复是数据库运行过程中,随着实例的崩溃,内存中的数据丢失,我们需要通过联机日志记录的信息把脏数据恢复出来(recovery);介质恢复是指数据库中的文件损坏了,首先要转储备份文件,再这个文件的基础上recovery。


恢复又分为完全恢复和不完全恢复。

完全恢复:就是不丢数据的恢复。恢复到最后状态的redo。

不完全恢复又份两类:一类是,在做介质恢复时缺了某个日志,做不下去了,被迫做不完全恢复。另一类是主动选择做不完全恢复,可能再往后做是一个误操作,不想重做。

完全恢复的几个案例:有全库的,有表空间或数据文件级别的。为了提高数据库的高可读性,往往对于损坏的文件做完全恢复时,把这个文件offline,然后restore,recover。但对于统表空间和默认的undo表空间是不能offline的。系统表空间要在mount状态下恢复,然后在open。默认的undo表空间要切换下,把别的表空间切换成默认undo表空间,在对原默认undo表空间恢复。


    不完全恢复:

1)基于终止的不完全恢复:本来想做一个文件的完全恢复,但在中间有一个日志序列没了。把损坏的文件转储回来,还原到一个旧的状态,然后在往前recover的过程中,缺失一个日志停了下来,这时这个损坏的文件相对于其他文件就老了。根据数据库要一致的状态,有两种选择,要么把这个数据文件offline(不要了),要么大家全部往后退一步,转储所有的数据文件,一起recover,到你缺失的地方停下来。这时一种被动的不完全恢复

2)主动的不完全恢复,先日志挖掘,挖到你出错的时间点。转储所有文件,恢复到那个点停下来。分为基于时间和基于scn号的不完全恢复。还有一种是表空间被误删除:可能当前的控制文件不识别这个表空间,所以要把识别这个表空间的历史的控制文件转储回来,所以恢复时要加一个子句using backup controlfile。

最后,不管是哪种不完全恢复都是resetlogs打开数据库,然后还要做全备。


备份大的分类:

1.物理备份:对数据库文件里的blocks(数据块)进行备份,需要考虑数据的存储结构。

2.逻辑备份:把数据库里的数据抽出来,这种备份往往可以跨平台。


物理备份分为手工备份和rman备份。手工备份和rman备份都有一致性备份和非一致性备份的区别。


数据库的一致性:在open 数据库时,通过检查scn号是否相等,比较每一个数据文件是否是同步的(offline和read only 表空间除外),如果不同步。通过redo,recovery一致后再open,这个过程是数据库自动完成的。

一致性备份:数据库正常关闭,回到一致性的状态,我们把它复制出来。


非一致性备份(热备份):数据库一边运行一边备份。

热备份中手工备份与rman备份的区别:手工备份它的拷贝是通过系统做的,操作系统与oracle数据库的协调行不是很好,可能出现属于一个数据库的块,在复制时分多批次,造成块的冲突(不完整)。怎样解决的呢?当手工做一个热备份是,但凡发现有一个block有变化,要把之前的镜像的整个块丢到redo,作为这个块的基础状态。所以手工(备份)热备份时不要选择事物繁忙的时候,因为容易产生大量的redo。推荐逐个表空间做手工热备份。rman作为oracle自己的工具,就没有这样的问题。



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28937232/viewspace-762549/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2013-05-29

  • 博文量
    2
  • 访问量
    2246