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

首頁 > 數據庫 > Oracle > 正文

Oracle的Archive Log模式下的恢復工作

2024-08-29 13:28:59
字體:
來源:轉載
供稿:網友
  • 網站運營seo文章大全
  • 提供全面的站長運營經驗及seo技術!
  •     學習并測試了一下oracle數據庫在開啟archive log模式下的恢復.
      
     系統是win2k server+oracle 8.1.7.
      
     參考了chinaunix.net和itpub.com網站相關資料.在此感謝給我的幫助.
      
     注意,養成一個好的習慣非常重要.在開始恢復之前,以及恢復完成后,都要做一個系統全備份.
      
     首先,要開啟archive log歸檔日志模式
      
     1. 關閉數據庫
      
     2. 修改initsid.ora文件.這個文件通常在$oracle_home/admin/$oracle_sid目錄下或是在$oracle_home/database目錄下.
      
      log_archive_start = true
      log_archive_dest_1 = "location=f:oraclearchive"
      log_archive_format = "ora_%s.arc"
      
     注意通常windows版和unix/linux版的一些參數寫法有差異,請參照各自版本的技術文檔.
      
     3. 啟動數據庫到mount狀態
      
      startup mount
      
     這樣加載了數據庫文件,但是不打開數據庫.
      
     4. 檢查當前的archive log歸檔日志模式
      
      archive log list
      
     顯示的信息是:
      
      database log mode       no archive mode
      automatic archival       disabled
      
     這時用下面的命令開啟數據庫的archive log模式
      
      alter database archivelog
      
     再次用"archive log list"顯示信息,應該是:
      
      database log mode       archive mode
      automatic archival       enabled
      
     再用命令alter database open來打開數據庫.
      
     上面的工作完了以后,然后,我們可以來進行測試了.
      
     在測試之前,我們來熟悉一下這個歸檔日志archive log是什么樣的.
      
     通過sqlplus或svrmgrl以sysdba身份連接到數據庫,執行"alter system switch logfile;"在我們指定的f:oraclearchive目錄下就可以看到歸檔日志了.
      
     文件名是我們指定的形同"ora_0379.arc",其中0379是oracle自動取的序號.在我們做
      
     最后,我們要來測試歸檔模式下的備份恢復有什么不一樣.
      
     在非歸檔模式下,我們一般每天做一次數據庫備份(冷備份和熱備份的差別僅在于備份時數據庫是關閉的還是開啟的).這樣,我們就擁有了每天一個的備份點,換句話說,我們可以在數據庫崩潰的情況下,通過備份介質,將數據庫恢復到某一個備份點上.
      
     但是顯而易見,這樣的備份和恢復是不完全的,我們對于兩個備份點之間的數據是無法恢復的.
      
     而在開啟了歸檔模式的情況下,情況不一樣了.所有系統的redo_log重做日志中提交的操作,均會在重做日志重復利用前被保存為歸檔日志保存下來,也就是說,所有用戶對于數據庫的每一個操作都被記錄在案.這樣.在維持我們原先的數據庫備份計劃的情況下,除了每天一個備份點之外,我們還擁有了沒兩個備份點之間的所有歷史操作記錄.
      
     這樣,結合每天的數據庫備份和歸檔日志以及在線重做日志,我們可以將數據庫精確恢復到數據庫崩潰前的那一時刻, 不會有數據丟失的情況發生.
      
     當然,這樣的前提是,數據庫備份和歸檔日志不能同時損壞或丟失.
      
     我們假設的環境是
      
      >> 假設有3個硬盤, c, d, e,系統在c盤, 數據文件在d盤,歸檔日志在e盤.控制文件,在線重做日志都有3組并復用,放在c盤,d盤和e盤.
      
      >> 現在的情況是我們保留有所有的歸檔日志,保留有5天前的備份磁帶(很不巧,由于種種原因,近5天的備份都沒有成功,不過幸運的是,在此期間系統及軟件配置都沒有更改).
      
      >> 硬盤d突然損壞了,數據庫崩潰了,所有人都無法連接到數據庫.
      
      >> 在本例中,我們只考慮了數據文件損壞, 假設所有的控制文件,重做日志都正常.
      
     我們現在要開始恢復工作了.
      
      >> 在聯系了硬件供應商后,我們的新硬盤到了,安裝上后,通過5天前的備份磁帶,恢復d盤上所有的文件.
      
      >> 通過svrmgrl或sqlplus以system用戶登錄到oracle,
      
      >> 打開數據庫到mount狀態,"startup mount",這時,oracle會提示數據庫文件損壞,需要修復
      
      >> 根據提示的文件,輸入命令"recover datafile 'd:oracledata01.dbf';
      
      >> oracle將自動尋找所需要的歸檔日志和當前的redo_log來恢復數據文件,我們只需要在每一個提示信息后按回車鍵確定應用所顯示的歸檔日志文件.恢復完成后,oracle將有提示信息.
      
      >> 恢復完成后,可以嘗試用命令"alter database open"來打開數據庫,如果還是有數據文件損壞,oracle將再次提示需要修復.只需要重復上面兩步操作.
      
      >> 重復操作,直至所有的數據文件都恢復.用命令"alter database open"來打開數據庫.
      
     這樣,我們就基本完成了歸檔模式開啟的情況下的數據庫恢復工作,在這種模式下,數據庫可以恢復到任一時刻(可以在應用歸檔日志文件恢復時取消以中斷恢復過程).而且,即便因意外而導致我們的每日數據庫備份沒有成功執行時,仍然可以通過幾天前的冷/熱備份+連續的歸檔日志文件來完成我們的數據庫恢復工作.
      
     另注, 可以直接通過命令"recover database" 來完成整個恢復過程,不過這樣感覺缺乏成就感.除非對備份或是自己的水平很有信心,否則不建議使用.
      
     以上測試通過.
    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 吉隆县| 云龙县| 凌源市| 大连市| 和平县| 仁寿县| 凌源市| 迁西县| 治多县| 修文县| 大渡口区| 甘泉县| 色达县| 壤塘县| 本溪市| 双柏县| 山西省| 三明市| 施甸县| 满城县| 遂川县| 隆安县| 莱州市| 府谷县| 托里县| 南皮县| 平湖市| 翼城县| 贺兰县| 贺州市| 新化县| 麻城市| 安阳县| 庆安县| 阜城县| 寿宁县| 剑阁县| 沙田区| 门头沟区| 瑞金市| 石台县|