国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle數據庫恢復管理器及特殊包的應用

2024-08-29 13:39:51
字體:
來源:轉載
供稿:網友

  摘要:多數Oracle數據庫治理員會碰到數據庫的備份恢復和將某表中數據定期備份形成歷史流水數據以便今后查詢統計等問題,本文通過對Oracle數據庫實用工具恢復治理器及DBMS_JOB包工作機制的分析, 提出了應用Oracle數據庫恢復治理器和利用DBMS_JOB包實現存儲過程自動執行來解決問題的方法。
  要害詞:DBA、備份恢復、恢復治理器、DBMS_JOB包
  
  一. 引言:
  隨著Oracle大型數據庫系統在企業的廣泛應用,系統數據量的快速增長,相信為數不少的Oracle DBA天天都在忙于做著重復的工作--對數據庫進行備份。假如一旦哪一天疏忽了,而這一天系統又恰恰發生了故障,需要進行數據恢復,那么此時對 DBA來說可能就是一場災難, 因為他可能無法完整地恢復數據庫中的數據。此外,在數據庫的應用中我們會經常碰到這樣的需求:將一些重要數據表中的數據定期備份到另一些數據表中去。例如在企業員工工資治理系統中,每月工資報表打印完畢后,應將當月工資數據保存到工資歷史庫中去,以便今后查詢及統計使用。通常我們采用存儲過程來完成對數據的處理,這個過程由人工定期執行完成,操作起來很不方便。對于第一種情況,現在我們可利用Oracle數據庫實用工具恢復治理器來完成DBA天天必須做的備份工作,而且可設定一個固定的時間, 讓系統自動進行備份。對后一種情況,我們可以使用DBMS_JOB包結合存儲過程來實現數據處理的自動執行。下面筆者結合實踐經驗,分別介紹其實現方法。
  
  二. Oracle數據庫備份與恢復方式及特點
  ORACLE 數據庫備份分為物理備份和邏輯備份。物理備份是數據庫文件拷貝的備份, 冷備份、熱備份屬于物理備份。 導出/導入(EXPORT/IMPORT)工具用于進行邏輯備份。
  導出(EXPORT)備份可拷貝數據與數據庫定義,并以Oracle的內部格式保存為二進制文件。相反,利用Import則可將數據從二進制文件放回到Oracle數據庫中。但是導出(EXPORT)備份機制不能提供時間點恢復,而且不能和歸檔重做日志文件一起使用。
  冷備份是在數據庫被正常關閉之后進行的數據文件的物理備份。當數據庫被關閉時,被數據庫使用的每一個文件都被備份下來。這些文件因而保持著數據關閉時的完整的映象。
  熱備份是在數據庫運行的情況下,采用archivelog mode方式備份數據的方法。 這涉及到將每個表空間設置為備份狀態,然后備份其數據文件,最后將表空間恢復成正常的狀態。數據庫可以從這個備份中完全地恢復過來,也可以通過歸檔的重做日志回滾到前面時間的任
  一個點上。
  上述幾種備份方法的特性比較
  方法     類型        恢復特性
  ----------- --------- ------------------------------------------
  Export導出  邏輯型   可以將任何數據庫對象恢復到它被導出時的狀態
  冷備份    物理型   可將數據庫恢復到它被關閉時的狀態
  熱備份    物理型   可將數據庫恢復到任一時間點的狀態
  
  
  以上幾種備份方式都需要依靠DBA人工操作完成,從而增加了DBA維護系統的負擔。當DBA需要維護多個Oracle數據庫系統時,還輕易導致操作失誤,而且備份的數據不便于集中統一治理。
  三. Oracle數據庫恢復治理器及DBMS_JOB包概述恢復治理器(RMAN)是一個使DBA能很方便地對數據庫執行備份和恢復任務的Oracle應用工具,與以上介紹的幾種方式不同,它能夠提供DBA針對企業數據庫備份與恢復操作的集中控制。RMAN可以將備份記錄保存在恢復目錄中,Oracle服務器保持對備份的跟蹤。實際的物理備份拷貝將被存儲在指定的存儲系統上,可以是磁帶或磁盤。RMAN將全部備份數據以Oracle特有的格式寫入到"備份集"文件中,通過RMAN應用工具來讀取。RMAN支持建立除邏輯備份以外的所有類型的備份。
  下圖顯示了RMAN的功能框圖。
  Oracle數據庫恢復治理器及非凡包的應用
  利用RMAN進行備份恢復的條件是:
  1.建立一個recovery_catalog,存放RMAN使用和維護著的目標數據庫的信息,RMAN使用這些信息去決定如何執行備份和恢復的請求。通常是把它建在另一個Oracle數據庫的一個模式里,即需要建立一個用戶,該用戶需要有recovery_catalog_owner權限。
  2.目標數據庫必須是在archivelog模式下運行,因為這樣,日志才能歸檔,而RMAN正是利用歸檔日志進行數據恢復,所以這是一個必備條件。同時archivelog模式也是數據庫在線備份的必備條件。
  3.RMAN備份中,假如采用磁帶機備份,需要安裝第三方介質治理庫(MML)。恢復治理器保存在RMAN中注冊的全部數據庫的記錄。當RMAN被用來啟動備份或恢復數據庫時,它將目標數據庫與恢復目錄中可用的數據庫ID進行驗證。假如條件一致,RMAN對目標數據庫至少建立兩個通道,其中一個通道只是對目標數據庫的一個遠程調用,使用PL/SQL接口來執行備份與恢復操作。RMAN使用它自己的PL/SQL引擎編譯這些用戶命令,并在目標數據庫上執行這些命令。執行過程不需要用戶干預,RMAN記錄追蹤在數據庫上執行的全部備份與恢復操作,因而在很大程度上避免了DBA錯誤導致的危險。 同時RMAN提供了多種命令用于檢查和測試數據庫備份集與拷貝,并確保備份文件完整無缺且能夠用于實現恢復。
由上述可見,采用恢復治理器做備份與恢復的治理與其他方式相比較具有明顯的優勢,可大大減少DBA做備份工作的工作量和操作失誤。DBMS_JOB包是Oracle提供的內部函數包,提供了治理和調度作業隊列中的作業定時執行的控制機制。所有作業由SNP后臺進程執行。 當SNP進程運行一個作業時,進程將首先創建會話,并恢復作業運行時的環境參數,再調度作業運行。DBMS_JOB包的主要功能有:提交Submit(),執行Run(),刪除Remove()等。這樣,我們就可以用這個包將創建的存儲過程放入Oracle數據庫系統的作業隊列中去,由系統按時調度運行。
  
  四. 應用實例
  4.1 RMAN做數據庫在線備份應用實例
  這里以某公司業務處理計算機中心數據庫為例。用戶系統配置為:兩臺HP9000小型機(host1、host2),操作系統為HP-UX11.0,Oracle數據庫版本為8.0.5。兩臺機上各有一個Oracle數據庫實例,分別運行不同的業務處理系統。用戶要求設備7X24小時在線工作,原則上運行時不答應數據庫關閉。這就使得我們只能采用在線備份方式解決問題。為安全起見,我們在另一臺IBM服務器(host3)上安裝Windows2000及一個獨立的Oracle數據庫,恢復目錄就建在這個數據庫中,這臺服務器還配置了一臺磁帶加載機,備份數據存放在磁帶上,這樣即便哪臺機器出現故障我們也能夠實現數據庫的完全恢復,不過DBA應注重定期做恢復目錄數據庫的備份。在備份策略上,我們采用了全備份與歸檔日志備份相結合的方式,既不占用過多的系統時間,也相應減少了備份的數據量。備份策略如下:
  (1) 每周日晚11:00做數據庫在線全備份。
  (2) 天天12:00,18:00 做數據庫歸檔日志文件的在線備份。 
  建立備份機制的操作如下(以host1機為例):
  (1) 建立恢復目錄并注冊目標數據庫。
  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";
  --執行創建恢復目錄操作
  $ rman target system/manager@host1 rcvcat rman/rman@host3;
                    --連接目標數據庫和恢復目錄
  rman> register database;        --將目標數據庫注冊到恢復目錄中
  rman> resync catalog;         --進行同步目錄操作
  (2) 將目標數據庫改為歸檔模式運行。
  SVRMGR> connect internal
  SVRMGR> startup mount [dbname]
  SVRMGR> alter database [dbname] archivelog; --起用歸檔模式
  SVRMGR> archive log start            --啟動自動歸檔模式
  SVRMGR> alter database [dbname] open;     --打開數據庫
  修改數據庫初始化參數文件init.ora,定義歸檔模式(自動)、歸檔日志文件保存路徑、歸檔日志文件命名方法,重新啟動數據庫。
  (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);
  --備份全部數據庫控制文件和數據文件
  sql 'alter system archive log current';
  backup
  filesperset 20
  format 'al_%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 'alter system archive log current';
  backup
     filesperset 20
     format 'al_%s_%p_%t' (archivelog all delete input);
  }
  
  (4) 利用UNIX的crontab命令定期自動執行備份腳本crontab命令用于指定一個文件,其行計劃命令以固定時間間隔執行。
Cron是一個永久進程

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 攀枝花市| 微博| 三门县| 禹城市| 瓮安县| 松桃| 鄂托克前旗| 安达市| 萨迦县| 嘉善县| 汪清县| 利津县| 鞍山市| 东乌| 平舆县| 南平市| 商丘市| 大关县| 北辰区| 万盛区| 忻城县| 加查县| 大新县| 满城县| 丰原市| 梁山县| 新疆| 修文县| 平陆县| 罗江县| 太保市| 侯马市| 河北省| 吴旗县| 玛曲县| 连城县| 台南市| 九龙县| 芦山县| 江山市| 银川市|