茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1671880 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_0072.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2017/3/28 1:37:07
ORA-12528問題解決

在 solaris 中運行了 lsnrctl stop 將 listener 停止,然後運行 lsnrctl start 將 listener 重新開機,出現問題及解決辦法如下:
lsnrctl status
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lypch)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROCipc)))
Services Summary...
Service "LSExtProc" has 1 instance(s).
Instance "LSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "ammicly" has 1 instance(s).
Instance "ammicly", status BLOCKED, has 1 handler(s) for this service...
The command completed successfully

這個問題說明資料庫沒有Mount
連接資料庫,發現:
ORA-12528: TNS:listener: all appropriate instances are blocking new connections

sqlplus /nolog
sql>connect [email=sys/ammic@amicly]sys/ammic@amicly[/email] as sysdba
ORA-12528: TNS:listener: all appropriate instances are blocking new connections

連接的問題可以通過修改 listener.ora 的參數,把動態的參數設置為靜態的參數,紅色標注部分,然後從新啟動監聽,就 OK
SID_LIST_LISTENER =(
  SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = C:\oracle\product\10.1.0\db_1)
    (PROGRAM = extproc)
    )
    (SID_DESC =
    (GLOBAL_DBNAME = ammicly)
    (ORACLE_HOME = c:\oracle\product\10.1.0\db_1)
    (SID_NAME = ammicly)
    )
  )
  LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = lypch )(PORT = 1521))
    )
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
  )
)

通過修改 tnsnames.ora 的參數,紅色表注部分
# tnsnames.ora Network Configuration File: C:\oracle\product\10.1.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
AMMICLY =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = lypch )(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = ammicly)
    (UR=A)
    )
  )
  EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
    (CONNECT_DATA =
    (SID = PLSExtProc)
    (PRESENTATION = RO)
    )
)

然後
sqlplus /nolog
SQL>alter database mount;
SQL>alter database open;

這樣就可以啟動資料庫了;

或者用
Oradim -shutdown -sid ammicly -shuttype srvc,inst -shutmode immediate -syspwd ammic;

關閉資料庫
在用
oradim -startup -sid ammicly -starttype srvc,inst -syspwd ammic;

啟動資料庫解決;
也可以在截面上從啟動資料庫服務來解決;

總結 ORA-12528 問題是因為監聽中的服務使用了動態服務,系統啟動後,資料庫沒有正常的 MOUNT ,因此在動態模式下,就會出現這個問題,用靜態的就不會有這個問題,因此上面的方法就是把監聽設置為靜態,或者在 tnsnames.ora 中追加(UR=A)或者從啟動服務,三種方法解決問題;

-------------------------
用靜態註冊的風險是,如果在 instance 運行中,lisener 重新開機,就找不到 instance 了。換言之,靜態註冊需要先啟動 lisener,再啟動 instance。而且靜態模式下,lisener status 顯示的是 unknown 而且,用動態的話,instance nomount 狀態下,一般是 dba 需要進行操作(比如恢復),這個時候一般直接登陸到 host 進行,不使用 tns 遠端連線。

原文出處:ORA-12528問題解決 @ 資訊園 :: 痞客邦 PIXNET ::
內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   












 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|