基于catalog 创建RMAN存储脚本

系统 2074 0

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

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

 

基于catalog 创建RMAN存储脚本


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论