--==============================
-- 基于 catalog 創(chuàng)建 RMAN 存儲(chǔ)腳本
--==============================
?
??? 簡(jiǎn)言之,將 rman 的備份恢復(fù)命令寫成腳本并保存在恢復(fù)目錄內(nèi),恢復(fù)目錄內(nèi)的腳本可用性及通用性高于基于文件系統(tǒng)的腳本。
客戶端只要能夠登錄到 RMAN 恢復(fù)目錄,則這些腳本可用,尤其對(duì)于 global 腳本,可以被任意注冊(cè)的數(shù)據(jù)庫(kù)調(diào)度。
?
一、腳本的分類
??? local : 在 rman 連接的目標(biāo)數(shù)據(jù)庫(kù)下創(chuàng)建的腳本,此類腳本僅僅適用于當(dāng)前目標(biāo)數(shù)據(jù)庫(kù)。即是針對(duì)特定的數(shù)據(jù)庫(kù)創(chuàng)建的 rman 腳本
??? global : 能夠在恢復(fù)目錄注冊(cè)的任意目標(biāo)數(shù)據(jù)庫(kù)中執(zhí)行
?
二、創(chuàng)建腳本 ???
??? -- 創(chuàng)建全局備份腳本 ?
??????? 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 ???
???
??? -- 創(chuàng)建本地備份腳本 ?
??????? 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
?
??? -- 從文本文件創(chuàng)建腳本
??????? [oracle@oradb bk]$ cat backup_ctl_spfile ?? -- 注意文本文件必須以 "{" 開頭,以 "}" 結(jié)尾
??????? {
??????? ? 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
?
三、查看腳本的內(nèi)容
??? print [global] script script_name
??? print [global] script script_name to file '<dir>' ?? -- 將 RMAN 存儲(chǔ)腳本轉(zhuǎn)換到文件系統(tǒng)可讀文件
?
??? 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
?
??? 查看當(dāng)前恢復(fù)目錄內(nèi)的腳本
??????? 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
???
五、執(zhí)行腳本
??? 方法: RUN { EXECUTE [global] SCRIPT script_name ; }
??? 從 rman 客戶端直接執(zhí)行恢復(fù)目錄內(nèi)的腳本
??????? 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 等命令時(shí),如果一個(gè)本地的腳本未找到,則尋找全局的腳本來代替。
??? 因此應(yīng)當(dāng)注意命名規(guī)范,盡可能的不使用重名的腳本名,當(dāng) DELETE SCRIPT 找不到本地腳本,而找到同樣名字的全局腳本,則全局
??? 腳本被刪除
?
八、 更多參考 ???
有關(guān)基于用戶管理的備份和備份恢復(fù)的概念請(qǐng)參考:
??????? Oracle 冷備份
??????? Oracle 熱備份
??????? Oracle 備份恢復(fù)概念
??????? Oracle 實(shí)例恢復(fù)
??????? Oracle 基于用戶管理恢復(fù)的處理 ( 詳細(xì)描述了介質(zhì)恢復(fù)及其處理 )
???????
??? 有關(guān) RMAN 的恢復(fù)與管理請(qǐng)參考:
??????? RMAN 概述及其體系結(jié)構(gòu)
??????? RMAN 配置、監(jiān)控與管理
??????? RMAN 備份詳解
??????? RMAN 還原與恢復(fù)
???????
??? 有關(guān) Oracle 體系結(jié)構(gòu)請(qǐng)參考:
??????? Oracle 實(shí)例和Oracle 數(shù)據(jù)庫(kù)(Oracle 體系結(jié)構(gòu))
??????? Oracle 表空間與數(shù)據(jù)文件
??????? Oracle 密碼文件
??????? Oracle 參數(shù)文件
Oracle 數(shù)據(jù)庫(kù)實(shí)例啟動(dòng)關(guān)閉過程
??????? Oracle 聯(lián)機(jī)重做日志文件(ONLINE LOG FILE)
??????? Oracle 控制文件(CONTROLFILE)
??????? Oracle 歸檔日志
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
