1、使用恢复目录对数据库进行备份,以sys连接到rman实例,创建数据表空间,创建rcat用户并授权
(以下测试时单独新建了一个实例rman,也可以不用新建,跟目标数据库使用同一个实例。)
SQL> conn sys/rman@rman as sysdba;--最好单独创建一个新的实例rman,并使用sys用户连接到rman
已连接。
SQL> create tablespace rcatts datafile 'D:\rman\rman_data\rcatts.dbf' size 1024M;
表空间已创建。
SQL> create user rcat identified by rcat temporary tablespace temp
default tablespace rcatts quota unlimited on rcatts;
用户已创建。
SQL> grant connect, resource, recovery_catalog_owner to rcat;
授权成功。
SQL> exit
从 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开
2、使用上一步创建的rcat用户登录并创建恢复目录
C:\Users\Administrator>rman catalog=rcat/rcat@rman;
恢复管理器: Release 11.2.0.1.0 - Production on 星期二 10月 7 23:52:05 2014
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到恢复目录数据库
RMAN> create catalog;
恢复目录已创建
RMAN>
3、把目标数据库注册到恢复目录catalog中
RMAN> connect catalog rcat/rcat@rman;--连接到恢复目录数据库
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-06167: 已经连接
RMAN> connect target rusky/rusky@orcl;--连接目标数据库orcl,用户为rusky,密码为rusky
连接到目标数据库: ORCL (DBID=1385990360)
RMAN> register database;
注册在恢复目录中的数据库
正在启动全部恢复目录的 resync
完成全部 resync
RMAN>
4、备份数据库。
C:\Users\Administrator>rman target rusky/rusky@orcl catalog rcat/rcat@rman;
恢复管理器: Release 11.2.0.1.0 - Production on 星期日 10月 12 21:45:51 2014
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到目标数据库: ORCL
连接到恢复目录数据库
RMAN> configure default device type to disk;--可不用指定,使用默认。可使用show all 查看configure参数
RMAN> configure controlfile autobackup on;--默认值off,一般设置为on,即备份目标数据库的同时备份控件文件
RMAN> backup database plus archivelog;--备份数据库库的同时备份归档文件。(如果想单独备份归档文件,可使用命令:backup archivelog all;)
RMAN> exit;
5、上一步数据库已完全备份成功,可设置一个恢复的环境,如可关闭数据库并且删除所有的数据文件、归档日志、控制文件、参数文件等。
6、恢复数据库(使用catalog和nocatalog方法不同)
重新连接到恢复目录和目标数据库,并将数据库置于nomount状态。
RMAN> connect catalog rcat/rcat@rman;
RMAN> connect target rusky/rusky@orcl;
RMAN> startup nomount;
RMAN> restore archivelog all;
RMAN> restore controlfile; --resotrer控制文件、参数文件、归档日志文件只能在nomount状态。
RMAN> alter database mount;
RMAN> restore database;--restore数据文件要先mount
RMAN> recover database;(如果使用nocatalog,恢复数据库后需要在sqlplus执行:recover database using backup controlfile until cancel;)
RMAN> alter database open resetlogs;
7、其它相关操作
(1) 在rman提示符下来验证成功注册的数据库。
RMAN>Report Schema;
(2) 删除恢复目录
如同可以创建恢复目录模式,你也可以删除恢复目录模式。使用drop catalog命令可以删除恢复目录模式。当删除恢复目录模式,包含在模式中的所有信息都会丢失,因此在删除模式之前应该考虑备份恢复目录模式数据库。两次drop catalog
RMAN> drop catalog;
恢复目录所有者是RMAN
再输入一次 DROP CATALOG 命令来确认目录删除
RMAN> drop catalog;
恢复目录已删除
RMAN>
(3) 恢复目录中取消数据库注册
可在RMAN中使用unregister database命令来取消数据库注册。如果希望取消已存在的数据库注册,只要连接到数据库和恢复目录,并执行unregister database命令即可:
RMAN>unregister database;
如果数据库已删除,并且希望从恢复目录中删除该数据库,则大多数情况下只需要知道希望取消注册的数据库的名称。如希望取消注册orcl数据库实例。则可连接到恢复目录执行以下命令:
RMAN>Unregister database orcl;
8、恢复目录的备份
恢复目录本身也需要做备份,恢复目录的备份只能使用exp/imp导出导入方式进行备份。
RMAN不能用于备份初始化参数文件和口令文件。
9、更新恢复目录
为了支持更新的RMAN客户端,例如RMAN恢复目录版本是10g,而新的RMAN客户端是11G,使用upgrade catalog命令更新本地包和模式,与drop catalog一样,需要连接到恢复目录,但是无需连接到目标数据库:
RMAN> upgrade catalog;
恢复目录所有者是RCAT
再输入一次 UPGRADE CATALOG 命令来确认目录升级
RMAN> upgrade catalog;
恢复目录已升级到版本11.02.00.01
DBMS_RCVMAN 程序包升级为 11.02.00.01 版
DBMS_RCVCAT 程序包升级为 11.02.00.01 版
RMAN>
RMAN-catalog和nocatalog的区别======================
注意,当使用rman nocatalog恢复时,数据库必须是处于“mount”状态的。而Oracle startup mount的前提条件是control必须存在。因此,你必须在恢复datafile之前先恢复controlfile。 使用rman catalog方式时,可以startup nomount然后restore controlfile;但使用rman nocatalog时,必须先用文件方式恢复controlfile。
下面对比一下rman nocatalog和rman catalog的恢复时的步骤,以便建立正确的备份策略(以下的恢复都是在online状态下的备份):
rman nocatalog恢复:
rman catalog恢复:
可以看出,rman nocatalog备份时,必须用文件方式备份controlfile。
==================
Report schema Report shema是指在数据库中查找schema
List backup 从control读取信息
Crosscheck backup 看一下backup的文件,检查controlfile中的目录或文件是否真正在磁盘上
Delete backupset 24 24代表backupset 的编号, 既delete目录,也delete你的文件
CONFIGURE BACKUP OPTIMIZATION ON
RMAN中的备份优化(Backup Optimization)是指在备份过程中,如果满足特定条件,RMAN将自动跳过某些文件而不将它们包含在备份集中以节省时间和空间。说的直白些就是能不备的它就不备了,不像原来甭管文件有没有备份过统统再备一遍。通常必须满足如下几个条件的情况下,才能够启用备份优化的功能:
(1).CONFIGURE BACKUP OPTIMIZATION参数置为on;
(2).执行的BACKUP DATABASE或BACKUP ARCHIVELOG命令中带有ALL或LIKE参数。
(3).分配的通道仅使用了一种设备类型,也就是没有同时分配使用sbt与disk的多个通道。
打开备份优化设置通过如下命令:
RMAN> CONFIGURE BACKUP OPTIMIZATION ON;
那么在进行备份优化时,RMAN是如何判断要备份的文件是否需要被优化呢,这个算法就相当复杂了,而且可能影响优化算法的因素也非常多,假如某库在上午9点被执行过一次全库备份,等下午3点再次执行全库备份时,备份的文件没有变动而且也已经被备份过时,才会跳过这部分文件。所以理论上备份优化仅对于只读表空间或offline表空间起作用。当然对于已经备份过的archivelog文件,它也会跳过。
CONFIGURE RETENTION POLICY
备份管理器RMAN提供了CONFIGURE RETENTION POLICY命令设置备份保存策略,即设置备份文件保留多长时间。RMAN会将超出时间的备份文件标识为废弃(obsolete)。命令REPORT OBSOLETE和DELETE OBSOLETE分别用来查看废弃的文件和删除废弃的文件。RMAN跟踪备份的数据文件、控制文件、归档日志文件,并确定哪些需要保存,哪些需要标记为废弃。但RMAN不自动删除废弃的备份文件。
术语废弃与过时(expired)不同。备份文件是否废弃由备份保留策略确定,废弃的备份文件是在介质还原中不再需要的(not needed)。过时的文件是不再存在的文件(not found),可用CROSSCHECK命令查看过时信息。
备份保留策略除了影响数据文件和控制文件的备份文件,同样影响归档日志的备份文件。RMAN首先确认数据和控制文件的备份结果是否需要废弃,然后将时间在数据文件备份和控制文件备份的最早时间之前的归档日志备份标识为废弃。
定义备份保留策略有以下两种方式:
1.使用CONFIGURE RETENTION POLICY TO RECOVERY WINDOW命令。
例如:RMAN>CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 5 DAYS;
我现在的时间是6月11日16:42,如果我设置了上述备份保留策略并进行备份,则该备份在6月16日16:42之后会被标识为废弃。
2.使用CONFIGURE RETENTION POLICY REDUNDANCY命令。
例如:RMAN>CONFIGURE RETENTION POLICY REDUNDANCY 3;
如果进行了上述设置,当完成三次备份后,在做完第四次备份的时候,第一次备份结果将被标识为废弃。ORACLE11G默认的备份保留策略是用该方法设置的,且REDUNDANCY为1。可以使用命令CONFIGURE RETENTION POLICY CLEAR恢复策略为默认值。还可以用命令CONFIGURE RETENTION POLICY TO NONE进行策略设置,此时REPORT OBSOLETE和DELETE OBSOLETE将不把任何备份文件视为废弃。