久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Linux監聽開啟后無服務怎么辦

152次閱讀
沒有評論

共計 6528 個字符,預計需要花費 17 分鐘才能閱讀完成。

這篇文章主要介紹“Linux 監聽開啟后無服務怎么辦”,在日常操作中,相信很多人在 Linux 監聽開啟后無服務怎么辦問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Linux 監聽開啟后無服務怎么辦”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!

報錯信息:
[oracle@hp2 ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.4.0 – Production on 18-OCT-2017 00:21:31

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.8.12)(PORT=1521)))
STATUS of the LISTENER
————————
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 – Production
Start Date                17-OCT-2017 19:45:26
Uptime                    0 days 4 hr. 36 min. 5 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /app1/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File         /app1/oracle/diag/tnslsnr/hp2/listener/alert/log.xml
Listening Endpoints Summary…
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.8.12)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully

2 種方法解決:

一、手工注冊,每次重啟監聽都需要手工注冊:

SQL alter system register;

System altered.

二、修改  listener.ora,一勞永逸解決問題

在 LISTENER 里添加內容:

SID_LIST_LISTENER =

(SID_LIST =

  (SID_DESC =

  (GLOBAL_DBNAME = orcl)

  (SID_NAME = orcl)

  )

)

另,感覺這是個 bug,google 下·看到:http://www.askmaclean.com/archives/11gr2-rac-add-listener-static-register.html

原來在 11gr2 新建和修改監聽后,不會自動靜態注冊,需要退出 netca 界面,啟動 netmgr 界面,為監聽加入靜態注冊的信息:

點選方才創建的監聽器,選擇 Database Services 菜單

填入 Global Database Name 和本地實例的 SID 信息,并確認 ORACLE HOME Directory(應是 Grid Infrastructure 的 Home 目錄)正確后點選 Save Network Configuration。

重啟監聽即可
重新啟動后狀態:
[oracle@hp admin]$ lsnrctl start

LSNRCTL for Linux: Version 11.2.0.4.0 – Production on 18-OCT-2017 00:04:50

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Starting /app1/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait…

TNSLSNR for Linux: Version 11.2.0.4.0 – Production
System parameter file is /app1/oracle/product/11.2.0/db_1/network/admin/listener.ora
Log messages written to /app1/oracle/diag/tnslsnr/hp/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.8.11)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.8.11)(PORT=1521)))
STATUS of the LISTENER
————————
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 – Production
Start Date                18-OCT-2017 00:04:50
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /app1/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File         /app1/oracle/diag/tnslsnr/hp/listener/alert/log.xml
Listening Endpoints Summary…
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.8.11)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary…
Service SUNTX has 1 instance(s).
  Instance SUNTX , status UNKNOWN, has 1 handler(s) for this service…
The command completed successfully

監聽狀態解析
在運行 lsnrctl 命令的 status 時,常會看到如下返回值:

服務“test”包含 1 個例程。

  例程 mydata,狀態 UNKOWN,包含此服務的一個處理程序。。。

服務 a 包含 1 個例程。

  例程 mydata,狀態 READY,包含此服務的一個處理程序。。。

這里的,狀態 UNKOWN 即表明為靜態注冊(手動填寫參數);

狀態為 READY 的記錄,表明為動態注冊(listener.ora 參數由 PMON 進程自動從參數文件獲取);

一、靜態注冊

監聽配置中,數據庫服務中的全局數據庫名,可以寫任意內容,與數據庫無關,只要保證 SID 正確即可連上數據庫。

由于靜態注冊,參數是手動靜態添加,與數據庫無關。數據庫無法確認監聽是否正確配置。因此,lsnrctl 中的 status 顯示狀態為 unkown。即不保證能連通數據庫。

注意:靜態注冊監聽,客戶端在配置 tnsnames.ora 服務命名時,“(Oracle 8i 或更高版本)服務名”里填寫內容要與服務端靜態注冊監聽器時的全局數據庫名一致。否則,無法連通。

lsnrctl 中顯示如下

服務“test”包含 1 個例程。

  例程“mydata”,狀態 UNKOWN,包含此服務的一個處理程序。。。

test 即從監聽配置過程,數據庫服務中的“全局數據庫名”讀到的值(即配置文件中 GLOBAL_DBNAME 的值),“mydata”是從監聽配置中,數據庫服務中 SID 讀到的值(即 SID_NAME 的值)。

SID_LIST_LISTENER =

 (SID_LIST =

   (SID_DESC =

     (GLOBAL_DBNAME = test)

     (ORACLE_HOME = /orahome/oracle/product/10.2.0/db_1)

     (SID_NAME = mydata)

   )

 )

客戶端在配置 tnsname 時,服務名(SERVICE_NAME)即為 test。否則,連接不到數據庫。

ABC =

 (DESCRIPTION =

   (ADDRESS_LIST =

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

   )

   (CONNECT_DATA =

     (SERVICE_NAME =
test)

   )

 )

這里的 ABC,為服務命名。可以為任意值,在客戶端連接服務器時,填寫的主機字符串,即為此服務命名 ABC。

二、動態注冊

1、缺省的動態注冊

pmon 在數據庫啟動到 mount 或 open 時,動態從參數文件中讀取 service_names 值。service_names 可以為多個值。

service_names 缺省為 dbca 建立數據庫時的全局數據庫名。

設置參數 service_names 為 a,b,c,命令如下:

alter system set service_names= a,b,c

則:

lsnrctl 狀態如下:

服務“test”包含 1 個例程。

  例程 mydata,狀態 UNKOWN,包含此服務的一個處理程序。。。

服務 a 包含 1 個例程。

  例程 mydata,狀態 READY,包含此服務的一個處理程序。。。

服務 b 包含 1 個例程。

  例程 mydata,狀態 READY,包含此服務的一個處理程序。。。

服務 c 包含 1 個例程。

  例程 mydata,狀態 READY,包含此服務的一個處理程序。。。

服務 mydata.ccddt.cn 包含一個例程。

  例程 mydata,狀態 READY, 包含此服務的一個處理程序。。。

以上服務名 a, b, c, mydata.ccddt.cn 都為 READY,為動態注冊。

這里多了最后一條 mydata.ccddt.cn,是 PMON 缺省動態注冊到監聽器內的。

注意:不管參數 service_names 為何值,pmon 都會自動以全局數據庫名 (這里為 mydata.ccddt.cn) 為服務名,動態注冊一個監聽。

缺省情況下,若啟用動態注冊監聽,端口號必須為 1521。若啟用其他端口的動態監聽注冊,必須要做相關配置。

通過查看 v$session,狀態為 SYS$USERS 的連接為通過靜態注冊監聽連接到服務器。

2、自定義端口的動態監聽注冊

若要啟用非默認端口 1521 的動態監聽注冊,缺省狀態,Oracle 不會進行動態注冊。要啟用動態注冊,必須設置 local_listener 參數。并在服務端配置 tnsnames.ora 指定監聽參數,或者直接通過修改 local_listener 指定監聽參數。步驟如下:

1)服務端

netmgr,配置監聽程序,監聽端口為 1525(非默認端口)

保存配置

       2)、指定監聽參數

   (1)法 1:直接通過修改 local_listener 參數指定

   SQL alter system set LOCAL_LISTENER= (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.23)(PORT=1525))
   System altered

 SQL alter system register

 System altered

         (2)法 2:

在 Oracle 服務器端建立 $ORACLE_HOME/network/admin/tnsnames.ora。解析文件,位置并填入如下內容

mytest =

(DESCRIPTION =
   (ADDRESS_LIST =
       (ADDRESS=(PROTOCOL=TCP)(HOST = 192.168.1.23)(PORT = 1525))
   )
)

這里的 mytest 也可以根據自己需要,修改為其他字符串。如 a 或 b 等。

設置參數,指定通過 tnsnames.ora 內的信息指定監聽參數

SQL alter system set local_listener=mytest;

System altered

SQL alter system register;

3、查看監聽器狀態

LSNRCTL status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.23)(PORT=1525)))
STATUS of the LISTENER
————————
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.1.0 – Production
Start Date                15-MAR-2011 10:43:47
Uptime                    0 days 0 hr. 0 min. 56 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /orahome/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File         /orahome/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary…
 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oraserver)(PORT=1525)))
Services Summary…
Service a has 1 instance(s).
 Instance mydata , status READY, has 1 handler(s) for this service…
Service b has 1 instance(s).
 Instance mydata , status READY, has 1 handler(s) for this service…
Service c has 1 instance(s).
 Instance mydata , status READY, has 1 handler(s) for this service…
Service mydata has 1 instance(s).
 Instance mydata , status READY, has 1 handler(s) for this service…
Service mydataXDB has 1 instance(s).
 Instance mydata , status READY, has 1 handler(s) for this service…
Service mydata_XPT has 1 instance(s).
 Instance mydata , status READY, has 1 handler(s) for this service…
The command completed successfully

到此,關于“Linux 監聽開啟后無服務怎么辦”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-03發表,共計6528字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 都江堰市| 昂仁县| 丰都县| 昌平区| 嫩江县| 穆棱市| 瑞昌市| 喀什市| 全椒县| 随州市| 怀集县| 靖安县| 汉沽区| 娄底市| 砀山县| 攀枝花市| 滕州市| 卢龙县| 张家界市| 贵德县| 临海市| 塔城市| 朝阳市| 怀化市| 奎屯市| 廊坊市| 砀山县| 北票市| 巴彦县| 栖霞市| 定南县| 恩平市| 景德镇市| 邻水| 潞城市| 若羌县| 筠连县| 灵山县| 南皮县| 丹凤县| 会同县|