基于catalog 创建RMAN存储脚本

本文介绍如何使用RMAN创建本地和全局备份脚本,并演示了脚本的创建、更新、执行和删除等操作流程。

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

-- 基于catalog 创建RMAN存储脚本

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

 

    简言之,将rman的备份恢复命令写成脚本并保存在恢复目录内,恢复目录内的脚本可用性及通用性高于基于文件系统的脚本。

客户端只要能够登录到RMAN恢复目录,则这些脚本可用,尤其对于global脚本,可以被任意注册的数据库调度。

 

一、脚本的分类

    local : rman连接的目标数据库下创建的脚本,此类脚本仅仅适用于当前目标数据库。即是针对特定的数据库创建的rman脚本

    global : 能够在恢复目录注册的任意目标数据库中执行

 

二、创建脚本   

    --创建全局备份脚本 

        RMAN> create global script global_full_backup

        2> comment 'A script for full backup to be used with any database'

        3> {

        4>   backup database

        5>   plus archivelog

        6>   tag='Whole_db_bk';

        7>   delete obsolete;

        8> }

 

        created global script global_full_backup   

   

    --创建本地备份脚本 

        RMAN> create script full_backup

        2> comment 'A script for full backup to be used with current target database'

        3> {

        4>   backup as compressed backupset

        5>   database plus archivelog delete input

        6>   tag='Whole_db_bk';

        7>   delete obsolete;

        8> }

 

        created script full_backup

 

    --从文本文件创建脚本

        [oracle@oradb bk]$ cat backup_ctl_spfile   --注意文本文件必须以"{" 开头,以"}" 结尾

        {

          allocate channel ch1 device type disk;

          backup current controlfile

          tag='ctl_spfile'

          format '/u01/oracle/bk/rmbk/ctl_spfile_%d_%U';

          release channel ch1;

        }

 

        RMAN> create script ctl_spfile_bk from file '/u01/oracle/bk/rmbk/backup_ctl_spfile';

 

        script commands will be loaded from file /u01/oracle/bk/rmbk/backup_ctl_spfile

        created script ctl_spfile_bk

 

三、查看脚本的内容

    print [global] script script_name

    print [global] script script_name to file '<dir>'   --RMAN存储脚本转换到文件系统可读文件

 

    RMAN> print script ctl_spfile_bk;

 

    printing stored script: ctl_spfile_bk

    {

      allocate channel ch1 device type disk;

      backup current controlfile

      tag='ctl_spfile'

      format '/u01/oracle/bk/rmbk/ctl_spfile_%d_%U';

      release channel ch1;

    }

 

    RMAN> print script ctl_spfile_bk to file '/u01/oracle/bk/rmbk/backup_ctl_spfile2';

 

    script ctl_spfile_bk written to file /u01/oracle/bk/rmbk/backup_ctl_spfile2

 

    查看当前恢复目录内的脚本

        list [global | all] script names

       

        RMAN> list script names;

 

        List of Stored Scripts in Recovery Catalog

 

            Scripts of Target Database ORCL

 

               Script Name

               Description

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

               ctl_spfile_bk

 

               full_backup

               A script for full backup to be used with current target database

 

            Global Scripts

 

               Script Name

               Description

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

               global_full_backup

               A script for full backup to be used with any database

 

四、更新脚本

    replace [global] script scrip_name {....}

    replace [global] script script_name from file '<dir>'  --从文件更新脚本

 

    RMAN> replace global script global_full_backup

    2> {

    3>   backup as compressed backupset database plus archivelog

    4>   tag='whole_db_bk';

    5>   delete obsolete;

    6> }

 

    replaced global script global_full_backup

   

五、执行脚本

    方法:RUN { EXECUTE [global] SCRIPT script_name; }

    rman客户端直接执行恢复目录内的脚本

        rman target sys/redhat@orcl catalog rman/rman@asmdb script 'script_name';

 

    RMAN> run { execute global script global_full_backup;}

 

    executing global script: global_full_backup

 

六、删除脚本

    delete [global] script script_name

   

    RMAN> delete script ctl_spfile_bk;

 

    deleted script: ctl_spfile_bk

 

七、其它

    注意:使用EXECUTE SCRIPT, DELETE SCRIPT ,PRINT SCRIPT等命令时,如果一个本地的脚本未找到,则寻找全局的脚本来代替。

    因此应当注意命名规范,尽可能的不使用重名的脚本名,当DELETE SCRIPT 找不到本地脚本,而找到同样名字的全局脚本,则全局

    脚本被删除

 

八、更多参考   

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

        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、付费专栏及课程。

余额充值