RMAN catalog 的创建和使用

RMAN备份与恢复
本文详细介绍如何使用RMAN进行数据库的备份与恢复操作,包括创建恢复目录、全备、增量备份、表空间备份等,并提供了具体命令示例。

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

-- 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 归档日志

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风智语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值