新聞中心
這篇文章主要介紹“Linux監(jiān)聽(tīng)開啟后無(wú)服務(wù)怎么辦”,在日常操作中,相信很多人在Linux監(jiān)聽(tīng)開啟后無(wú)服務(wù)怎么辦問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Linux監(jiān)聽(tīng)開啟后無(wú)服務(wù)怎么辦”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

報(bào)錯(cuò)信息:
[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種方法解決:
一、手工注冊(cè),每次重啟監(jiān)聽(tīng)都需要手工注冊(cè):
SQL> alter system register;
System altered.
二、修改 listener.ora,一勞永逸解決問(wèn)題
在LISTENER里添加內(nèi)容:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(SID_NAME = orcl)
)
)
另,感覺(jué)這是個(gè)bug,google下·看到:http://www.askmaclean.com/archives/11gr2-rac-add-listener-static-register.html
原來(lái)在11gr2新建和修改監(jiān)聽(tīng)后,不會(huì)自動(dòng)靜態(tài)注冊(cè),需要退出netca 界面,啟動(dòng)netmgr界面,為監(jiān)聽(tīng)加入靜態(tài)注冊(cè)的信息:
點(diǎn)選方才創(chuàng)建的監(jiān)聽(tīng)器,選擇Database Services菜單
填入Global Database Name和本地實(shí)例的SID信息,并確認(rèn)ORACLE HOME Directory(應(yīng)是Grid Infrastructure的Home目錄)正確后點(diǎn)選Save Network Configuration。
重啟監(jiān)聽(tīng)即可
重新啟動(dòng)后狀態(tài):
[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
監(jiān)聽(tīng)狀態(tài)解析
在運(yùn)行l(wèi)snrctl命令的status時(shí),常會(huì)看到如下返回值:
服務(wù)“test”包含1個(gè)例程。
例程"mydata",狀態(tài) UNKOWN,包含此服務(wù)的一個(gè)處理程序。。。
服務(wù)"a"包含1個(gè)例程。
例程"mydata",狀態(tài) READY,包含此服務(wù)的一個(gè)處理程序。。。
這里的,狀態(tài)UNKOWN即表明為靜態(tài)注冊(cè)(手動(dòng)填寫參數(shù));
狀態(tài)為READY的記錄,表明為動(dòng)態(tài)注冊(cè)(listener.ora參數(shù)由PMON進(jìn)程自動(dòng)從參數(shù)文件獲取);
一、靜態(tài)注冊(cè)
監(jiān)聽(tīng)配置中,數(shù)據(jù)庫(kù)服務(wù)中的全局?jǐn)?shù)據(jù)庫(kù)名,可以寫任意內(nèi)容,與數(shù)據(jù)庫(kù)無(wú)關(guān),只要保證SID正確即可連上數(shù)據(jù)庫(kù)。
由于靜態(tài)注冊(cè),參數(shù)是手動(dòng)靜態(tài)添加,與數(shù)據(jù)庫(kù)無(wú)關(guān)。數(shù)據(jù)庫(kù)無(wú)法確認(rèn)監(jiān)聽(tīng)是否正確配置。因此,lsnrctl中的status顯示狀態(tài)為unkown。即不保證能連通數(shù)據(jù)庫(kù)。
注意:靜態(tài)注冊(cè)監(jiān)聽(tīng),客戶端在配置tnsnames.ora服務(wù)命名時(shí),“(Oracle 8i或更高版本)服務(wù)名”里填寫內(nèi)容要與服務(wù)端靜態(tài)注冊(cè)監(jiān)聽(tīng)器時(shí)的全局?jǐn)?shù)據(jù)庫(kù)名一致。否則,無(wú)法連通。
lsnrctl中顯示如下
服務(wù)“test”包含1個(gè)例程。
例程“mydata”,狀態(tài)UNKOWN,包含此服務(wù)的一個(gè)處理程序。。。
test即從監(jiān)聽(tīng)配置過(guò)程,數(shù)據(jù)庫(kù)服務(wù)中的“全局?jǐn)?shù)據(jù)庫(kù)名”讀到的值(即配置文件中GLOBAL_DBNAME的值),“mydata”是從監(jiān)聽(tīng)配置中,數(shù)據(jù)庫(kù)服務(wù)中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時(shí),服務(wù)名(SERVICE_NAME)即為test。否則,連接不到數(shù)據(jù)庫(kù)。
ABC =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.23)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME =
test))
)
這里的ABC,為服務(wù)命名??梢詾槿我庵?,在客戶端連接服務(wù)器時(shí),填寫的主機(jī)字符串,即為此服務(wù)命名ABC。
二、動(dòng)態(tài)注冊(cè)
1、缺省的動(dòng)態(tài)注冊(cè)
pmon在數(shù)據(jù)庫(kù)啟動(dòng)到mount或open時(shí),動(dòng)態(tài)從參數(shù)文件中讀取service_names值。service_names可以為多個(gè)值。
service_names缺省為dbca建立數(shù)據(jù)庫(kù)時(shí)的全局?jǐn)?shù)據(jù)庫(kù)名。
設(shè)置參數(shù)service_names為'a,b,c',命令如下:
alter system set service_names='a,b,c';
則:
lsnrctl狀態(tài)如下:
服務(wù)“test”包含1個(gè)例程。
例程"mydata",狀態(tài) UNKOWN,包含此服務(wù)的一個(gè)處理程序。。。
服務(wù)"a"包含1個(gè)例程。
例程"mydata",狀態(tài) READY,包含此服務(wù)的一個(gè)處理程序。。。
服務(wù)"b"包含1個(gè)例程。
例程"mydata",狀態(tài) READY,包含此服務(wù)的一個(gè)處理程序。。。
服務(wù)"c"包含1個(gè)例程。
例程"mydata",狀態(tài) READY,包含此服務(wù)的一個(gè)處理程序。。。
服務(wù) "mydata.ccddt.cn" 包含一個(gè)例程。
例程"mydata",狀態(tài) READY, 包含此服務(wù)的一個(gè)處理程序。。。
以上服務(wù)名a, b, c, mydata.ccddt.cn都為READY,為動(dòng)態(tài)注冊(cè)。
這里多了最后一條"mydata.ccddt.cn",是PMON缺省動(dòng)態(tài)注冊(cè)到監(jiān)聽(tīng)器內(nèi)的。
注意:不管參數(shù)service_names為何值,pmon都會(huì)自動(dòng)以全局?jǐn)?shù)據(jù)庫(kù)名(這里為mydata.ccddt.cn)為服務(wù)名,動(dòng)態(tài)注冊(cè)一個(gè)監(jiān)聽(tīng)。
缺省情況下,若啟用動(dòng)態(tài)注冊(cè)監(jiān)聽(tīng),端口號(hào)必須為1521。若啟用其他端口的動(dòng)態(tài)監(jiān)聽(tīng)注冊(cè),必須要做相關(guān)配置。
通過(guò)查看v$session,狀態(tài)為SYS$USERS的連接為通過(guò)靜態(tài)注冊(cè)監(jiān)聽(tīng)連接到服務(wù)器。
2、自定義端口的動(dòng)態(tài)監(jiān)聽(tīng)注冊(cè)
若要啟用非默認(rèn)端口1521的動(dòng)態(tài)監(jiān)聽(tīng)注冊(cè),缺省狀態(tài),Oracle不會(huì)進(jìn)行動(dòng)態(tài)注冊(cè)。要啟用動(dòng)態(tài)注冊(cè),必須設(shè)置local_listener參數(shù)。并在服務(wù)端配置tnsnames.ora指定監(jiān)聽(tīng)參數(shù),或者直接通過(guò)修改local_listener指定監(jiān)聽(tīng)參數(shù)。步驟如下:
1)服務(wù)端
netmgr,配置監(jiān)聽(tīng)程序,監(jiān)聽(tīng)端口為1525(非默認(rèn)端口)

保存配置
2)、指定監(jiān)聽(tīng)參數(shù)
(1)法1:直接通過(guò)修改local_listener參數(shù)指定
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服務(wù)器端建立$ORACLE_HOME/network/admin/tnsnames.ora。解析文件,位置并填入如下內(nèi)容
mytest =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL=TCP)(HOST = 192.168.1.23)(PORT = 1525))
)
)這里的mytest也可以根據(jù)自己需要,修改為其他字符串。如a或b等。
設(shè)置參數(shù),指定通過(guò)tnsnames.ora內(nèi)的信息指定監(jiān)聽(tīng)參數(shù)
SQL>alter system set local_listener=mytest;System altered
SQL>alter system register;
3、查看監(jiān)聽(tīng)器狀態(tài)
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
到此,關(guān)于“Linux監(jiān)聽(tīng)開啟后無(wú)服務(wù)怎么辦”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
分享標(biāo)題:Linux監(jiān)聽(tīng)開啟后無(wú)服務(wù)怎么辦-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://fisionsoft.com.cn/article/pghps.html


咨詢
建站咨詢
