Windows系統崩潰後恢復Oracle 9i資料庫

gjm008發表於2009-01-19
使用者的系統崩潰,這次的環境是Oracle 9i,作業系統是windows2003。資料庫的資料都存在,需要恢復。

  具體做法和恢復10G有些類似:

  1.將以前的目錄改名,重新按照以前的結構安裝資料庫軟體。

  2.將以前資料檔案中的 d:\oracle\oradata 和d:\oracle\admin 檔案拷貝到對應新建的目錄下。

  3.將引數檔案,listener.ora,密碼檔案拷貝到對應的目錄下。

  4.啟動資料庫:


  C:\Documents and Settings\Administrator>sqlplus /nolog
  SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 10月 11 22:36:27 2008
  Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
  SQL> conn / as sysdba
  ERROR:
  ORA-12560: TNS: 協議介面卡錯誤

  5。配置察看監聽:


  C:\Documents and Settings\Administrator>lsnrctl
  LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 11-10月-2008 22:
  :04
  Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
  歡迎來到LSNRCTL,請鍵入"help"以獲得資訊。
  LSNRCTL> status
  正在連線到 (ADDRESS=(PROTOCOL=tcp)(PORT=1521))
  TNS-12541: TNS:無監聽器
  TNS: 協議介面卡錯誤
  TNS-00511: 無監聽器
  32-bit Windows Error: 61: Unknown errorITPUB個人空間h)Im[u
  LSNRCTL> start
  啟動tnslsnr:請稍候...
  Failed to open service , error 1060.
  TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Production
  寫入e:\oracle\ora92\network\log\listener.log的日誌資訊
  監聽:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xjserver31)(PORT=1521)))
  正在連線到 (ADDRESS=(PROTOCOL=tcp)(PORT=1521))
  LISTENER 的 STATUS
  ------------------------
  別名 LISTENER
  版本 TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - ProducITPUB個人空間i bf5kxpW D!t
  tion
  啟動日期 11-10月-2008 22:38:11
  正常執行時間 0 天 0 小時 0 分 0 秒
  跟蹤級別 off
  安全性 OFF
  SNMP OFF

監聽器日誌檔案 e:\oracle\ora92\network\log\listener.log

  8L)f,\3A.f0監聽端點概要...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xjserver31)(PORT=1521)))

  監聽器不支援服務

  命令執行成功

  狀態是不正確的,說明沒有監聽程式。拷貝監聽的listen.ora後,

  LSNRCTL> start

  啟動tnslsnr:請稍候...

  TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Production

  系統引數檔案為e:\oracle\ora92\network\admin\listener.ora

  寫入e:\oracle\ora92\network\log\listener.log的日誌資訊

  監聽:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))

  監聽:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xjserver31)(PORT=1521)))

  正在連線到 (ADDRESS=(PROTOCOL=tcp)(PORT=1521))

  LISTENER 的 STATUS

  別名 LISTENER

  版本 TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Produc

  tion

  啟動日期 11-10月-2008 22:40:52

  正常執行時間 0 天 0 小時 0 分 4 秒

  跟蹤級別 off

  安全性 OFF

  SNMP OFF

  監聽器引數檔案 e:\oracle\ora92\network\admin\listener.ora

  監聽器日誌檔案 e:\oracle\ora92\network\log\listener.log

 監聽端點概要

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xjserver31)(PORT=1521)))

  服務摘要

  服務 "PLSExtProc" 包含 1 個例程。

  例程 "PLSExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...

  服務 "orc1" 包含 1 個例程。

  例程 "orc1", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...

  命令執行成功

  6.啟動資料庫仍報錯:

  SQL> conn / as sysdba

  ERROR:

  TNS: 協議介面卡錯誤

  解決ORA-12560: TNS: 協議介面卡錯誤,與大家共享

  今天遭遇ORA-12560: TNS: 協議介面卡錯誤的問題,經過一番努力問題已經解決,與大家共享。

  造成ORA-12560: TNS: 協議介面卡錯誤的問題的原因有三個:

  1.監聽服務沒有起起來。windows平臺個一如下操作:開始---程式---管理工具---服務,開啟服務皮膚,

  啟動oraclehome92TNSlistener服務。

  2.database instance沒有起起來。windows平臺如下操作:開始---程式---管理工具---服務,開啟服務

  皮膚,啟動oracleserviceXXXX,XXXX就是你的database SID.

  3.登錄檔問題。regedit,然後進入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0將該環境變數ORACLE_SI

  D設定為XXXX,XXXX就是你的database SID.或者右幾我的電腦,屬性--高階--環境變數---系統變數--新建

  ,變數名=oracle_sid,變數值=XXXX,XXXX就是你的database SID.或者進入sqlplus前,在command line下

  輸set oracle_sid=XXXX,XXXX就是你的database SID.

  經過以上步驟,就可以解決問題。

  最後發現是沒有指定oracle_sid造成,指定後資料庫正常啟動。

  7.本次恢復遇到3個不太順利的事情:

  1.沒有指定ORACLE的ORACLE_SID,9I需要手工指定。

  2.崩潰前資料庫的安裝檔案是在E盤下,崩潰後重新安裝的資料庫在D盤(由於光碟機的緣故),結果第一次安裝不成功。這個問題的解決可以找到d:/oracle/ora92/db_1/network/admin/listener.ora 中察看具體的路徑。

  3.曾報“areasqueries”的錯誤,結果查明是資料庫不支援中文路徑。

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

相關文章