ORACLE 11G 無法連線到資料庫例項故障排除

zhengnx發表於2015-03-04

虛擬機器安裝的oracle,前幾次登入沒問題。現在開啟虛擬機器後,服務中的oracle服務都可以啟動,但在Net Manager裡orcl連線不上,提示ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist。。
執行如下兩個命令:
sqlplus / as sysdba
startup force
我用的是oracle11g,昨天非正常關機了一下,現在啟動了相關的幾個服務,都可以啟動,但是用net configuration assistant測試連線總是不成功,企業管理器跟SQL PLUS都登陸不了。出現以下錯誤提示:
正在連線...ORA-01033: ORACLE initialization or shutdown in progress
測試未成功。

您提供的一些資訊可能不正確。
單擊“後退”檢查提供的 Net 服務名的資訊, 或單擊“更改登入”來更改使用者名稱。

請知道的幫個忙解答下,謝謝!!

1、進入CMD,; 
2、執行sqlplus "/as sysdba" 
SQL>shutdown immediate 停止服務 
SQL>startup 啟動服務,觀察啟動時有無資料檔案載入報錯,並記住出錯資料檔案標號 
SQL>shutdown immediate 再次停止服務 
SQL>startup mount 
SQL> recover datafile 2 恢復出錯的資料檔案 
SQL>shutdown immediate 再次停止服務 
SQL>startup 啟動服務,此次正常

OracleOraDb10g_home1TNSListener
OracleServiceORCL
服務只開這兩項就行了,net manager中第二項新新增一個服務,網路服務名隨意取一個,主機名:是你的計算機IP或者你的主機名,最好用你的IP,或者127.0.0.1 資料庫例項是你的資料庫例項名,一路next,最後再測試一下。




ORACLE 11G 無法連線到資料庫例項故障排除

之前我透過em更改了sys,system……幾個帳號的密碼,於是出現了上面的錯誤。

 

解決方法:

(紅色的字表示我輸入的,那幾個使用者口令輸入時是看不見的。)

1.         開始——執行——cmd  參照下面

 

C:\>emca -repos drop

 

EMCA 開始於 2010-2-16 23:51:02

EM Configuration Assistant, 11.1.0.5.0 正式版

版權所有 (c) 2003, 2005, Oracle。保留所有權利。

 

輸入以下資訊:

資料庫 SID: orcl

監聽程式埠號1521

SYS 使用者的口令:oracle

SYSMAN 使用者的口令: oracle

SYSMAN 使用者的口令: oracle

是否繼續? [(Y)/(N)]: y

2010-2-16 23:51:47 oracle.sysman.emcp.EMConfig perform

資訊正在將此操作記錄到 C:\app\Administrator\cfgtoollogs\emca\orcl\emca_2010_02

_16_23_51_02.log

2010-2-16 23:51:48 oracle.sysman.emcp.ParamsManager checkListenerStatusForDBCont

rol

警告初始化 SQL 連線時出錯。無法執行 SQL 操作

2010-2-16 23:51:48 oracle.sysman.emcp.EMReposConfig invoke

資訊正在刪除 EM 資料檔案庫 (此操作可能需要一段時間)...

2010-2-16 23:53:38 oracle.sysman.emcp.EMReposConfig invoke

資訊已成功刪除資料檔案庫

已成功完成 Enterprise Manager 的配置

EMCA 結束於 2010-2-16 23:53:38

 

 

C:\>emca -repos create

 

EMCA 開始於 2010-2-16 23:54:28

EM Configuration Assistant, 11.1.0.5.0 正式版

版權所有 (c) 2003, 2005, Oracle。保留所有權利。

 

輸入以下資訊:

資料庫 SID: orcl

監聽程式埠號1521

SYS 使用者的口令: oracle

SYSMAN 使用者的口令: oracle

SYSMAN 使用者的口令: oracle

是否繼續? [(Y)/(N)]: y

2010-2-16 23:55:19 oracle.sysman.emcp.EMConfig perform

資訊正在將此操作記錄到 C:\app\Administrator\cfgtoollogs\emca\orcl\emca_2010_02

_16_23_54_28.log

2010-2-16 23:55:19 oracle.sysman.emcp.EMReposConfig createRepository

資訊正在建立 EM 資料檔案庫 (此操作可能需要一段時間)...

2010-2-17 0:01:29 oracle.sysman.emcp.EMReposConfig invoke

資訊已成功建立資料檔案庫

已成功完成 Enterprise Manager 的配置

EMCA 結束於 2010-2-17 0:01:29

 

 

C:\>emca -config dbcontrol db

 

EMCA 開始於 2010-2-17 0:02:49

EM Configuration Assistant, 11.1.0.5.0 正式版

版權所有 (c) 2003, 2005, Oracle。保留所有權利。

 

輸入以下資訊:

資料庫 SID: orcl

已為資料庫 orcl 配置了 Database Control

您已選擇配置 Database Control, 以便管理資料庫 orcl

此操作將移去現有配置和預設設定並重新執行配置

是否繼續? [(Y)/(N)]: y

監聽程式埠號1521

SYS 使用者的口令: oracle

DBSNMP 使用者的口令: oracle

SYSMAN 使用者的口令: oracle

SYSMAN 使用者的口令通知的電子郵件地址 (可選):

通知的發件 (SMTP) 伺服器 (可選):

-----------------------------------------------------------------

 

已指定以下設定

 

資料庫 ORACLE_HOME ................ C:\app\Administrator\product\11.1.0\db_1

 

本地主機名 ................ testpc-pmb3pvmj

監聽程式埠號 ................ 1521

資料庫 SID ................ orcl

通知的電子郵件地址 ...............

通知的發件 (SMTP) 伺服器 ...............

 

-----------------------------------------------------------------

是否繼續? [(Y)/(N)]: y

2010-2-17 0:03:59 oracle.sysman.emcp.EMConfig perform

資訊正在將此操作記錄到 C:\app\Administrator\cfgtoollogs\emca\orcl\emca_2010_02

_17_00_02_49.log

2010-2-17 0:04:00 oracle.sysman.emcp.util.DBControlUtil stopOMS

資訊正在停止 Database Control (此操作可能需要一段時間)...

2010-2-17 0:04:05 oracle.sysman.emcp.EMReposConfig uploadConfigDataToRepository

資訊正在將配置資料上載到 EM 資料檔案庫 (此操作可能需要一段時間)...

2010-2-17 0:04:59 oracle.sysman.emcp.EMReposConfig invoke

資訊已成功上載配置資料

2010-2-17 0:05:15 oracle.sysman.emcp.util.DBControlUtil configureSoftwareLib

資訊軟體庫已配置成功。

2010-2-17 0:05:15 oracle.sysman.emcp.EMDBPostConfig configureSoftwareLibrary

資訊正在部署預配檔案...

2010-2-17 0:05:22 oracle.sysman.emcp.EMDBPostConfig configureSoftwareLibrary

資訊預配檔案部署成功。

2010-2-17 0:05:22 oracle.sysman.emcp.util.DBControlUtil secureDBConsole

資訊正在保護 Database Control (此操作可能需要一段時間)...

2010-2-17 0:05:34 oracle.sysman.emcp.util.DBControlUtil secureDBConsole

資訊已成功保護 Database Control

2010-2-17 0:05:34 oracle.sysman.emcp.util.DBControlUtil startOMS

資訊正在啟動 Database Control (此操作可能需要一段時間)...

2010-2-17 0:06:24 oracle.sysman.emcp.EMDBPostConfig performConfiguration

資訊已成功啟動 Database Control

2010-2-17 0:06:24 oracle.sysman.emcp.EMDBPostConfig performConfiguration

資訊: >>>>>>>>>>> Database Control URL   <<<<<<

<<<<

2010-2-17 0:06:40 oracle.sysman.emcp.EMDBPostConfig invoke

警告:

************************  WARNING  ************************

 

管理資料檔案庫已置於安全模式下在此模式下將對 Enterprise Manager 資料進行加密。

加密金鑰已放置在檔案 C:\app\Administrator\product\11.1.0\db_1\testpc-pmb3pvmj_or

cl\sysman\config\emkey.ora 中。請務必備份此檔案因為如果此檔案丟失則加密資料

將不可用。

 

***********************************************************

已成功完成 Enterprise Manager 的配置

EMCA 結束於 2010-2-17 0:06:40

 

2.         檢視服務中 OracleDBConsoleorcl 服務是否存在並已啟動(啟動型別:自動)。

 

此時訪問 就應該沒有問題了。

如果還不行,則cmd 參照下面:

 

C:\>emctl status dbconsole

Oracle Enterprise Manager 11g Database Control Release 11.1.0.6.0

Copyright (c) 1996, 2007 Oracle Corporation.  All rights reserved.

/console/aboutApplication

Oracle Enterprise Manager 11g is running.

------------------------------------------------------------------

Logs are generated in directory C:\app\Administrator\product\11.1.0\db_1/testpc-

pmb3pvmj_orcl/sysman/log

 

注意綠色那行表示執行OK了,不行的話在cmd裡啟動一下Oracle Enterprise Manager服務。

 

 

啟動Oracle Enterprise Manager服務的命令:emctl start dbconsole

停止Oracle Enterprise Manager服務的命令:emctl stop dbconsole

 

PS:在Windows裡玩Oracle簡直能讓人瘋,穩定性不是一般的差了。

 

PLSQL Developer 不能連線 oracle 11g 64位 的解決辦法

前言:

  plsql developer無法連線oracle server64bit分為兩種情況。第一種情況是在oracle server 64bit的資料庫伺服器上安裝plsql,第二種情況是在另外的機器上安裝plsql developer連線oracle server 64bit資料庫伺服器。

錯誤症狀:

      Initialization error     
      SQL*Net not properly installed
      OracleHomeKey:       
      OracleHomeDir:

原因:

  oracle client是64位的,而plsql是32位的,兩者不相容

第一種情況解決辦法1:

  下載跟oracle伺服器同版本的instantclient,然後配置PLSQL即可。在perference->Connection裡面設定OCI Library和Oracle_Home,例如本機設定為:

Oracle Home : D:\app\oracle\product\11.2.0\instantclient_11_2
OCI Library :D:\app\oracle\product\11.2.0\instantclient_11_2\oci.dll

 像其他的navicat連線oracle server 64bit也是需要現在這個instantclient,然後指定oci.dll。可以參考部落格:Navicat Premium 連線 Oracle 資料庫

注意:(2014-7-17)

如果使用上面的這種方法的話,那麼PLSQL讀取的配置檔案也是instantclient_11_2目錄下的配置檔案,比如我的配置檔案路徑就是

D:\app\oracle\product\11.2.0\instantclient_11_2\NETWORK\ADMIN

此時使用oracle server 64bit自帶的net configuration assistant以及net manager是沒有用的。不過可以在net configuration assistant當中配置,然後將配置好的配置檔案覆蓋到\instantclient_11_2\目錄下

比如我可以將D:\app\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN當中的三個配置檔案(listener.ora、sqlnet.ora、tnsnames.ora)覆蓋到D:\app\oracle\product\11.2.0\instantclient_11_2\NETWORK\ADMIN當中

第一種情況解決辦法2:

  在安裝oracle server 64bit以後,再安裝oracle_client_32bit,然後在配置上有一下注意點:

  1. oracle server 64bit配置監聽器listener和資料庫連線名testdb
  2. oracle_client_32bit不要配置監聽器,只配置資料庫連線名testdb

 然後安裝plsql,連線testdb,正常連線。

第二種情況解決方法

  安裝oracle_client_32bit,建立資料庫連線,安裝plsql developer,這樣就能夠正常連線。

 

 TNS_ADMIN的設定

 這個環境變數是用來設定到底使用那個tns配置檔案的。因為我們在一臺機器上面安裝oracle server 64bit和oracle client 32bit,那麼就會有兩個tns的配置檔案,兩個配置檔案放在一下目錄:

  1. D:\app\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN
  2. D:\app\oracle\product\11.2.0\client_1\NETWORK\ADMIN

如果不設定TNS_ADMIN,那麼預設使用client_1的tns

如果設定環境TNS_ADMIN=D:\app\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN,那麼上面的路徑會發生改變。



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

相關文章