ice world

          There is nothing too difficult if you put your heart into it.
          posts - 104, comments - 103, trackbacks - 0, articles - 0
          近日在配置Oracle 10G的流復(fù)制環(huán)境時,遇到一個問題,關(guān)閉數(shù)據(jù)庫(shutdown immediate)后,通過SQL Plus連接數(shù)據(jù)庫:conn sys/his@orc0 as sysdba,出現(xiàn)如下錯誤:

              ORA-12514: TNS: 監(jiān)聽程序當前無法識別連接描述符中請求的服務(wù)

          通過重啟服務(wù)的方式啟動數(shù)據(jù)庫,再次連接卻能成功登錄,也就是說在關(guān)閉數(shù)據(jù)庫狀態(tài)下無法連接服務(wù)器。

              開始以為是系統(tǒng)環(huán)境變量Oracle_SID的配置問題,因為機器有多個實例,一陣折騰后還是不能連接。后來查資料得知:

              Oracle9i以后,后臺進程PMON自動在監(jiān)聽器中注冊在系統(tǒng)參數(shù)SERVICE_NAMES中定義的服務(wù)名,SERVICE_NAMES默認為 DB_NAME+DOMAIN_NAME。監(jiān)聽配置文件listener.ora中可以不必指定監(jiān)聽的服務(wù)名。但是,當數(shù)據(jù)庫處于關(guān)閉狀態(tài)下PMON進程沒有啟動,也就不會自動注冊監(jiān)聽的實例名,所以使用sqlplus sys/his@orc0 as sysdba 會出現(xiàn)ORA-12514錯誤。

          如果在listener.ora文件中指定監(jiān)聽的實例名,則即使數(shù)據(jù)庫處于關(guān)閉狀態(tài),仍然可以連接。

          listener.ora

          SID_LIST_LISTENER =

          (SID_LIST =

              (SID_DESC =

                (SID_NAME = PLSExtProc)

                (ORACLE_HOME = G:\oracle\product\10.2.0\db_1)

                (PROGRAM = extproc)

              )

             (SID_DESC =

              (GLOBAL_DBNAME = ORCL)

              (ORACLE_HOME = G:\oracle\product\10.2.0\db_1)  

              (SID_NAME = ORCL)

              )

          )

          LISTENER =

          (DESCRIPTION_LIST =

              (DESCRIPTION =

                (ADDRESS = (PROTOCOL = TCP)(HOST = zyk)(PORT = 1521))

              )

          )

           

          以上粗體部件為增加的內(nèi)容,修改后重啟監(jiān)聽服務(wù)后即可。

          附:通過在lsnrctl中輸入set display verbose,然后再通過命令service查看,服務(wù)狀態(tài)為READY表示PMON自動注冊的服務(wù)名,而UNKNOWN則表示該服務(wù)是手工在LISTENER.ORA中配置的數(shù)據(jù)庫服務(wù)。

          主站蜘蛛池模板: 东兰县| 保康县| 宁海县| 南平市| 鹤峰县| 逊克县| 康定县| 佳木斯市| 怀柔区| 东兴市| 湘西| 吉木乃县| 永新县| 太原市| 绩溪县| 高碑店市| 塔城市| 武强县| 芷江| 密云县| 衡东县| 新宁县| 突泉县| 彰武县| 盖州市| 西林县| 都昌县| 镇康县| 尉氏县| 车险| 当阳市| 安龙县| 山东省| 千阳县| 兴隆县| 大理市| 东丽区| 东丰县| 泰宁县| 博兴县| 清远市|