您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 数据库 > 正文

针对Oracle数据库备份恢复的一些理解与总结

发表于:2017-04-19 作者:风哥 来源:51CTO学院

在当今信息化的数据时代,数据成为了政府和企事业单位最值钱的也是最有价值的东西,而最有价值的这些数据主要是存放在数据库当中, 因此针对IT管理或数据库维护人员来说,数据的备份就是IT部门的重中之重了。

Oracle示意图

在整个数据库市场,Oracle占据着全世界数据库市场份额的48%左右,同时Oracle占据着中国数据库市场份额的57%左右。因此可以说在Oracle数据库维护过程中,Oracle数据库备份与恢复也是重中之重的问题,虽然有很多时候数据库系统运行比较慢,但是对数据库的数据丢失来说,显然数据丢失的损失是最大的,也是一个企业的生命价值所在。下面风哥讲讲Oracle数据库备份与恢复的理解与体会。

一、物理备份与逻辑备份

数据就是数据的拷贝,这个拷贝可以用来重建数据库,备份可以分为物理备份与逻辑备份:

1.物理备份:是所有物理文件的一个副本,比如数据文件,日志文件,控制文件,归档文件等,这些文件都存在本地磁盘或相应的存储上面,而物理备份包括冷备份(非归档模式)或热备份(归档模式)。

2.逻辑备份:是将表、索引、存储过程等,可以使用oracler exp/expdp导出来的二进制文件,后面再通过Oracle的imp/impdp可以导入到数据库;可以说逻辑备份是对物理备份的一种补充吧,一般都是用在数据迁移上面。

二、关于备份恢复的工具

1.常用的是使用oracle rman来备份恢复,支持命令行及图形接口,可以通过第三方软件(NBU\LEGATO\TSM等)及磁带机进行备份,这个工具的功能非常强大;RMAN支持备份整个数据库、表空间、数据文件、控制文件、还有归档日志文件等,而且可以通过RMAN脚本来实现快捷的备份操作;RMAN支持增量备份,跳过部分块备份,还可以调整备份的速度;而且可以在备份的时候检测一些损坏的数据库,还可以通过多通道并发、限制IO的速度、单次备份的文件数等等来提高备份的性能。

2.其实是IMP/IMPDP、EXP/EXPDP来进行逻辑备份恢复,可以跨平台迁移,支持全库、用户、表级的备份与恢复,特别是在Oracle 10g以后,EXPDP与IMPDP备份的速度比较快,支持多并发。

3.可以使用oracle datagurad、oracle goldengate等产品来实现数据库容灾备份与数据复制及灾难后的恢复。

4.第三方工具,可以使用操作系统命令,也可以使用sqlplus,dul,bbed等工具来实现一些特殊情况下的备份与恢复。

三、数据库配置上的备份与恢复

1.控制文件多路复用

2.在线重做日志的镜像

3.归档模式下可以将同一归档备份到多个位置

4.ASM数据文件与磁盘组的镜像

5.利用操作系统与存储对数据文件进行镜像配置

6.ORACLE RAC配置信息的配置

7.利用硬件技术对数据文件的镜像

四、Oracle备份与恢复中比较重要的几类文件

1.数据文件

2.控制文件

3.重做联机日志文件

4.参数文件

5.归档日志文件

五、Oracle备份的介绍

1.完整备份与增量备份(差异增量与累计增量)

完整备份:一个或多个数据文件的完整副本,包括从备份开始的所有级的数据块。

增量备份:包含从最近一次备份以来被修改过或增加过的数据块。增量备份又分为0级增量备份、1级差异增量备份、1级累计增量备份,增量备份支持归档和非归档模式,而且只能使用RMAN的时候才可以实现增量备份。

差异增量:是备份上级及同级备份以来所有变化的数据块,差异增量是默认增量备份方式;

累计增量:是备份上级备份以来所有变化的数据块。

2.完全备份与非完全备份

完全备份:包括所有的数据文件、控制文件、参数文件、密码文件、在线重做日志文件、归档日志文件。

非完全备份:比如备份一个或多个数据文件、一个或多个表空间等,非完全备份只限于在归档模式下才有效。

3.脱机备份与联机备份

脱机备份:是在数据库关闭的时候发生的备份,又叫冷备份,是在一致性关闭数据库后,控制文件SCN与数据文件头部的SCN一致。

联机备份:是在数据库使用的情况下发生的备份,又称为非一致性备份或热备份,联机备份一个数据文件的SCN与控制文件不一致。联机备份可以是全备,也可以是部分备份,必须在归档模式下才可以完成。

六、Oracle恢复的介绍

数据库的恢复策略是使用最近一次备份来实现数据库的还原,然后使用归档日志和联机日志将数据库恢复到最新或特定的状态。

Oracle恢复主要分为还原与恢复。

还原:是从最近的备份文件中查找所需要的内容,并将其拷回到原来位置的过程称为还原。可以对基本数据库、表空间、数据文件、控制文件、参数文件进行还原。

恢复:在还原的基础上,使用归档日志文件和联机日志文件将数据库刷新到最新的SCN,使数据库保持一致性。

恢复:分实例恢复、崩溃恢复、介质恢复。

实例恢复:在RAC环境中,当一个实例崩溃后,可用的实例将自动使用联机日志来前滚已提交的事务,撤消未提交的事务并释放锁。实例恢复(instance recovery)最主要的3个阶段:利用重做日志文件cache recovery、open database、利用undo进行transaction recovery。

崩溃恢复:在单实例或多实例环境中,如果所有的实例崩溃,那么在崩溃恢复中,实例需要先打开数据库,然后执行恢复操作。崩溃恢复(Crash Recovery)这是由Oracle自动完成,无需手工干预。

介质恢复:介质恢复可以将整个数据库、一个数据文件、一个表空间文件、或一个日志文件还原到指定的时间点;介质恢复(Media Recovery)可以分为完全恢复或不完全恢复,RMAN支持完全介质恢复与不完全介质恢复,RMAN用到的基本命令是restore与recover。