恢復800G資料量資料庫一則

anycall2010發表於2008-07-22

  本來今天是搞一臺IBM的破PC機,結果客戶的資料庫出現了問題.請我去幫忙.為了維護使用者關係,自然過去看看了.其實,在沒有看到問題之前,我心裡也沒有底.

首先檢測故障現象:當然是sqlplus /nolog, conn sys/XXXX as sysdba, startup ...然後報找不到控制檔案的錯誤.然後趕緊重新使用startup nomount命令,發現可以啟動. 

詢問出現故障的原由: 維護人員,在加表空間的時候,發現新增資料庫的路徑不對,然後刪除該資料庫檔案,結果刪錯了檔案,出現資料庫不能啟動.但是有昨天的冷備份.

初步判斷:是不是刪除表空間,造成資料庫結構變化,出現資料檔案和控制檔案不一致?

具體做法:

修改現有控制檔案的名字,將昨天冷備份的控制檔案拷貝到該路徑下,測試,結果情況和原出的一樣.

後來發現自己想錯了,應該是引數檔案和控制檔案的關係.肯定是控制檔案和引數檔案不一致.

接下來開始分析引數檔案:

create pfile from spfile;//轉儲引數檔案

檢視引數檔案,檢查控制檔案的位置.也沒錯啊?怎麼回事?該吃中午飯了....

吃中午飯的時候,哪個程式開發的人告訴我,其實昨天,他在刪除表空間的時候.其實只報修復一個表空間檔案,可是他不知道,然後就刪除ORCLE資料庫所有的檔案,準備用以前備份的TAR包進行恢復.其實,現在資料庫裡面的東西已經不是現在的資料了....

聽了這些話,我眉頭一皺,看來只能對資料庫進行冷備份還原了.然後準備將所有的檔名進行改名,用TAR包恢復,把所有的東西覆蓋,可是800G的資料量,要恢復很常時間.於是,我測試著除了資料檔案,其他檔案進行替換.可是我發現使用ORACLE使用者,進行FTP的時候,不讓傳檔案?這是什麼原因呢?

進入作業系統:su , cd /. ls -l,最後發現存放資料檔案的資料夾已經更改為ROOT使用者許可權,我一下子矛塞頓開了,

肯定是許可權不對,造成引數檔案不能呼叫控制檔案.

chown -R oracle:oinstall /data, 修改資料檔案許可權,然後將控制檔案修改到昨天備份的狀態.

啟動資料庫,結果資料庫啟動了.

經過分析:

該軟體公司的哥們,一定是用ROOT使用者進行備份TAR包,在ROOT使用者下解壓TAR包,造成許可權更改.所以,問題就迎刃而解了.

總結:

首先備份重於一切

其次在搞資料庫之前,問問自己在做什麼?什麼叫做"無知者無畏"!

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8334342/viewspace-406973/,如需轉載,請註明出處,否則將追究法律責任。

相關文章