成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

數據恢復:僅僅只做備份是不夠的

運維 系統運維
是不是我們的數據庫,加上一套成熟可靠的備份軟件(比如NBU、DP、TSM等),以及購置了可靠的大容量的帶庫就足夠了?其實不然,關鍵業務數據恢復僅僅只做備份是不夠的,或許本文分享的這個案例能夠給我們一些啟示。

是不是我們的數據庫,加上一套成熟可靠的備份軟件(比如NBU、DP、TSM等),以及購置了可靠的大容量的帶庫就足夠了?或者下面一個案例能夠給我們一些啟示。

案例來自于一個老客戶,一套重要系統的Oracle RAC數據庫,由于硬件問題,一個包含關鍵業務數據的文件被離線(在歸檔模式下,寫文件出錯會導致文件被置為離線狀態,而不是庫宕掉)。在嘗試recover datafile的時候,提示缺少一個歸檔日志。歸檔日志已經被備到帶庫上,本地磁盤上已經沒有了這個歸檔日志文件。

這套庫是用TSM備份的,使用rman還原歸檔日志,稱找不到這個歸檔日志。看起來出問題了,在rman中用下面的命令:

list backup of archivelog sequence 18884 thread 2;

返回的結果說沒有找到這個歸檔日志的備份。甚至于用命令:

list backup of archivelog all;

發現好些歸檔日志沒有了備份。但是這些文件又不在本地磁盤上。那么,這里有幾種可能:

  1. 歸檔日志被人為地刪除,根本沒有備份
  2. 歸檔日志的備份已經被刪除,通過delete backup命令

第1種情況,可以從v$archived_log視圖判斷歸檔日志到底有沒有備份(通過BACKUP_COUNT列)。我們可以從備份保留的日志中判斷第2種情況是否存在。

檢查備份操作的日志,發現恢復所需要的歸檔日志文件是成功備份了的。那備份怎么消失了?在備份操作的日志目錄中,還發現一個日志文件有crosscheck backup然后delete expired backup的記錄,而被刪除的備份正好有恢復所需要的歸檔日志所在的備份。所以,這里可以知道,出現了上述說的第2種情況,備份被刪除了。

為什么會出現備份在crosscheck backup之后成為expired狀態,這個結果就來源于在rman中進行crosscheck backup時,備份服務器返回的結果表明這個備份不可訪問了,或許是權限問題,或者是配置不當,或者是備份文件真的不能訪問了。從目前的情況來看,備份都是成功的,看上去帶庫、備份服務器都是好的。不過這里值得注意的是,這是一套RAC數據庫,歸檔日志是在節點1上完成的,在節點1上也進行了crosscheck backup,并且是先進行crosscheck,而其結果表明備份是available狀態的。但是隨后節點2的crosscheck的結果是expired,那只能說明由于權限或配置問題,導致節點2不能訪問到節點1所做的備份(當然不排除在這個時間窗口內備份在帶庫上或備份服務端刪除的可能,但是可能性較小,所以分析問題得先從可能性更大的入手)。

是不是沒救了?答案在于,備份到底還在不在帶庫上?

節點1先crosscheck正常,隨后節點2 crosscheck稱備份文件沒有或不可訪問,然后節點2刪除了備份。只不過這里要注意的是:既然crosscheck不能訪問不到備份,那么delete操作也應當不會真正刪除備份(備份都訪問不到怎么能物理刪除呢?),只是把備份信息從catalog里面刪除掉而已。所以這里的結論是真正的備份還在帶庫上。可以找備份管理員或通過TSM命令來檢查,不過客戶說,搞TSM的人找不到了。

接下來,嘗試找找看,有沒有在備份歸檔日志之后,但在刪除備份之前的備份控制文件存在。可惜沒有,如果有,可以用這個控制文件來還原歸檔日志。

或許可以通過手工在catalog庫里面添加記錄,然后同步到控制文件來進行恢復。

不過我們還有另一個方法,就是直接使用dbms_backup_restore包:

  1. DECLARE 
  2. v_dev varchar2(50); 
  3. v_done boolean:=false
  4. BEGIN 
  5. v_dev:=sys.dbms_backup_restore.deviceAllocate(type=>'sbt_tape',ident=>'t1',params=>'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)'); 
  6. dbms_backup_restore.RestoreSetArchivedLog(destination=>'/arch'); 
  7. dbms_backup_restore.RestoreArchivedLog(thread=>2,sequence=>18884); 
  8. dbms_backup_restore.RestoreBackupPiece(done => v_done,handle => 'xxx_archlog_backup<xxxx1_7941 :796937510>.dbf', params => null); 
  9. sys.dbms_backup_restore.deviceDeallocate; 
  10. END; 

幸運的是,歸檔日志成功還原,然后數據文件成功recover。

從這個案例中,我們獲得的是:

  • 并不是說,備份沒有報錯,備份正常運行就足夠了。在備份的時候,為了避免備份出錯而失敗,在備份之前進行crosscheck archivelog,把人為刪除掉的歸檔從catalog中去掉從而不備份,也就在備份時不報錯;或者是備份時skip inaccessible;實際上這有點類似于掩耳盜鈴,備份可能是殘缺的,根本不可用。
  • rman中的crosscheck backup,使得backup成為expired狀態,這本身說明可能存在問題,而不僅僅是從catalog中刪除備份了事。針對這個案例來說,backup成為expired,本身就是一種異常,就應該要去檢查備份服務器的配置等。
  • 所有涉及備份相關的操作,包括備份,刪除備份,crosscheck備份,保留詳細的rman日志是非常有用的。
  • 應該在每次備份后,對控制文件進行一次備份;打開控制文件的AUTO BACKUP也是有必要的。
責任編輯:黃丹 來源: laoxiong.net
相關推薦

2013-08-21 10:04:32

大數據Gartner

2019-03-01 10:42:10

折疊手機iPhone智能手機

2009-11-28 20:08:20

谷歌ChromeWeb應用

2018-07-06 15:07:17

2010-03-03 14:42:54

ASP.NET MVC

2011-03-11 09:53:46

FacebookMySQL

2017-09-28 17:20:17

榮之聯DataZoohadoop

2018-12-14 09:48:23

Redis數據故障

2018-06-29 08:17:53

2017-01-06 08:24:23

備份恢復大數據

2012-02-23 09:43:36

虛擬化VDIVHD備份

2017-07-10 14:26:03

Mysql數據備份數據恢復

2023-06-06 07:42:10

參數類型函數

2016-05-13 19:05:24

2020-12-16 20:30:24

Linux系統備份系統恢復

2016-11-18 15:42:06

存儲

2011-03-25 13:43:56

CactiEZ備份

2022-08-05 08:48:33

KubernetesEtcd數據

2018-09-11 10:30:18

MySQL存儲引擎數據備份

2018-05-28 08:21:56

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 操亚洲 | www一级片 | 国产一区二区三区 | 成年人免费看的视频 | av网站免费观看 | 国产高清在线精品一区二区三区 | 国产一区二区三区视频 | 午夜小视频在线播放 | 五月天婷婷综合 | 欧美xxxx日本 | 人人人干 | 日韩av在线中文字幕 | 国产不卡在线播放 | 久久国产欧美日韩精品 | h片免费看| 999久久久 | 午夜婷婷激情 | 国产精品久久久久久久久久久新郎 | 国产激情三区 | 91精品国产综合久久精品 | 成人不卡一区二区 | 日韩伦理一区二区 | 精品美女在线观看视频在线观看 | 久久综合久久久 | 成人精品国产一区二区4080 | 国产成人精品一区二 | www.玖玖玖| 欧美视频在线播放 | 欧美 日韩 国产 在线 | 成人欧美一区二区三区视频xxx | 欧美精品99 | 精品福利在线 | 99视频在线看 | 日本黄色一级视频 | 国产精品无码久久久久 | 中文字幕免费在线 | 欧美精品一区二区在线观看 | 中文字幕精品视频 | 91久久精品日日躁夜夜躁欧美 | 麻豆changesxxx国产 | 色综合天天天天做夜夜夜夜做 |