隨筆-314  評論-209  文章-0  trackbacks-0

          WINDOWS是很脆弱的系統(tǒng),可能裝完沒幾天就會崩潰,如果你在WINDOWS下裝有oracle,那怎么來恢復(fù)這個數(shù)據(jù)庫呢?


          一種方法是重裝數(shù)據(jù)庫后用IMP來導(dǎo)入原來的數(shù)據(jù),但使用這種方法的前提是你有以前數(shù)據(jù)的備份,并且這種方法還有許多不足的地方,如備份過舊,可能會丟失許多數(shù)據(jù)、導(dǎo)入數(shù)據(jù)太長等。


          一般情況下我們可以采用重用原來的數(shù)據(jù)庫的方法來恢復(fù)。在講步驟前先說說這種方法的原理。

          數(shù)據(jù)庫與實例對應(yīng),當(dāng)數(shù)據(jù)庫服務(wù)啟動后,我們可以用SQLPLUS "/AS SYSDBA"方法連接到一個空閑的例程,當(dāng)執(zhí)行startup啟動數(shù)據(jù)庫時,首先會在%ORACLE_HOME%/database下找當(dāng)前SID對應(yīng)的參數(shù)文件(PFILE或者SPFILE)和密碼文件,然后啟動例程;接著根據(jù)參數(shù)文件記錄的信息找到控制文件,讀取控制文件的信息,這就是mount數(shù)據(jù)庫了;最終根據(jù)控制文件的信息打開數(shù)據(jù)庫。這個過程相當(dāng)于對數(shù)據(jù)庫著了一次冷備份的恢復(fù)。

          下面的具體步驟:(我們假設(shè)原庫的所有相關(guān)文件都存在)
          1、安裝數(shù)據(jù)庫軟件
          只需安裝同版本的數(shù)據(jù)庫軟件即可,不需要創(chuàng)建數(shù)據(jù)庫。最好安裝在和原來數(shù)據(jù)庫同樣的%ORACLE_HOME%下,省得還要修改參數(shù)文件路徑等。(直接覆蓋原來的oracle即可)
          再次強(qiáng)調(diào),只安裝軟件,不創(chuàng)建數(shù)據(jù)庫,否則將數(shù)據(jù)庫軟件安裝在同樣的目錄下舊的部分?jǐn)?shù)據(jù)文件會被覆蓋,這樣數(shù)據(jù)庫也不能被恢復(fù)了。

          2、新建一個實例
          在cmd窗口執(zhí)行
          oradim -new -sid oracle9i
          注意,這個SID名稱最好與你以前的SID一樣,否則在啟動的數(shù)據(jù)需要指明pfile,并且需要重建密碼文件,比較麻煩。(當(dāng)然,如果你就不想用原來的SID也可以,把參數(shù)文件、密碼文件的名稱都改成與新SID對應(yīng)的名稱)。

          3、啟動數(shù)據(jù)庫
          做完以上兩步,就可以啟動數(shù)據(jù)庫了。
          用net start 檢查oracle服務(wù)是否已經(jīng)啟動,如果oracle服務(wù)沒有啟動,則在cmd下運(yùn)行如下命令:
          net start oracleserviceoracle9i
          然后設(shè)定必要的環(huán)境變量,在cmd窗口運(yùn)行
          set ORACLE_SID=oracle9i

          接著連接數(shù)據(jù)庫
          sqlplus "/as sysdba"
          startup

          如果正常的話,數(shù)據(jù)庫應(yīng)該就能起來了

          4、啟動監(jiān)聽
          lsnrctl start

          5、后續(xù)工作
          經(jīng)過以上幾步后,基本上就可以使用oracle了,但是使用起來有點不方便,如每次在cmd中啟動數(shù)據(jù)庫都需要先SET ORACLE_SID、在本機(jī)連接數(shù)據(jù)庫也都需要加上@TNSNAME等。我們可以修改注冊表,添加ORACLE_SID的信息,避免這些麻煩。

          在注冊表的HKEY_LOCAL_MACHINESOFTWAREORACLE下新建字符串值,名稱為ORACLE_SID,值為oracle9i。
          也可以將以下內(nèi)容保持成一個后綴名為reg的文件(文件名隨便起),然后雙擊,即可將信息導(dǎo)入到注冊表中。

          Windows Registry Editor Version 5.00

          [HKEY_LOCAL_MACHINESOFTWAREORACLE]
          "ORACLE_SID"="oracle9i"


          注意,以上步驟都是在%ORACLE_HOME%、%ORACLE_SID%都與原庫一樣的情況下討論的,雖然%ORACLE_HOME%和%ORACLE_SID%可以與原庫不一樣,但為了減少麻煩和出錯的幾率,建議不要改變則兩個值。

          posted on 2011-07-17 13:45 xzc 閱讀(571) 評論(1)  編輯  收藏 所屬分類: Oracle

          評論:
          # re: 談?wù)刉INDOWS下重裝系統(tǒng)后oracle的恢復(fù) 2011-07-17 14:42 | xzc
          (1)把舊的“E:\oracle”改名為“E:\oracle_old”
          (2)重裝oralce在“E:\oracle”目錄下.
          (3)oradim -new -sid orcl
          (4)把新的“E:\oracle”改名為“E:\oracle_new”
          (5)把舊的“E:\oracle_old”改為“E:\oracle”
          (6)sqlplus "/as sysdba"
          startup
          (7)用Net Configuration Assistant 重建一下監(jiān)聽.
          (8)導(dǎo)入注冊表
          [HKEY_LOCAL_MACHINESOFTWAREORACLE]
          "ORACLE_SID"="oracle9i"

          --下次正常啟動----
          正常啟動.bat
          net start OracleOraDb10g_home1TNSListener
          net start OracleServiceORCL
          sqlplus / as sysdba
          startup

          正常關(guān)閉.bat
          net stop OracleServiceORCL
          net stop OracleOraDb10g_home1TNSListener





            回復(fù)  更多評論
            
          主站蜘蛛池模板: 温州市| 内江市| 阿拉尔市| 栖霞市| 建德市| 宁晋县| 景德镇市| 易门县| 东兰县| 略阳县| 曲阳县| 望都县| 临澧县| 常德市| 巩留县| 华池县| 雅安市| 沿河| 陆良县| 江口县| 平顶山市| 茌平县| 靖江市| 高雄市| 高台县| 平原县| 深水埗区| 青龙| 铅山县| 周至县| 临猗县| 平度市| 东乡族自治县| 姚安县| 青铜峡市| 池州市| 寻乌县| 旌德县| 白山市| 霍邱县| 濉溪县|