RMAN catalog 的创建和使用

--==========================

-- RMAN catalog 的创建和使用

--==========================

 

一、创建恢复目录

    创建恢复目录一般分为三大步骤

        创建存放恢复目录的数据库(或使用已存在的数据库)

        创建恢复目录的的所有者

        创建恢复目录

   

    创建数据库可以参考:Oralce 10g 使用DBCA

 

    在存储恢复目录的数据库创建表空间用于存储恢复目录schema及恢复目录数据(本文使用已经创建好的数据库catadb来存储恢复目录)

 

        SQL> create tablespace tbs_rman datafile '/u01/app/oracle/oradata/catadb/tbs_rman01.dbf'--创建rman恢复目录表空间

          2  size 200m autoextend on;  

         

        SQL> create user rman identified by rman     --创建rman schema

        2  temporary tablespace temp

        3  default tablespace tbs_rman

        4  quota unlimited on tbs_rman;

 

        SQL> grant recovery_catalog_owner to rman;   --角色授予

 

        SQL> conn rman/rman

       

        SQL> select * from session_privs;

 

        PRIVILEGE

        ----------------------------------------

        CREATE SESSION

        ALTER SESSION

        CREATE TABLE

        CREATE CLUSTER

        CREATE SYNONYM

        CREATE VIEW

        CREATE SEQUENCE

        CREATE DATABASE LINK

        CREATE PROCEDURE

        CREATE TRIGGER

        CREATE TYPE

        SQL> select * from session_roles;

 

        ROLE

        ------------------------------

        RECOVERY_CATALOG_OWNER 

 

        RMAN> connect catalog rman/rman@catadb    --连接到恢复目录

 

        connected to recovery catalog database

 

        RMAN> create catalog tablespace tbs_rman;   --创建恢复目录

 

        recovery catalog created

 

        [oracle@oradb ~]$ rman target sys/redhat@orcl catalog rman/rman@catadb   --连接到目标数据库及恢复目录

 

        connected to target database: ORCL (DBID=1260850162)

        connected to recovery catalog database

 

        RMAN> register database;          --将目标数据库注册到恢复目录

 

        database registered in recovery catalog

        starting full resync of recovery catalog

        full resync complete

 

二、基于恢复目录的备份     

 

    1.查看相关信息

        RMAN> list incarnation;

 

        List of Database Incarnations

        DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time

        ------- ------- -------- ---------------- --- ---------- ----------

        1       8       ORCL     1260850162       PARENT  1          30-JUN-05

        1       2       ORCL     1260850162       CURRENT 446075     22-OCT-10

 

        ----------------------------------------------------------------------------------------------------

 

        RMAN> crosscheck copy;         --校验copy

        RMAN> delete expired copy;     --删除过期的copy

 

    2.全备

        RMAN> run{

        2> allocate channel ch1 device type disk;

        3>  backup as compressed backupset

        4> database plus archivelog delete input

        5> format='/u01/app/oracle/bk/rmbk/Whole_%d_%U'

        6>  tag='Whole_bak';

        7> release channel ch1;}

 

    3.增量备份(0)

        RMAN> run{

        2> allocate channel ch1 device type disk;

        3> allocate channel ch2 device type disk;

        4> backup as compressed backupset

        5> incremental level 0

        6> database plus archivelog delete input

        7> format='/u01/app/oracle/bk/rmbk/Inc_0_%d_%U'

        8> tag='Inc_0';

        9> release channel ch1;

        10> release channel ch2;}  

 

        RMAN> list backup summary;

 

    4.增量备份(1)

        RMAN> run{                                 

        2> allocate channel ch1 device type disk;

        3> allocate channel ch2 device type disk;

        4> backup as compressed backupset

        5> incremental level 1 database

        6> format='/u01/app/oracle/bk/rmbk/Inc_1_%d_%U'

        7> tag='Inc_1';

        8> release channel ch1;

        9> release channel ch2;}

 

        RMAN> list backup by file;

 

    5.累计增量备份(1)

        RMAN> run{

        2> allocate channel ch1 device type disk;

        3> backup as compressed backupset

        4> incremental level 1 cumulative database

        5> format '/u01/app/oracle/bk/rmbk/Cum_1_%d_%U'

        6> tag='Cum_1';

        7> release channel ch1;}

 

    6.备份表空间

        RMAN> run{

        2> allocate channel ch1 device type disk;

        3> backup as compressed backupset

        4> tablespace users,example

        5> format='/u01/app/oracle/bk/rmbk/tbs_%d_%U'

        6> tag='tbs';

 

        RMAN> list backupset tag=tbs;

 

    7.备份数据文件

        RMAN> run{

        2> allocate channel ch1 device type disk;

        3> backup as compressed backupset

        4> datafile 3

        5> format='/u01/app/oracle/bk/rmbk/df_%d_%U'

        6> tag='df';

        7> release channel ch1;}

 

    8.备份归档日志

        备份归档日志前,建议先使用crosscheck校验一下

        crosscheck通常用于检查备份是否被删除,如果删除将会打上删除标签

        RMAN> crosscheck archivelog all;

 

        allocated channel: ORA_DISK_1

        channel ORA_DISK_1: sid=148 devtype=DISK

        validation succeeded for archived log

        archive log filename=/u01/app/oracle/oradata/orcl/arch/log_1_117_733069427.arc recid=111 stamp=733171369

        Crosschecked 1 objects

 

        RMAN> sql 'alter system switch logfile';

 

        sql statement: alter system switch logfile

 

        RMAN> sql 'alter system switch logfile';

 

        sql statement: alter system switch logfile

 

        RMAN> list archivelog all;

 

        List of Archived Log Copies

        Key     Thrd Seq     S Low Time  Name

        ------- ---- ------- - --------- ----

        465     1    117     A 22-OCT-10 /u01/app/oracle/oradata/orcl/arch/log_1_117_733069427.arc

        553     1    118     A 23-OCT-10 /u01/app/oracle/oradata/orcl/arch/log_1_118_733069427.arc

        569     1    119     A 23-OCT-10 /u01/app/oracle/oradata/orcl/arch/log_1_119_733069427.arc

                                                                                                               

    9.基于SCN来备份归档日志

        RMAN> run{

        2> allocate channel ch1 device type disk;

        3> backup as compressed backupset

        4> archivelog from scn 848043

        5> format='/u01/app/oracle/bk/rmbk/arc_%d_%U'

        6> tag='arc';

        7> release channel ch1;

        8> }

 

    10.镜像备份

        RMAN> run{

        2> allocate channel ch1 device type disk;

        3> backup as copy datafile 1,4

        4> format '/u01/app/oracle/bk/rmbk/df_%d_%U'

        5> tag 'copybak';

        6> release channel ch1;}

   

    11.其它

        RMAN> crosscheck backupset;

 

        RMAN> change backupset 1

 

        RMAN> validate backupset

 

        RMAN> validate backupset 635;

   

    12.基于catalog的数据库恢复请参考:基于catalog RMAN 备份与恢复

   

三、更多参考

有关基于用户管理的备份和备份恢复的概念请参考:

        Oracle 冷备份

        Oracle 热备份

        Oracle 备份恢复概念

        Oracle 实例恢复

        Oracle 基于用户管理恢复的处理(详细描述了介质恢复及其处理)

       

    有关RMAN的恢复与管理请参考:

        RMAN 概述及其体系结构

        RMAN 配置、监控与管理

        RMAN 备份详解

        RMAN 还原与恢复

       

    有关Oracle体系结构请参考:

        Oracle 实例和Oracle数据库(Oracle体系结构)

        Oracle 表空间与数据文件

        Oracle 密码文件

        Oracle 参数文件

Oracle 数据库实例启动关闭过程

        Oracle 联机重做日志文件(ONLINE LOG FILE)

        Oracle 控制文件(CONTROLFILE)

        Oracle 归档日志

 

posted @ 2010-11-29 19:15  生活不是用来挥霍的  阅读(232)  评论(0编辑  收藏  举报