引言: 單位需要對(duì)一例數(shù)據(jù)庫環(huán)境進(jìn)行數(shù)據(jù)恢復(fù),筆者備份好原環(huán)境下的文件后,搭建與原有一致的環(huán)境,根據(jù)報(bào)錯(cuò)代碼進(jìn)行處置,終于實(shí)現(xiàn)了正常啟動(dòng)數(shù)據(jù)庫。本文介紹故障的排除過程。
接到業(yè)務(wù)部門的支援請(qǐng)求,需要對(duì)一例數(shù)據(jù)庫環(huán)境進(jìn)行數(shù)據(jù)恢復(fù),雖然好久不碰數(shù)據(jù)庫,自我感覺已有許多生疏,但還是抱著技術(shù)人員的好奇心打算嘗試一下。
首先了解當(dāng)前的基本情況,原環(huán)境是一個(gè)基于Windows XP部署的Oracle 10g數(shù)據(jù)庫物理機(jī),受硬件故障影響,數(shù)據(jù)庫環(huán)境已不可用,但ORACLE_HOME目錄下,包括表空間dbf在內(nèi)的所有文件均未受損,數(shù)據(jù)庫用戶賬號(hào)密碼還記得,此外就沒有其他信息了。基于此,計(jì)劃單獨(dú)重建一個(gè)Windows虛機(jī)將實(shí)例進(jìn)行異機(jī)恢復(fù),成功后將數(shù)據(jù)庫進(jìn)行數(shù)據(jù)泵導(dǎo)出提供給對(duì)方自行利用。
由于原環(huán)境Oracle 10g的情況無法收集足夠多信息,第一次嘗試時(shí)操作系統(tǒng)安裝了Windows 7 x64版,數(shù)據(jù)庫軟件采用64位的10.2.0.4.0版。根據(jù)網(wǎng)上搜索的資料,大致確定了處置的步驟:創(chuàng)建同名實(shí)例→停止實(shí)例→覆蓋dbf數(shù)據(jù)文件→啟動(dòng)實(shí)例→根據(jù)報(bào)錯(cuò)提示見招拆招。然而,替換數(shù)據(jù)文件后的實(shí)例啟動(dòng),報(bào)錯(cuò)信息涉及參數(shù)、控制文件、日志文件等一系列報(bào)錯(cuò),根本無從下手,必須立即調(diào)整解決辦法。
基于手上已有完整的冷備份,實(shí)例自身的信息是完整的,假設(shè)能和Oracle軟件建立關(guān)聯(lián),則聯(lián)系的緊密性會(huì)比替換一個(gè)實(shí)例中的文件更有效。觀察當(dāng)前實(shí)例各個(gè)文件和文件夾的路徑,通過dbca刪除剛才建立的實(shí)例,將冷備份文件復(fù)制到已刪除的實(shí)例創(chuàng)建的文件路徑,使用oradim命令在命令行下添加實(shí)例,注意使用管理員身份運(yùn)行“命令提示符”,否則權(quán)限不足又導(dǎo)致其他的報(bào)錯(cuò)。……