天天看點

基于catalog 建立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'

        4>   backup as compressed backupset

        5>   database plus archivelog delete input

        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

               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 找不到本地腳本,而找到同樣名字的全局腳本,則全局

    腳本被删除

八、更多參考   

有關基于使用者管理的備份和備份恢複的概念請參考:

    有關RMAN的恢複與管理請參考:

    有關Oracle體系結構請參考:

<a href="http://blog.csdn.net/robinson_0612/archive/2010/04/29/5542983.aspx">Oracle 資料庫執行個體啟動關閉過程</a>