【案例討論】災難與拯救 資料安全精彩案例大討論!歡迎大家踴躍參與!
eygle—中國地區Oracle ACE總監,也是中國地區首位Oracle ACE,雲和恩墨創始人,ITPUB論壇超級版主
secooler—Oracle ACE,國際航空運輸協會(IATA)任高階資料架構師,OCM聯盟(www.ocmu.org)創始人、ITPUB Oracle專題深入討論版版主
yxyup—現任職知名網路招聘公司系統運維負責人,曾在多家培訓中心進行Oracle教學,為企業單位提供了高質量的技術培訓,ITPUB Oracle資料庫管理版版主
kelsoncong—現任Oracle Fusion HCM Release Team運維成員,多年資料庫運維和開發經驗,ITPUB Oracle資料庫管理版版主
討論話題:
1.保護業務資料有哪些方法?
2.威脅到資料安全的因素有哪些?
3.通過以下這份案例,給您帶來哪些警示?
本期活動精彩案例分享:
【資料安全】
一次驚心動魄的ASM磁碟頭損壞故障處理過程帶來的深思
資料通常比喻為企業的血液和生命,資料安全一直是大家非常重視的話題。
Oracle資料庫,為了防止資料丟失以及構建高可用環境給出了多種架構方式。例如,為了防止Oracle例項級別的單點故障提供了RAC技術(Real Application Clusters,真正的應用叢集),RAC以Share Everything的架構方式使多個主機例項可以共享一套儲存上的資料,從而避免了由於個別例項出現故障導致資料庫不可用;RAC技術僅僅給出了例項層面的高可用解決方案,為了防止儲存層面的單點故障,Oracle又提出了Data Guard(資料衛士)技術,無論是邏輯Data Guard還是物理Data Guard都從儲存層面解決了單點故障,同時也是災備技術的最佳選擇。基於RAC和Data Guard技術,Oracle進一步又推出了MAA架構方式,即主站點是RAC架構方式,備用站點也是RAC架構方式,主備站點之間通過Data Guard技術使用redo傳輸變化的資料,確保備站點與主站點之間達到實時或者準實時的資料一致。
除此之外,Oracle還提供了各種備份恢復工具,比如物理備份恢復工具RMAN、邏輯備份恢復工具EXP/IMP EXPDP/IMPDP。基於這些工具便可以定製一套有效的備份恢復策略,以便防止資料丟失。
以上技術手段都是確保資料不丟失的必要條件,絕非充分條件!這些技術固然重要,但是與之相比,更加重要的是“人”的因素。再優秀的技術,如果沒有人來定期做健康檢查並排查潛在問題的話,這些都是“浮雲”。這裡給大家分享一個最近剛剛為客戶處理完的一個Case。起到警示的作用。
【資料庫環境描述】:
資料庫型別: 某政府核心生產系統
影響範圍: 全國性
資料量: 8T
主機型別: IBM 570
資料庫版本: 10.2.0.4.0
ASM版本: 10.2.0.4.0
資料庫架構方式:兩節點RAC架構方式;儲存使用ASM技術,並且ASM磁碟頭沒有備份;未部署Data Guard災備站點;歸檔模式,使用RMAN做全庫及增量備份。
【故障現象】:
在手工為表空間新增資料檔案的時候,觸發ASM磁碟頭損壞,ASM的alert日誌中記錄瞭如下資訊:
Sat Jun 9 01:45:51 2012
WARNING: cache read a corrupted block gn=1 dsk=39 blk=18 from disk 39
NOTE: a corrupted block was dumped to the trace file
ERROR: cache failed to read dsk=39 blk=18 from disk(s): 39
ORA-15196: invalid ASM block header [kfc.c:8033] [check_kfbh] [2147483687] [18] [2154781313 != 2634714205]
System State dumped to trace file /home/oracle/admin/+ASM/bdump/+asm1_arb0_602136.trc
NOTE: cache initiating offline of disk 39 group 1
WARNING: offlining disk 39.3734428818 (BDC_DATA_0039) with mask 0x3
NOTE: PST update: grp = 1, dsk = 39, mode = 0x6
【艱難的資料恢復過程】:
第一次嘗試:直接恢復ASM磁碟頭資料
嘗試使用Oracle KFED(Kernel Files Editor)工具修改ASM磁碟頭,如果這種方式能夠順利的恢復ASM磁碟頭的話,將是一種完美的結局,然而事與願違,此時的ASM磁碟頭損壞非一般型別的損壞(故障原因中給出分析),使用KFED無法完成恢復。第一次夢魘不期而遇。
第二次嘗試:使用RMAN進行資料恢復
既然每天都做RMAN的備份,正常情況下便可以使用RMAN進行資料恢復。因此,找來裝置上嘗試資料恢復(提醒:千萬不要在生產環境上嘗試恢復,保留現場很重要!),8T的資料拷貝以及恢復時間都是不可想象的,經過漫長的17小時的恢復,夢魘再一次來襲,在嘗試恢復的過程中突然發現,RAC的第二節點上的歸檔日誌不完整,僅剩半個月之前的歸檔日誌,這是不可饒恕的,這也就意味著,使用RMAN工具最多隻能恢復到15天前的資料,最近半個月的資料將蕩然無存。這便是典型的“無人值守”導致的災難。
第三次嘗試:盡最大努力挽回資料
由於RAC第二節點歸檔日誌的丟失導致最多可以恢復到15天前的資料,但也不要放棄希望,盡一切努力進行資料恢復。再次嘗試使用RMAN恢復資料到15天前。正如小說中常見的情景,此時,夢魘又一次降臨到這套可憐的資料庫!即便恢復到了15天前的資料,發現資料庫依然無法正常open。嘗試各種手段,啟用隱含引數等方法,亦不奏效。使用各種手段強制open資料庫後alert日誌中頻現ORA-00600錯誤,即使在邏輯匯出資料的過程中,都在頻繁的丟擲ORA-00600錯誤。最終以備份介質無效無法完美恢復而終止。
第四次終極處理方法:使用工具直接抽取ASM磁碟組中的資料
在客戶幾近崩潰的時候,最終選擇了直接資料抽取方法進行恢復,直接抽取ASM磁碟組中的資料,構造出資料檔案的全貌,又是一個10多小時的漫長資料抽取恢復時間。經過漫長的等待之後,經驗證,資料完美恢復完畢,沒有讓客戶丟失任何一條重要資料!
【故障原因】:
此次故障推測是由於底層磁碟的對映混亂導致的,比如主機重啟後導致disk number變化,導致Oracle認為ASM磁碟組的某塊盤是voting disk,進而錯誤的寫入了心跳資訊,覆蓋了原來位置上的ASM後設資料ALT,這樣一旦有大規模的reblance操作需要改上述ALT時,ASM便出現了上述故障。這種故障是無法通過簡單的KFED工具進行恢復的。
【資料安全故障總結】:
這個Case中的故障本身並不可怕,可怕的是這個過程中出現的各種險情,發人深思。我們經常提到“備份重於一切”、“有備無患”等DBA職業操守。我認為最佳的詮釋應該再加一條:在可信的架構方式下,定期對備份介質進行有效性驗證,及災備環境DRP演練的前提下!
針對此次故障的前因後果,給出以下建議:
1.給出高可用解決方案;建議使用Data Guard技術做遠端災備;
2.RMAN物理備份以及邏輯備份介質,要定期做備份介質有效性驗證;
3.“人”的因素,制定嚴格的備份恢復檢查機制,對備份以及災備環境進行日常檢查;
4.前期的架構設計很重要;
5.……
注:特別感謝secooler版主為大家提供的精彩案例!!歡迎大家踴躍討論
我的回覆:
1.保護業務資料有哪些方法?
我首先從硬手段上講
(1)常規的冷備份,如果允許shutdown的話,可以使用最原始的冷備份
(2)物理備份恢復工具RMAN,熱備份
(3)邏輯備份恢復工具EXPDP,資料泵
(4)Data Guard 主備庫模式,即專用備份節點
(5)Golden Gate 高階複製軟體
(6)Exadata 軟硬體一體機備份
(7)啟用專用冗餘伺服器,把資料備份到多個地方,當某一份資料出現故障時我們還有其他備份可用
我在從軟手段上講
(1)全方位的資料監控:一個好的監控軟體可以讓你事半功倍,舉例 我們公司在運維資料庫中就採用了quest 公司spotlight監控軟體,它可以提前預示一些警告,把災難抹殺在搖籃裡
(2)對高風險操作,需要安全測試和評估,例如 RM 操作是危險的,在不確定的情況下,可以先重新命名測試,沒有問題後在刪除
(3)制定高規範許可權和登陸制度,對不同級別的人員只給予夠用的許可權或者臨時許可權,監控登陸記錄,對不符合要求的人員給予登陸拒絕
(4)制定審計策略,可以審計 delete truncate drop 等危險操作,例如 誰 哪張表 什麼時候 做了哪些動作 可以追溯到源頭,認定責任 評估事態
(5)備份介質有效性驗證,對備份介質的有效性經常驗證,並保證在恢復時是可信的,可依靠的
(6)高可用架構設計,例如現在流行的 大規模分散式儲存叢集架構,採用這種架構我們可以有效的避免單點故障,從而有效的保護我們的資料
2.威脅到資料安全的因素有哪些?
常見因素
(1)病毒發作
(2)黑客入侵
(3)儲存裝置損壞
(4)資訊盜取
(5)說白了最主要的還是人的因素,由於人為盲目操作導致的資料丟失 例 我前幾天就幫助同事恢復了資料檔案丟失問題,他在不瞭解.dbf檔案情況下 使用了 rm -rf *.dbf
非常見因素
(1)不可抗力自然災害
(2)電源故障
(3)機箱風扇故障,案例 我們公司的新疆專案由於機箱風扇停止,溫度升高導致主機當機,資料丟失
(4)bug問題,也威脅著資料安全,例如 oracle-00600錯誤 在上面的“ASM磁碟頭損壞案例”中表現的淋漓盡致
3.通過以下這份案例,給您帶來哪些警示?
(1)給我第一個警示:千萬不能在生產庫上嘗試沒有把握的恢復,保留現場定位問題很重要
(2)給我第二個警示:做了備份也不能高枕無憂,完全放心下來,需要定期做備份有效性驗證,保證我們的備份是實時可用有效的
(3)給我第三個警示:crosscheck 歸檔檔案,使其完整有效,也成我們高度重視內容之一
(4)給我第四個警示:高可用HA架構,是保證業務續航能力首要平臺
(5)給我第五個警示:定期進行災備演練,增強容災意識
leonarding
2012.8.3
天津&早
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26686207/viewspace-739709/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 歡迎參與討論POP(Project Oriented Project)Project
- 請問struts中如何實現分頁功能,有請大家踴躍討論
- 案例討論:傳統 vs 敏捷敏捷
- 關於DAO的封裝,請板橋幫助,歡迎大家討論封裝
- 在專案中使用設計模式的淺見,歡迎大家討論:)設計模式
- 求一.NET算術演算法.歡迎朋友們都進來討論討論.演算法
- 多層架構的討論,歡迎拍磚架構
- 桌面桌布分享【歡迎大家參與】
- C語言寫的磁碟排程演算法,歡迎大家來討論C語言演算法
- 《NewSQL與NoSQL的討論》SQL
- 社群討論:開源能否拯救.NET?
- 自創一個簡單的Web分散式解決方案,歡迎大家討論Web分散式
- JAVA開原始碼交流QQ群!!歡迎加入並討論!!Java原始碼
- 如何看原始碼?請大家討論原始碼
- Jive與Ofbiz的Cache機制比較 請大家討論
- 討論:大家來討論一些連線涉及到的引數
- 如何在多個Web專案中共享資訊,歡迎討論Web
- 儲存過程和分層的討論。。儲存過程與分層難道真的是對立的嗎?歡迎大家來各抒已見儲存過程
- iOS 遵循開閉原則的實際案例討論iOS
- 案例討論:傳統專案組織為何低效?
- 關於大資料和資料庫的討論大資料資料庫
- 資料分析主題討論
- 轉蔡學鏞:該學Java或.NET,歡迎大家討論,要對事不對人呵Java
- 一個XML資料統計問題,期待大家的討論XML
- 資料蔣堂 | 資料分段討論
- [技術討論]務實與務虛
- 【MySQL】資料安全性討論思維導圖MySql
- [技術討論]多使用者(多公司)的資料庫設計討論資料庫
- 歡迎各位搞 ERP 的朋友,參與討論一下,NTP 自動同步時間,到底對系統 有多大影響..
- Oracle的學習路徑與方法討論Oracle
- [討論] 文字流介面:得與失兼其它
- 整理的一些SQL題,與討論SQL
- 請大家參與討論:如何用JBuilder7+JBoss3搭建最簡單的EJB釋出平臺?UIS3
- 資料庫系統架構討論資料庫架構
- 在大型的很繁忙的DB 上使用NTP Server 自動同步時間危害有多大?歡迎大家討論Server
- 分享一下自己的簡歷, 拋磚引玉歡迎討論
- 大家討論一下比較好Criteria框架。框架
- 資料備份方法及災難恢復探討(轉)