一開機器,發現磁盤做了掃描,估計是昨天關機遇到的問題,之后Oracle出現 ora-01172 ora-01151了
連忙去查找資料解決,其中又遇到了ORA-12514錯誤,先解決這個錯誤的方法如下:
listener.ora這個文件中輸入下面信息:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = Oracle) 服務名
(Oracle_HOME = E:\oracle\product\10.2.0\db_1) db_home
(SID_NAME = Oracle) ##這個是你要添加的服務
)
(SID_DESC =
(PROGRAM = extproc)
(SID_NAME = PLSExtProc)
(Oracle_HOME = E:\oracle\product\10.2.0\db_1) ##這個服務保證你可以使用外部過程,如C程序
)
)
然后再配置tnsnames.ora文件,加入下面的內容:
Oracle =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = test) 與上面的服務名對應
)
)
在連接時你就可以這樣測試下:
tnsping Oracle
Oracle9i以后,后臺進程PMON自動在監聽器中注冊在系統參數SERVICE_NAMES中定義的服務名,SERVICE_NAMES默認為DB_NAME+DOMAIN_NAME。監聽配置文件listener.ora中可以不必指定監聽的服務名。但是,當數據庫處于關閉狀態下PMON進程沒有啟動,也就不會自動注冊監聽的實例名,所以使用sqlplus sys/his@orc0 as sysdba 會出現ORA-12514錯誤。
通過在lsnrctl中輸入set display verbose,然后再通過命令service查看,服務狀態為READY表示PMON自動注冊的服務名,而UNKNOWN則表示該服務是手工在LISTENER.ORA中配置的數據庫服務。
至于
這樣解決了,至于介質恢復:
ora-01172 ora-01151了,解決辦法如下:
c:>sqlplus /nolog
SQL> connect sys/sys@Oracle as SYSDBA
已連接
SQL> startup mount
ORA-01081: 無法啟動已在運行的 Oracle --- 請首先關閉
SQL> alter database open read only;
alter database open read only
*
ERROR 位于第 1 行:
ORA-16005: 數據庫需要恢復
SQL> recover database
完成介質恢復。
SQL> shutdown immediate
ORA-01109: 數據庫未打開
已經卸載數據庫。
Oracle 例程已經關閉。
SQL> startup
Oracle 例程已經啟動。
Total System Global Area 730931140 bytes
Fixed Size 454596 bytes
Variable Size 411041792 bytes
Database Buffers 318767104 bytes
Redo Buffers 667648 bytes
數據庫裝載完畢。
數據庫已經打開。
SQL>
于是就可以咯 本文出自:億恩科技【www.artduck.net】
服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]
|