面對oracle ocfs2檔案丟失,你能想到解決辦法有哪些?
一、什麼是Linux檔案系統?
Linux檔案系統中的檔案是資料的集合,檔案系統不僅包含著檔案中的資料而且還有檔案系統的結構,所有Linux 使用者和程式看到的檔案、目錄、軟連線及檔案保護資訊等都儲存在其中。 Linux是一個效能穩定、功能強大、效率高的作業系統。它在功能特性方面與Unix系統相似,同時又具有多工、多使用者、多平臺等若干特性。
二、故障描述
由於使用者誤操作,將Linux檔案系統誤裝入到Ocfs2檔案系統的資料捲上,導致原始Ocfs2檔案系統被新格式化Ext4檔案系統,據對兩種檔案系統格式化方式的瞭解,Ext4檔案系統每隔幾百兆會寫入檔案系統的原始資訊的特性,使用者的資料可能受到一定程度的破壞。
三、備份資料
1、將儲存以只讀模式對映給備份伺服器。
2、使用dd,Winhex等專業備份工具將對映到備份伺服器中的資料做全部映象。
3、做完全部映象後,將所有儲存配置及鏈路還原至初始狀態,之後資料恢復操作均不對原始硬碟做任何操作
四、故障分析
1、分析ocfs檔案系統結構
找到ocfs2檔案系統的超級塊,透過分析超級塊得出該檔案系統的一些基本結構資訊,然後透過客戶給出的虛擬磁碟檔名稱,查詢到虛擬磁碟檔案的目錄項,繼而找到所對應的所有一級索引項和二級索引項,並利用自主開發的檔案系統解析程式,對已備份的資料進行檔案系統解析。ocfs2檔案系統的索引項結構如下。
2、修復檔案系統
修復損壞的檔案系統,對原始Ocfs2檔案系統做一致性檢測,並對損壞的區域進行人工修復。
五、恢復資料
1、 生成資料
利用自主開發的針對Ocfs2不完整檔案系統的解析工具對已修復的Ocfs2檔案系統進行解析。並根據檔案系統分析的結果,編寫對應的資料提取程式,利用程式最大程度的恢復每一個虛擬磁碟檔案,並對恢復的每一個虛擬磁碟檔案進行一致性檢測。
2、 檔案檢測與修復
對恢復虛擬磁碟檔案進行解析,驗證虛擬磁碟檔案是否有錯誤,並嘗試修復。恢復其中的使用者檔案,對已恢復的使用者檔案進行一致性檢測,並嘗試修復損壞的檔案。
六、驗證資料
1、驗證虛擬機器
針對使用者比較重要的虛擬機器做驗證,發現虛擬機器大多都可以開機,可以到登陸介面。有部分虛擬機器開機藍色畫面或開機檢測磁碟,但是進過光碟修復之後都可以啟動。
部分虛擬機器開機如下:
另外發現一臺虛擬機器磁碟檔案恢復之後,透過解析發現該虛擬機器中沒有資料,繼續對該虛擬磁碟檔案進行分析,發現該檔案索引項存在,但是索引結構並不多,資料量也很少,有可能存在認為清零或修改的情況,也可能虛擬機器原本就沒有多少資料。
2、驗證資料庫
針對重點虛擬機器中的資料庫做驗證,發現資料庫都正常。 部分資料庫可能與應用程式對接有的一定問題,經使用者聯絡應用程式原廠的工作人員,經過修復之後,資料庫都可以正常使用。
七、移交資料
由於時間緊迫,先 使用專業工具“UFS”依次匯出ocfs2中的虛擬機器。然後安排工程師將R510伺服器上的虛擬磁碟資料帶到使用者現場。
在現場使用網線將 R510伺服器接入到使用者內部的網路當中,然後透過NFS共享,將虛擬機器磁碟檔案上傳到使用者的伺服器上,然後透過ovm虛擬機器管理工具進行虛擬機器掛載。由於虛擬機器數量不是很多,大小也不是很大,比較快的完成了資料移交。
八、資料恢復總結
整個資料恢復的過程 中,對ocfs2檔案結構的分析佔用了比較多的時間,根據ext4檔案系統格式化的特性,Ext4檔案系統每隔幾百兆會寫入檔案系統的原始資訊,對使用者的資料造成了很小的損壞,資料恢復完成後使用者對我們的恢復結果表示認同。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31380569/viewspace-2641764/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 丟失Oracle中資料檔案Ora時的解決辦法Oracle
- 系統檔案丟失怎麼辦 系統檔案損壞的解決辦法
- vuex頁面重新整理資料丟失的解決辦法Vue
- PHP中SESSION丟失(不能跨頁面傳遞)解決辦法PHPSession
- 隨身碟丟失檔案的找回辦法
- mysql丟失root密碼的解決辦法MySql密碼
- session丟失與解決辦法的資料Session
- Session莫名丟失的原因及解決辦法Session
- Session丟失的解決辦法小結 (轉)Session
- oracle控制檔案的損壞或完全丟失的恢復辦法Oracle
- AWS建立AMI映像資料丟失解決辦法
- Linux root密碼丟失的解決辦法Linux密碼
- ntldr is missing怎麼解決 ntldr丟失的解決辦法
- 非歸檔下日誌檔案丟失的處理辦法
- 各類系統ROOT密碼丟失解決辦法密碼
- asp.net Session丟失的解決辦法小結ASP.NETSession
- 請問 django admin 介面 css 丟失解決辦法?DjangoCSS
- Oracle聯機日誌檔案丟失解決方法一例Oracle
- 聯機日誌檔案丟失解決方法
- 【redo】日誌檔案的丟失解決方法
- coreldraw檔案丟失(損壞)的恢復處理辦法
- 檔案無法粉碎解決辦法
- Win10系統KB4549951導致個人檔案丟失BUG的解決辦法Win10
- Session容易丟失的一些常見解決辦法Session
- 解決Oracle資料庫日誌檔案丟失恢復問題Oracle資料庫
- 使用flashback快速解決當前日誌檔案丟失
- 聯機日誌檔案丟失解決方法(二)
- 聯機日誌檔案丟失解決方法(一)
- 頁面效能優化辦法有哪些?優化
- Ceph的客戶端丟失資料夾的解決辦法客戶端
- Oracle Password檔案丟失的恢復Oracle
- nuget打包檔案丟失如何使用powershell指令碼解決指令碼
- 將企業檔案共享解決方案與資料丟失防護配對
- 歸檔模式下的日誌檔案丟失的解決方法模式
- 上傳檔案(圖片)失敗 error=6 找不到臨時檔案解決辦法Error
- win10 計算機丟失logmanager怎麼辦 win10丟失log.dll檔案的解決方法Win10計算機
- Redis SortedSet結構score欄位丟失精度問題解決辦法Redis
- 丟失msvcr120_clr0400.dll解決辦法標題