oracle for windows 監聽問題之TNS-12545

    操作系統版本:windows server 2012R2

    數據庫版本:oracle 11.2.0.1

    問題描述:在一vmware虛擬機上搭建的windows server 2012R2,然後在windows server2012R2上安裝的oracle 11.2.0.1,本來是想測試oracle

針對oracle 11.2.0.1發佈的最新的CPU補丁集能不能在windows server2012R2操作系統,沒想到打完補丁,重啓oracle數據庫服務,查看

監聽狀態時報錯了,報錯如下:

Microsoft Windows [版本 6.3.9600]
(c) 2013 Microsoft Corporation。保留所有權利。
C:\Users\Administrator>lsnrctl status
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 19-12月-2017 09:15:39
Copyright (c) 1991, 2010, Oracle.  All rights reserved.
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=WIN-0QKPVTN4SB8.localdomain
)(PORT=1521)))
TNS-12545: 因目標主機或對象不存在, 連接失敗
 TNS-12560: TNS: 協議適配器錯誤
  TNS-00515: 因目標主機或對象不存在, 連接失敗
   64-bit Windows Error: 1001: Unknown error
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
TNS-12541: TNS: 無監聽程序
 TNS-12560: TNS: 協議適配器錯誤
  TNS-00511: 無監聽程序
   64-bit Windows Error: 2: No such file or directory

    處理過程:

查看數據庫實例狀態,數據庫實例是打開的
C:\Users\Administrator>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期二 12月 19 09:16:16 2017
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
連接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ WRITE
SQL>

查看數據庫監聽服務狀態,發現監聽服務是運行着的:


根據監聽報錯提示,查看操作系統名稱:


再次查看監聽報錯:


發現監聽報錯是因爲監聽配置文件裏的主機名是WIN-0QKPVTN4SB8.localdomain,覈實監聽程序配置文件是否如報錯提示:


由監聽配置文件內容看來,確實是WIN-0QKPVTN4SB8.localdomain,嘗試將監聽配置文件中的HOST修改爲WIN-0QKPVTN4SB8,再次

啓動監聽程序,監聽程序能夠成功啓動:

C:\Users\Administrator>lsnrctl start
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 19-12月-2017 09:21:43
Copyright (c) 1991, 2010, Oracle.  All rights reserved.
啓動tnslsnr: 請稍候...
TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
系統參數文件爲C:\oracle\product\11.2.0\dbhome_1\network\admin\listener.ora
寫入c:\oracle\diag\tnslsnr\WIN-0QKPVTN4SB8\listener\alert\log.xml的日誌信息
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=WIN-0QKPVTN4SB8)(PORT=1521)))
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=WIN-0QKPVTN4SB8)(PORT=1521)))
LISTENER 的 STATUS
------------------------
別名                      LISTENER
版本                      TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Produ
ction
啓動日期                  19-12月-2017 09:21:44
正常運行時間              0 天 0 小時 0 分 1 秒
跟蹤級別                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
監聽程序參數文件          C:\oracle\product\11.2.0\dbhome_1\network\admin\listen
er.ora
監聽程序日誌文件          c:\oracle\diag\tnslsnr\WIN-0QKPVTN4SB8\listener\alert\
log.xml
監聽端點概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=WIN-0QKPVTN4SB8)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
服務摘要..
服務 "CLRExtProc" 包含 1 個實例。
  實例 "CLRExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...
命令執行成功
C:\Users\Administrator>

C:\Users\Administrator>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期二 12月 19 09:21:54 2017
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
連接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> alter system register;
系統已更改。
SQL> quit
從 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 斷開
C:\Users\Administrator>lsnrctl status
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 19-12月-2017 09:22:06
Copyright (c) 1991, 2010, Oracle.  All rights reserved.
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=WIN-0QKPVTN4SB8)(PORT=1521)))
LISTENER 的 STATUS
------------------------
別名                      LISTENER
版本                      TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Produ
ction
啓動日期                  19-12月-2017 09:21:44
正常運行時間              0 天 0 小時 0 分 21 秒
跟蹤級別                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
監聽程序參數文件          C:\oracle\product\11.2.0\dbhome_1\network\admin\listen
er.ora
監聽程序日誌文件          c:\oracle\diag\tnslsnr\WIN-0QKPVTN4SB8\listener\alert\
log.xml
監聽端點概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=WIN-0QKPVTN4SB8)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
服務摘要..
服務 "CLRExtProc" 包含 1 個實例。
  實例 "CLRExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...
服務 "orcl" 包含 1 個實例。
  實例 "orcl", 狀態 READY, 包含此服務的 1 個處理程序...
服務 "orclXDB" 包含 1 個實例。
  實例 "orcl", 狀態 READY, 包含此服務的 1 個處理程序...
命令執行成功
C:\Users\Administrator>

到此問題算是圓滿解決了,但是爲什麼監聽程序配置的主機名爲什麼是WIN-0QKPVTN4SB8.localdomain,並且監聽啓動還報錯TNS-12545,很奇怪。

另外,網上說將監聽配置程序裏的HOST後邊的主機名修改爲IP地址,不用想這樣修改肯定是可以的,但是問題是數據庫服務器的主機名一般是不修改

的,但是相對來說IP被修改的機率就大多了,如果將監聽配置的HOST修改爲IP,以後服務器變更IP地址,還需要修改數據庫監聽配置文件,不好維護。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章