RMAN catalog 的创建和使用<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

一般用rman target  / 登录后执行的备份在使用list backup都会提示:using target database control file instead of recovery catalog,即“使用目标数据库控制文件替代恢复目录”,无catalog数据库时,所有的备份信息都存储在控制文件里。随着备份的增多控制文件的大小也会不断增大,同时,备份策略受control_file_record_keep_time参数影响,因此在nocatalog方式下,备份控制文件显得非常重要。
catalog方式是不存在以上问题。
1、创建catalog数据库:

创建catalog数据库需要以下几步:
1、  创建恢复目录数据库
2、  创建所有者并授权
3、  创建恢复目录
创建好恢复目录数据库后,可创建单独的表空间存储恢复目录数据也可用所有者默认的users表空间。
         SQL>create user rman identified by rman;

         ----创建rman用户
         SQL>grant connect,resource,recovery_catalog_owner  to rman;

         ----角色授予
SQL>conn rman/rman@rman 
----rman用户登录catalog数据库
SQL> select * from session_privs;

 

PRIVILEGE
----------------------------------------
CREATE SESSION
ALTER SESSION
UNLIMITED TABLESPACE
CREATE TABLE
CREATE CLUSTER
CREATE SYNONYM
CREATE VIEW
CREATE SEQUENCE
CREATE DATABASE LINK
CREATE PROCEDURE
CREATE TRIGGER
CREATE TYPE
CREATE OPERATOR
CREATE INDEXTYPE
----rman用户权限

 

C:\>rman target sys/admin@orcl catalog rman/rman@rman
---orcl 目标数据库,rman恢复目录数据库
Recovery Manager: Release 10.2.0.1.0 - Production on Sun May 13 20:17:22 2012

 

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

connected to target database: HUNT (DBID=719233105)
connected to recovery catalog database

 

RMAN> create catalog

---创建恢复目录

RMAN> register database

---注册目录数据库
RMAN>resync catalog
---同步控制文件信息,list backup 可看到之前的备份信息。有时无法看到之前的备份信息,当前备份的也没有,重建控制文件即可解决。控制文件重建以后,新控制文件中已无之前备份信息,因此无法同步到catalog数据库,可使用catalog backuppiece '实际目录' 将丢失的备份信息注册到catalog数据库中。

 

2、备份数据库:

---增量0级备份:

RMAN> run {

          2> allocate channel ch01 device type disk;

          3> allocate channel ch02 device type disk;

          4> allocate channel ch03 device type disk;

          5> sql 'alter system archive log current';

          6> backup as compressed backupset incremental level 0 database format='e:\rman\Oracle10g_%d_data_0_%T_%U.rman' tag='Level_0_data';

          7> sql 'alter system archive log current';

          8> backup archivelog all delete all input format ='e:\rman\Oracle10g_%d_archivelog_0_%T_%U.rman' tag='Level_0_archivelog';

          9> release channel ch01;

          10> release channel ch02;

          11> release channel ch03;

          12> }

 

--增量1级备份:

RMAN> run {

          2> allocate channel ch01 device type disk;

          3> allocate channel ch02 device type disk;

          4> allocate channel ch03 device type disk;

          5> sql 'alter system archive log current';

          6> backup as compressed backupset incremental level 1 database format='e:\rman\Oracle10g_%d_data_0_%T_%U.rman' tag='Level_1_data';

          7> sql 'alter system archive log current';

          8> backup archivelog all delete all input format ='e:\rman\Oracle10g_%d_archivelog_0_%T_%U.rman' tag='Level_1_archivelog';

          9> release channel ch01;

          10> release channel ch02;

          11> release channel ch03;

          12> }

 

--备份数据文件:

RMAN> run {

          2> allocate channel ch01 device type disk;

          3> allocate channel ch02 device type disk;

4> backup as compressed backupset datafile 4,5,6 format ='e:\rman\Oracle10g_%d_datafile456_0_%T_%U.rman' tag='datafile456';

5> release channel ch01;

          6> release channel ch02;

7> }

 

--备份表空间:

RMAN> run {

          2> allocate channel ch01 device type disk;

          3> allocate channel ch02 device type disk;

4> backup as compressed backupset tablespace system,sysaux format ='e:\rman\Oracle10g_%d_tbs12_0_%T_%U.rman' tag='tbs12';

5> release channel ch01;

          6> release channel ch02;

7> }