国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
RMAN的中文文擋

RMAN的中文文擋

作者:liuxnp


我的文擋全是英文的,看起來實(shí)在太辛苦  
linux_shell ---------------------------------------------------------------  
 
Oracle數(shù)據(jù)庫恢復(fù)管理器及特殊包的應(yīng)用  
郭濤      
湖南省水利水電機(jī)械施工公司  
 
摘要:多數(shù)Oracle數(shù)據(jù)庫管理員會遇到數(shù)據(jù)庫的備份恢復(fù)和將某表中數(shù)據(jù)定期備份形成歷史流水?dāng)?shù)據(jù)以便今后查詢統(tǒng)計等問題,本文通過對Oracle數(shù)據(jù)庫實(shí)用工具恢復(fù)管理器及DBMS_JOB包工作機(jī)制的分析,提出了應(yīng)用Oracle數(shù)據(jù)庫恢復(fù)管理器和利用DBMS_JOB包實(shí)現(xiàn)存儲過程自動執(zhí)行來解決問題的方法。  
關(guān)鍵詞:DBA、備份恢復(fù)、恢復(fù)管理器、DBMS_JOB包  
 
一.  引言:  
  隨著Oracle大型數(shù)據(jù)庫系統(tǒng)在企業(yè)的廣泛應(yīng)用,系統(tǒng)數(shù)據(jù)量的快速增長,相信為數(shù)不少的Oracle  DBA每天都在忙于做著重復(fù)的工作--對數(shù)據(jù)庫進(jìn)行備份。如果一旦哪一天疏忽了,而這一天系統(tǒng)又恰恰發(fā)生了故障,需要進(jìn)行數(shù)據(jù)恢復(fù),那么此時對  DBA來說可能就是一場災(zāi)難,  因?yàn)樗赡軣o法完整地恢復(fù)數(shù)據(jù)庫中的數(shù)據(jù)。此外,在數(shù)據(jù)庫的應(yīng)用中我們會經(jīng)常碰到這樣的需求:將一些重要數(shù)據(jù)表中的數(shù)據(jù)定期備份到另一些數(shù)據(jù)表中去。例如在企業(yè)員工工資管理系統(tǒng)中,每月工資報表打印完畢后,應(yīng)將當(dāng)月工資數(shù)據(jù)保存到工資歷史庫中去,以便今后查詢及統(tǒng)計使用。通常我們采用存儲過程來完成對數(shù)據(jù)的處理,這個過程由人工定期執(zhí)行完成,操作起來很不方便。對于第一種情況,現(xiàn)在我們可利用Oracle數(shù)據(jù)庫實(shí)用工具恢復(fù)管理器來完成DBA每天必須做的備份工作,而且可設(shè)定一個固定的時間,  讓系統(tǒng)自動進(jìn)行備份。對后一種情況,我們可以使用DBMS_JOB包結(jié)合存儲過程來實(shí)現(xiàn)數(shù)據(jù)處理的自動執(zhí)行。下面筆者結(jié)合實(shí)踐經(jīng)驗(yàn),分別介紹其實(shí)現(xiàn)方法。  
 
二.  Oracle數(shù)據(jù)庫備份與恢復(fù)方式及特點(diǎn)  
       ORACLE  數(shù)據(jù)庫備份分為物理備份和邏輯備份。物理備份是數(shù)據(jù)庫文件拷貝的備份,  冷  
備份、熱備份屬于物理備份。  導(dǎo)出/導(dǎo)入(EXPORT/IMPORT)工具用于進(jìn)行邏輯備份。  
       導(dǎo)出(EXPORT)備份可拷貝數(shù)據(jù)與數(shù)據(jù)庫定義,并以O(shè)racle的內(nèi)部格式保存為二進(jìn)制文件。相反,利用Import則可將數(shù)據(jù)從二進(jìn)制文件放回到Oracle數(shù)據(jù)庫中。但是導(dǎo)出(EXPORT)備份機(jī)制不能提供時間點(diǎn)恢復(fù),而且不能和歸檔重做日志文件一起使用。  
       冷備份是在數(shù)據(jù)庫被正常關(guān)閉之后進(jìn)行的數(shù)據(jù)文件的物理備份。當(dāng)數(shù)據(jù)庫被關(guān)閉時,被  
數(shù)據(jù)庫使用的每一個文件都被備份下來。這些文件因而保持著數(shù)據(jù)關(guān)閉時的完整的映象。  
       熱備份是在數(shù)據(jù)庫運(yùn)行的情況下,采用archivelog  mode方式備份數(shù)據(jù)的方法。  這涉及到將每個表空間設(shè)置為備份狀態(tài),然后備份其數(shù)據(jù)文件,最后將表空間恢復(fù)成正常的狀態(tài)。  
數(shù)據(jù)庫可以從這個備份中完全地恢復(fù)過來,也可以通過歸檔的重做日志回滾到前面時間的任  
一個點(diǎn)上。  
       上述幾種備份方法的特性比較  
       方法                  類型                                恢復(fù)特性  
       -----------    ---------    ----------------------------------------------  
       Export導(dǎo)出      邏輯型          可以將任何數(shù)據(jù)庫對象恢復(fù)到它被導(dǎo)出時的狀態(tài)  
       冷備份              物理型          可將數(shù)據(jù)庫恢復(fù)到它被關(guān)閉時的狀態(tài)  
       熱備份              物理型          可將數(shù)據(jù)庫恢復(fù)到任一時間點(diǎn)的狀態(tài)  
         
     以上幾種備份方式都需要依賴DBA人工操作完成,從而增加了DBA維護(hù)系統(tǒng)的負(fù)擔(dān)。當(dāng)  
DBA需要維護(hù)多個Oracle數(shù)據(jù)庫系統(tǒng)時,還容易導(dǎo)致操作失誤,而且備份的數(shù)據(jù)不便于集中統(tǒng)一管理。  
三.  Oracle數(shù)據(jù)庫恢復(fù)管理器及DBMS_JOB包概述  
       恢復(fù)管理器(RMAN)是一個使DBA能很方便地對數(shù)據(jù)庫執(zhí)行備份和恢復(fù)任務(wù)的Oracle  
應(yīng)用工具,與以上介紹的幾種方式不同,它能夠提供DBA針對企業(yè)數(shù)據(jù)庫備份與恢復(fù)操作  
的集中控制。RMAN可以將備份記錄保存在恢復(fù)目錄中,Oracle服務(wù)器保持對備份的跟蹤  
。實(shí)際的物理備份拷貝將被存儲在指定的存儲系統(tǒng)上,可以是磁帶或磁盤。RMAN將全部備  
份數(shù)據(jù)以O(shè)racle特有的格式寫入到"備份集"文件中,通過RMAN應(yīng)用工具來讀取。RMAN支持建立除邏輯備份以外的所有類型的備份。  
下圖顯示了RMAN的功能框圖。  
             
       利用RMAN進(jìn)行備份恢復(fù)的條件是:  
       1.建立一個recovery_catalog,存放RMAN使用和維護(hù)著的目標(biāo)數(shù)據(jù)庫的信息,RMAN  
使用這些信息去決定如何執(zhí)行備份和恢復(fù)的請求。通常是把它建在另一個Oracle數(shù)據(jù)庫的一個模式里,即需要建立一個用戶,該用戶需要有recovery_catalog_owner權(quán)限。  
       2.目標(biāo)數(shù)據(jù)庫必須是在archivelog模式下運(yùn)行,因?yàn)檫@樣,日志才能歸檔,而RMAN  
正是利用歸檔日志進(jìn)行數(shù)據(jù)恢復(fù),所以這是一個必備條件。同時archivelog模式也是數(shù)據(jù)庫在線備份的必備條件。  
       3.RMAN備份中,如果采用磁帶機(jī)備份,需要安裝第三方介質(zhì)管理庫(MML)。  
       恢復(fù)管理器保存在RMAN中注冊的全部數(shù)據(jù)庫的記錄。當(dāng)RMAN被用來啟動備份或恢復(fù)數(shù)據(jù)庫時,它將目標(biāo)數(shù)據(jù)庫與恢復(fù)目錄中可用的數(shù)據(jù)庫ID進(jìn)行驗(yàn)證。如果條件一致,RMAN對目標(biāo)數(shù)據(jù)庫至少建立兩個通道,其中一個通道只是對目標(biāo)數(shù)據(jù)庫的一個遠(yuǎn)程調(diào)用,使用PL/SQL接口來執(zhí)行備份與恢復(fù)操作。RMAN使用它自己的PL/SQL引擎編譯這些用戶命令,并在目標(biāo)數(shù)據(jù)庫上執(zhí)行這些命令。執(zhí)行過程不需要用戶干預(yù),RMAN記錄追蹤在數(shù)據(jù)庫上執(zhí)行的全部備份與恢復(fù)操作,因而在很大程度上避免了DBA錯誤導(dǎo)致的危險。  同時RMAN提供了多種命令用于檢查和測試數(shù)據(jù)庫備份集與拷貝,并確保備份文件完整無缺且能夠用于實(shí)現(xiàn)恢復(fù)。由上述可見,采用恢復(fù)管理器做備份與恢復(fù)的管理與其他方式相比較具有明顯的優(yōu)勢,  
可大大減少DBA做備份工作的工作量和操作失誤。  
DBMS_JOB包是Oracle提供的內(nèi)部函數(shù)包,提供了管理和調(diào)度作業(yè)隊(duì)列中的作業(yè)定時執(zhí)行的控制機(jī)制。所有作業(yè)由SNP后臺進(jìn)程執(zhí)行。  當(dāng)SNP進(jìn)程運(yùn)行一個作業(yè)時,進(jìn)程將首先創(chuàng)建會話,并恢復(fù)作業(yè)運(yùn)行時的環(huán)境參數(shù),再調(diào)度作業(yè)運(yùn)行。DBMS_JOB包的主要功能有:提交Submit(),執(zhí)行Run(),刪除Remove()等。這樣,我們就可以用這個包將創(chuàng)建的存儲過程放入Oracle數(shù)據(jù)庫系統(tǒng)的作業(yè)隊(duì)列中去,由系統(tǒng)按時調(diào)度運(yùn)行。  
 
四.  應(yīng)用實(shí)例  
       4.1  RMAN做數(shù)據(jù)庫在線備份應(yīng)用實(shí)例  
       這里以某公司業(yè)務(wù)處理計算機(jī)中心數(shù)據(jù)庫為例。用戶系統(tǒng)配置為:兩臺HP9000小型機(jī)(host1、host2),操作系統(tǒng)為HP-UX11.0,Oracle數(shù)據(jù)庫版本為8.0.5。兩臺機(jī)上各有一個Oracle數(shù)據(jù)庫實(shí)例,分別運(yùn)行不同的業(yè)務(wù)處理系統(tǒng)。用戶要求設(shè)備7X24小時在線工作,原則上運(yùn)行時不允許數(shù)據(jù)庫關(guān)閉。這就使得我們只能采用在線備份方式解決問題。為安全起見,我們在另一臺IBM服務(wù)器(host3)上安裝Windows2000及一個獨(dú)立的Oracle數(shù)據(jù)庫,恢復(fù)目錄就建在這個數(shù)據(jù)庫中,這臺服務(wù)器還配置了一臺磁帶加載機(jī),備份數(shù)據(jù)存放在磁帶上,這樣即便哪臺機(jī)器出現(xiàn)故障我們也能夠?qū)崿F(xiàn)數(shù)據(jù)庫的完全恢復(fù),不過DBA應(yīng)注意定期做恢復(fù)目錄數(shù)據(jù)庫的備份。在備份策略上,我們采用了全備份與歸檔日志備份相結(jié)合的方式,既不占用過多的系統(tǒng)時間,也相應(yīng)減少了備份的數(shù)據(jù)量。備份策略如下:  
       (1)  每周日晚11:00做數(shù)據(jù)庫在線全備份。  
       (2)  每天12:00,18:00  做數(shù)據(jù)庫歸檔日志文件的在線備份。      
 
建立備份機(jī)制的操作如下(以host1機(jī)為例):  
(1)            建立恢復(fù)目錄并注冊目標(biāo)數(shù)據(jù)庫。  
SVRMGR>  create  tablespace  rmanspace  datafile  ‘rmandata‘  size  500m;  
SVRMGR>  create  user  rman  identified  by  rman  default  tablespace    
               Rmanspace  temporary  tablespace  temp;  
SVRMGR>  grant  connect,resource,recovery_catalog_owner  to  rman;  
以上為建立RMAN表空間和用戶。  
$  sqlplus  rman/rman  
sql>  start  "/ora_01/app/oracle/product/8.0.5/rdbms/admin/catrman";  
--執(zhí)行創(chuàng)建恢復(fù)目錄操作  
$  rman  target  system/manager@host1  rcvcat  rman/rman@host3;  
                                                                             --連接目標(biāo)數(shù)據(jù)庫和恢復(fù)目錄  
rman>  register  database;                              --將目標(biāo)數(shù)據(jù)庫注冊到恢復(fù)目錄中  
rman>  resync  catalog;                                    --進(jìn)行同步目錄操作  
(2)  將目標(biāo)數(shù)據(jù)庫改為歸檔模式運(yùn)行。  
SVRMGR>  connect  internal  
SVRMGR>  startup  mount  [dbname]  
SVRMGR>  alter  database  [dbname]  archivelog;            --起用歸檔模式  
SVRMGR>  archive  log  start                                              --啟動自動歸檔模式  
SVRMGR>  alter  database  [dbname]  open;                            --打開數(shù)據(jù)庫  
       修改數(shù)據(jù)庫初始化參數(shù)文件init.ora,定義歸檔模式(自動)、歸檔日志文件保存  
路徑、歸檔日志文件命名方法,重新啟動數(shù)據(jù)庫。  
 
 
---------------------------------------------------------------  
 
(3)建立全備份腳本文件hotbackup.rcv。  
connect  target  internal/oracle@host1  
connect  rcvcat  rman/rman@host3  
run  {  allocate  channel  t1  type  ‘SBT_TAPE‘;  
backup    
       incremental  level  0  
       skip  inaccessible  
       tag  hot_db_bk_level0  
       filesperset  5  
       format  ‘bk_%s_%p_%t‘  (database);  
--備份全部數(shù)據(jù)庫控制文件和數(shù)據(jù)文件  
sql  ‘a(chǎn)lter  system  archive  log  current‘;  
backup  
       filesperset  20  
       format  ‘a(chǎn)l_%s_%p_%t‘  (archivelog  all  delete  input);  
--備份歸檔日志,備份成功后刪除歸檔日志。若不成功,則不做刪除。  
}  
 
歸檔日志備份腳本hotarcbackup.rcv文件如下:  
connect  target  internal/oracle@host1  
connect  rcvcat  rman/rman@host3  
run  {  allocate  channel  t1  type  ‘SBT_TAPE‘;  
sql  ‘a(chǎn)lter  system  archive  log  current‘;  
backup  
                   filesperset  20  
                   format  ‘a(chǎn)l_%s_%p_%t‘  (archivelog  all  delete  input);  
}  
 
(4)  利用UNIX的crontab命令定期自動執(zhí)行備份腳本  
       crontab命令用于指定一個文件,其行計劃命令以固定時間間隔執(zhí)行。Cron是一個  
永久進(jìn)程,它由/etc/rc.local啟動執(zhí)行。Cron程序讀取、解釋并執(zhí)行crontab文件。  
我們將需自動定期執(zhí)行備份的腳本文件寫成shell命令行方式存入crontab文件中,由  
系統(tǒng)定期調(diào)度執(zhí)行。  
  Crontab文件的每一行由六個域(minutes、hours、day  of  month、month、day  of    
week、command)組成,域之間用空格或Tab分開。    
  現(xiàn)在,我們在目標(biāo)機(jī)上編寫一個文件,用以啟動自動備份進(jìn)程。文件名定為Oracle,  
文件將放在/var/spool/cron/crontabs  目錄下。    
  Oracle文件內(nèi)容:    
  0  23  *  *  0  /oracle/rman/rman  cmdfile  ‘hotbackup.rcv’    
 ?。? 星期天23點(diǎn)對數(shù)據(jù)庫執(zhí)行在線全備份    
  0  12,18  *  *  *  /oracle/rman/rman  cmdfile  ‘hotarcbackup.rcv’    
 ?。? 每天12點(diǎn),18點(diǎn)執(zhí)行歸檔文件備份    
  經(jīng)過以上的操作后,系統(tǒng)每天自動產(chǎn)生兩個歸檔日志備份,每個星期天產(chǎn)生一個數(shù)  
據(jù)庫完全備份。DBA需要做的是,隔幾天換一盤磁帶(更換磁帶的周期取決于備  
份文件的大小和磁帶的容量)和用RMAN定期檢查備份執(zhí)行情況。    
 
執(zhí)行恢復(fù)操作的RMAN腳本文件restore.rcv如下(在host1上運(yùn)行):  
connect  target  
connect  rcvcat  rman/rman@host3  
run  {  allocate  channel  t1  type  ‘SBT_TAPE‘;  
           allocate  channel  t2  type  ‘SBT_TAPE‘;  
           restore  controlfile;  
           sql  ‘a(chǎn)lter  database  mount‘;  
           restore  database;  
           recover  database;  
           sql  ‘a(chǎn)lter  database  open  resetlogs‘;  
       }  
         
4.2  存儲過程定期自動執(zhí)行的實(shí)例  
以下為將Salary表數(shù)據(jù)定時轉(zhuǎn)入Salary_history表的應(yīng)用實(shí)例:  
創(chuàng)建存儲過程  
SQL>  create  or  replace  procedure  ProcEmp  
   IS  
   begin  
         insert  into  Salary_history  (EmpId,EmpName,DptName,Salary,Month)  
         select  EmpId,EmpName,DptName,Salary,to_char(sysdate,‘yyyy-mm‘)  from  Salary;  
     commit;  
     end  ProcEmp;  
/  
 
提交作業(yè)  
SQL>  variable  jobno  number;  
SQL>  begin  
               DBMS_JOB.SUBMIT(:jobno,    
                                       ‘ProcEmp;‘,    
                                           SYSDATE,  ‘SYSDATE  +  30‘);  --每30天運(yùn)行一次  
                             commit;  
         end;  
         /  
 
運(yùn)行作業(yè)  
SQL>begin  
             dbms_job.run(:jobno);  
       end;  
       /  
 
五.  結(jié)語  
       Oracle實(shí)用工具RMAN的應(yīng)用為DBA管理多個Oracle數(shù)據(jù)庫提供了集中備份管理與恢復(fù)控制的機(jī)制,大大地減輕了DBA的工作壓力,而DBMS_JOB包的使用增強(qiáng)了存儲過程的應(yīng)用功能,這樣,他們就可以從備份數(shù)據(jù)及重復(fù)處理數(shù)據(jù)的繁瑣中解脫出來,去做其它更有意義的工作。而數(shù)據(jù)庫既實(shí)現(xiàn)了在線磁帶備份,又實(shí)現(xiàn)了異機(jī)備份集中管理,相應(yīng)提高了系統(tǒng)運(yùn)行的安全性。  
 
參考文獻(xiàn)  
Oracle8數(shù)據(jù)庫高級應(yīng)用開發(fā)技術(shù)  人民郵電出版社,2000  
Oracle8系統(tǒng)管理員手冊    機(jī)械工業(yè)出版社,1998  
 


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
OracleRMAN的備份與恢復(fù)命令詳解(一)
Oracle備份與恢復(fù)案例
Oracle備份與恢復(fù)案例(二)
深入淺出Oracle學(xué)習(xí)筆記(2)
ORACLE RMAN備份的腳本配置
Oracle RMAN快速入門指南
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服