Oracle数据库RMAN备份与恢复 下载本文

内容发布更新时间 : 2024/5/16 2:20:04星期一 下面是文章的全部内容请认真阅读。

龙源期刊网 http://www.qikan.com.cn

Oracle数据库RMAN备份与恢复

作者:史斌

来源:《电脑知识与技术》2012年第21期

摘要:针对Oracle数据库,说明备份与恢复的重要性,讨论了如何定制恰当的备份策略,以RMAN为例,分别从改变数据库的归档模式、创建RMAN用户并授权,创建恢复目录并注册目标数据库,备份与恢复数据库文件几个方面探讨RMAN恢复管理器的使用。 关键词: Oracle;备份策略; RMAN

中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)21-5037-03

数据库备份是数据库恢复至关重要的一步,能够进行什么样的恢复依赖于有什么样的备份,备份的好坏直接影响数据库恢复的精确性和及时性。

备份和恢复是两个互相联系的概念,备份和恢复的目的是为了保证在各种故障发生后,数据库中的数据都能从错误状态恢复到某种逻辑一致的状态。Oracle提供了物理备份和逻辑备份两种方式。其中RMAN(Recovery Manager)技术是DBA常用的备份技术。 1 RMAN备份特点

RMAN是ORACLE提供的恢复和备份工具,是随Oracle服务器软件一同安装的工具软件,它可以用来备份和恢复数据库文件、归档日志和控制文件,用来执行完全或不完全的数据库恢复。与传统工具相比,RMAN具有独特的优势:跳过未使用的数据块。当备份一个RMAN备份集时,RMAN不会备份从未被写入的数据块,而传统的方式无法获知那些是未被使用的数据块。RMAN使用Oracle特有的二进制压缩模式,与传统备份的压缩方式相比,能够最大程度地压缩数据块中的一些典型数据。 2定制备份策略

正确的备份策略不仅能保证数据库服务器高效率高性能的运行和使用,还能确保恢复与备份的有效性和可靠性。

目前,Oracle的备份方法主要有全备份、增量备份和差分备份。全备份(Full Backup)是每次转储数据库全部数据,生成所有数据的备份。这种备份即占用时间又不经济,所以除非是小型数据库,一般情况对Oracle数据的备份不采用完全备份方式;增量备份(Incremental Backup)只转储上次转储后更新过的数据。全转储与增量转储相比,从恢复角度看,使用海量转储全备份得到的后备副本进行恢复往往更方便,但对于大型数据库,事务处理又十分频繁,所以增量转储方式更实用更有效;差分备份(Differential Backup)融合以上两种备份的优点,首先进行完全备份,其次在以后的每次备份中只备份每个数据文件较上次完全备份所更新的部分

龙源期刊网 http://www.qikan.com.cn

(差分数据),所以,数据文件损坏后,利用该时间点之前最近一次的完全备份进行恢复,然后再使用时间点A的差分数据即可完成所有数据的恢复。

在制定Oracle备份策略应时应注意根据不同企业,不同系统的特点定制不同备份策略。选择完全备份,增量备份,还是差分备份。另外,做好沟通工作,数据库管理员DBA需要使企业管理人员获知维护数据库的可用性的代价,因此首先需评估恢复需要的花费,以及若丢失数据给企业带来的损失。这一点,银行的数据库要求就极其严格,需要7* 24的可用性,那么备份重要性就高于其它任何工作。其次,对数据库中的数据进行重要程度的分类,作为确定备份频率的依据。即数据库系统都需全面保护,但要分主次,重要的数据要经常备份。再次需要考虑数据库变化的情况。对于经常进行insert,update,delete的表和表结构发生变化的表,应重点对待经常备份。对于查询比较多的表,更重要的工作则是做好查询优化。实际情况是对大部分的DBA来说,更会倾向多极备份:1)每半年做一个数据库的全备份(包括所有.dbf文件);2)每一个月做一次零级备份(不包含只读表空间);3)每个星期做一次一级备份;4)每天做一次二级备份。 3 RMAN应用 3.1数据库的备份模式

根据是否将联机重做日志文件进行归档,可以将Oracle数据库的日志操作模式分为NOARCHIVELOG(非归档)和ARCHIVELOG(归档)两种类型。

当建立数据库的时候,如果不指定日志操作模式,则默认的操作模式为

NOARCHIVELOG。NOARCHIVELOG是指不保留重做历史记录的日志操作模式,在这种模式下,如果进行日志切换,那么在不保留原有重做日志内容的情况下,日志组的新内容会直接覆盖其原有内容。ARCHIVELOG则保留重做日志的历史记录。

以下语句将数据库从NOARCHIVELOG状态转为ARCHIVELOG状态SHUTDOWN IMMEDIATE

STARTUP MOUNT /*数据库已装载,但并没有打开*/ ALTER DATABASE ARCHIVELOG ALTER DATABASE OPEN 3.2创建RMAN目录

1)为目录创建一个单独的表空间 SQL>alter database open;

龙源期刊网 http://www.qikan.com.cn

SQL> create tablespace rmants datafile ’c:\\rmants.ora’ size 20M ;

2)创建RMAN用户SQL>create user rman identified by rman default tablespace rmants temporary tablespace temp quota unlimited on rmants; 3)给RMAN授予权限

SQL>Grant connect,recovery_catalog_owner,resource to rman; 4)打开RMAN,连接到恢复目录数据库,如图1。 $>RMAN catalog rman/rman

图1进入RMAN,连接恢复目录数据库 5)创建恢复目录,如图2。

RMAN>Create catalog tablespace rmants. 图2创建RMAN恢复目录

恢复目录是RMAN在数据库中建立的一种由RMAN自动维护的存储对象,使用RMAN执行备份和恢复时RMAN将从目标数据库控制文件中获取数据库结构,归档日志等信息,它们将被存储在恢复目录中。 3.3注册目标数据库

恢复目录创建成功后,需要连接和注册目标数据库,如图3。目标数据库既需要备份、转储和恢复操作的数据库,一个恢复目录可以注册多个目标数据库,注册目标数据库的语句为: RMAN>connect target sys/oracle RMAN>Register database; 3.4 RMAN使用脚本来备份数据库 RMAN使用脚本来备份数据库经常包括:

1)备份整个数据库;2)备份一个表空间;3)备份归档日志。 该文分别以备份日志文件和数据文件为例: 举例1:备份数据文件: RMAN>