日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle 监听(Listener) 中 services 说明

發布時間:2024/6/5 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle 监听(Listener) 中 services 说明 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

一. 查看service

1.1 先看下一個監聽查看的示例:

[oracle@db2 ~]$ lsnrctl service

?

LSNRCTL for Linux: Version 10.2.0.1.0 -Production on 19-JUL-2011 01:24:43

?

Copyright (c) 1991, 2005, Oracle.? All rights reserved.

?

Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db2)(PORT=1521)))

Services Summary...

Service "PLSExtProc"has 1 instance(s).

?Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) forthis service...

???Handler(s):

?????"DEDICATED" established:0 refused:0

????????LOCAL SERVER

Service "dave2"has 1 instance(s).

?Instance "dave2", status READY, has 1 handler(s) for thisservice...

???Handler(s):

?????"DEDICATED" established:5 refused:0 state:ready

????????LOCAL SERVER

Service"dave2XDB" has 1 instance(s).

?Instance "dave2", status READY, has 1 handler(s) for thisservice...

???Handler(s):

?????"D000" established:0 refused:0 current:0 max:1022 state:ready

????????DISPATCHER <machine: db2, pid: 11691>

????????(ADDRESS=(PROTOCOL=tcp)(HOST=db2)(PORT=35619))

Service "dave2_XPT"has 1 instance(s).

??Instance "dave2", status READY, has1 handler(s) for this service...

???Handler(s):

?????"DEDICATED" established:5 refused:0 state:ready

????????LOCAL SERVER

The command completed successfully

?

[oracle@db2 ~]$ lsnrctl status

LSNRCTL for Linux: Version 10.2.0.1.0 -Production on 19-JUL-2011 01:32:14

?

Copyright (c) 1991, 2005, Oracle.? All rights reserved.

?

Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db2)(PORT=1521)))

STATUS of the LISTENER

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

Alias???????????????????? LISTENER

Version?????????????????? TNSLSNR for Linux: Version10.2.0.1.0 - Production

Start Date??????????????? 12-JUL-2011 23:58:55

Uptime??????????????????? 6 days 1 hr. 33 min. 19 sec

Trace Level?????????????? off

Security????????????????? ON: Local OS Authentication

SNMP????????????????????? OFF

Listener Parameter File??/u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora

Listener Log File????????/u01/app/oracle/product/10.2.0/db_1/network/log/listener.log

Listening Endpoints Summary...

?(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db2)(PORT=1521)))

Services Summary...

Service "PLSExtProc"has 1 instance(s).

? Instance"PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...

Service "dave2" has 1 instance(s).

? Instance"dave2", status READY, has 1 handler(s) for this service...

Service "dave2XDB" has 1 instance(s).

? Instance"dave2", status READY, has 1 handler(s) for this service...

Service "dave2_XPT" has 1 instance(s).

?Instance "dave2", status READY, has 1 handler(s) for this service...

The command completed successfully

?

?????? 我們通常配置net service name,使用的service 和實例名是相同的。

?

1.2 官網對Service的說明

1.2.1 Purpose

?????? Toobtain detailed information about the database services, instances, and servicehandlers (dispatchers and dedicated servers) to which the listener forwardsclient connection requests.

?

1.2.2 Syntax

From the operating system:

?????? lsnrctlSERVICES listener_name

From the Listener Control utility:

?????? LSNRCTL>SERVICES listener_name

?

1.2.3 Arguments

listener_name: The listener name, if thedefault name of LISTENER is not used.

From:

http://download.oracle.com/docs/cd/E11882_01/network.112/e10835/lsnrctl.htm#NETRF112

二. 說明

??????

關于監聽的注冊問題,之前整理過一篇blog:

Oracle Listener 動態注冊 與 靜態注冊

http://blog.csdn.net/tianlesoftware/article/details/5543166

?

?????? 注冊到監聽器中的服務值從init.ora文件中的參數service_names取得。如果該參數沒有設定值,數據庫將拼接init.ora文件中的 db_name和db_domain的值來注冊自己。如果選擇提供service_names值,您可以使用完全限定的名稱(比如 orcl.oracle.com)或縮寫的名稱(比如orcl)。如果選擇縮寫的名稱并設置了db_domain參數,注冊到監聽器中的服務將是 service_name值和db_domain值的拼接。例如下面的設置將導致服務orcl.oracle.com被注冊到監聽器中:

db_domain=oracle.com
service_names=orcl ;

?

?????? 我的這個測試實例是dave2.并且沒有配置service_names,所以這里我們配置net service 使用的也是Dave2.

?

在services 里看到有如下幾個service:

Service "PLSExtProc" has 1instance(s).

Service "dave2" has 1instance(s).

Service "dave2XDB" has 1instance(s).

Service "dave2_XPT" has 1instance(s).

?

2.1 Dave2 service

?????? Dave2是我們實例的service。

?

2.2 Dave2XDB Service

?????? dave2XDB是XML database的serveice,這個在我之前的blog 有說明:

?????? How to Deinstall and Reinstall XML Database ORA-04063XDB.DBMS_XDBUTIL_INT

?????? http://blog.csdn.net/tianlesoftware/article/details/5587706

?

?????? How to configure XDB for using ftp and http protocols withASM

?????? http://blog.csdn.net/tianlesoftware/article/details/6337281

?

MOS 的文檔上有詳細說明:[ID 1292089.1]

?

當我們配置dispatchers參數之后,對應的service就可以自動變成可用狀態。

?

SYS@dave2(db2)> show parameterdispatchers

?

NAME???????????? TYPE???? ???VALUE

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

dispatchers???????????????? string??????????? (PROTOCOL=TCP)(SERVICE=dave2XDB)

max_dispatchers???? integer

?

可以通過v$service 視圖查看:

SYS@dave2(db2)> select name fromv$services;????

NAME

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

dave2XDB

dave2

SYS$BACKGROUND

SYS$USERS

?

移除XDB 的方法,在10g的OTN上有說明:

http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14259/appaman.htm#sthref2384

?

?????? Removethe dispatcher by removing the Oracle XML DB dispatcher entry from the init.orafile as follows:

?????? dispatchers="(PROTOCOL=TCP)(SERVICE=<sid>XDB)"

If the server parameter file is used, runthe following command when the instance is up and while logged in as SYS:

?????? ALTERSYSTEM RESET dispatchers scope=spfile sid='*';

?

示例:

SYS@dave2(db2)> ALTER SYSTEM RESETdispatchers scope=spfile sid='*';

System altered.

?

但是查看dba_services 還是可以查到該值:

SYS@dave2(db2)> select name fromdba_services where name='dave2XDB';

?

NAME

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

dave2XDB

?

SYS@dave2(db2)> show parameter dispatchers

?

NAME???????????? TYPE??????? VALUE

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

dispatchers???????????????? string??????????? (PROTOCOL=TCP)(SERVICE=dave2XDB)

max_dispatchers???? integer

?

?

將監聽重啟一下:

[oracle@db2 ~]$ lsnrctl stop

?

LSNRCTL for Linux: Version 10.2.0.1.0 -Production on 19-JUL-2011 19:34:18

?

Copyright (c) 1991, 2005, Oracle.? All rights reserved.

?

Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db2)(PORT=1521)))

The command completed successfully

[oracle@db2 ~]$ lsnrctl start

?

LSNRCTL for Linux: Version 10.2.0.1.0 -Production on 19-JUL-2011 19:34:26

?

Copyright (c) 1991, 2005, Oracle.? All rights reserved.

?

Starting/u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...

?

TNSLSNR for Linux: Version 10.2.0.1.0 -Production

System parameter file is/u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora

Log messages written to/u01/app/oracle/product/10.2.0/db_1/network/log/listener.log

Listening on:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db2)(PORT=1521)))

?

Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db2)(PORT=1521)))

STATUS of the LISTENER

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

Alias???????????????????? LISTENER

Version?????????????????? TNSLSNR for Linux: Version10.2.0.1.0 - Production

Start Date??????????????? 19-JUL-2011 19:34:27

Uptime??????????????????? 0 days 0 hr. 0 min. 0 sec

Trace Level?????????????? off

Security????????????????? ON: Local OS Authentication

SNMP????????????????????? OFF

Listener Parameter File??/u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora

Listener Log File????????/u01/app/oracle/product/10.2.0/db_1/network/log/listener.log

Listening Endpoints Summary...

?(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db2)(PORT=1521)))

Services Summary...

Service "PLSExtProc"has 1 instance(s).

??Instance "PLSExtProc",status UNKNOWN, has 1 handler(s) for this service...

The command completed successfully

?

[oracle@db2 ~]$ lsnrctl service

LSNRCTL for Linux: Version 10.2.0.1.0 -Production on 19-JUL-2011 22:43:44

?

Copyright (c) 1991, 2005, Oracle. ?All rights reserved.

?

Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db2)(PORT=1521)))

Services Summary...

Service "PLSExtProc" has 1instance(s).

?Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) forthis service...

???Handler(s):

???? ?"DEDICATED" established:0 refused:0

????????LOCAL SERVER

Service "dave2" has 1instance(s).

?Instance "dave2", status READY, has 1 handler(s) for thisservice...

???Handler(s):

?????"DEDICATED" established:0 refused:0 state:ready

????????LOCAL SERVER

Service "dave2_XPT" has 1instance(s).

?Instance "dave2", status READY, has 1 handler(s) for thisservice...

???Handler(s):

?????"DEDICATED" established:0 refused:0 state:ready

????????LOCAL SERVER

The command completed successfully

--SIDXDB 已經沒有了

?

SYS@dave2(db2)>show parameter dispa

NAME???????????????????????????????? TYPE??????? VALUE

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

dispatchers????????????????????????? string

max_dispatchers???????? ?????????????integer

?

通過參數已經看不到了。但通過dba_services還可以查到。

?

SYS@dave2(db2)> select name fromdba_services where name='dave2XDB';

NAME

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

dave2XDB

?

SYS@dave2(db2)> select comp_name,status, version from DBA_REGISTRY where comp_name='Oracle XML Database';

?

COMP_NAME?????? STATUS???????????????? VERSION

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

Oracle XML Data ?????????? VALID?????????????????10.2.0.1.0

?

如果要停用XML DB 特性,可以drop xdb 服務

SYS@dave2(db2)> execdbms_service.delete_service('dave2XDB');

PL/SQL procedure successfully completed.

?

然后查看dba_services 視圖,就沒有該記錄了

SYS@dave2(db2)> select name fromdba_services where name='dave2XDB';

no rows selected

?

?

2.3. _XPT Service?????

?????? 在MOS 上有文檔對XPT? 說明 [ID 339940.1]

?

?????? 該service 是給Data Guard 預留的。 如果沒有使用DG ,刪除該服務沒有影響。 停用該service 需要修改一個參數:__dg_broker_service_names. 該參數前面是2個_.?這個需要注意一下。 這個參數是個隱含參數,使用如下SQL 查看:

?

SYS@dave2(db2)> SELECT?? ksppinm, ksppstvl, ksppdesc? FROM??x$ksppi x, x$ksppcv y? WHERE?? x.indx = y.indx AND TRANSLATE (ksppinm, '_','#') LIKE '#%' and ksppinm like '__dg_%';

?

KSPPINM?????????????????? KSPPSTVL??????? KSPPDESC

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

__dg_broker_service_names??? dave2_XPT??????service names for broker use

更多內容參考:

?????? Oracle 參數分類 和 參數的查看方法

?????? http://blog.csdn.net/tianlesoftware/article/details/5583655

?

要停用該服務,把__dg_broker_service_names參數設置為空就ok了。

?

SYS@dave2(db2)> altersystem set "__dg_broker_service_names" = '' scope=both;

System altered.

?

[oracle@db2 ~]$ lsnrctl status

?

LSNRCTL for Linux: Version 10.2.0.1.0 -Production on 20-JUL-2011 01:22:17

?

Copyright (c) 1991, 2005, Oracle.? All rights reserved.

?

Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db2)(PORT=1521)))

STATUS of the LISTENER

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

Alias???????????????????? LISTENER

Version?????????????????? TNSLSNR for Linux: Version10.2.0.1.0 - Production

Start Date??????????????? 19-JUL-2011 19:34:27

Uptime??????????????????? 0 days 5 hr. 47 min. 50 sec

Trace Level?????????????? off

Security????????????????? ON: Local OS Authentication

SNMP??????????????????? ??OFF

Listener Parameter File??/u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora

Listener Log File????????/u01/app/oracle/product/10.2.0/db_1/network/log/listener.log

Listening Endpoints Summary...

?(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db2)(PORT=1521)))

Services Summary...

Service "PLSExtProc" has 1instance(s).

?Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) forthis service...

Service "dave2" has 1instance(s).

?Instance "dave2", status READY, has 1 handler(s) for this service...

The command completed successfully

?

2.4 PLSExtProc Service

先看listener.ora文件,這個文件是在我們安裝數據庫的時候生成的。

[oracle@db2 admin]$ cat listener.ora

# listener.ora Network Configuration File:/u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora

# Generated by Oracle configuration tools.

?

SID_LIST_LISTENER =

?(SID_LIST =

???(SID_DESC =

?????(SID_NAME = PLSExtProc)

?????(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)

?????(PROGRAM = extproc)

??? )

? )

?

LISTENER =

?(DESCRIPTION_LIST =

???(DESCRIPTION =

?????(ADDRESS = (PROTOCOL = TCP)(HOST = db2)(PORT = 1521))

??? )

? )

?

?????? 其中的Listener配置的是實例的監聽信息。PLSExtProc 是一個外部程序的配置監聽,在默認安裝時,會安裝一個PL/SQL外部程序(ExtProc)條目在listener.ora中,是oracle為調用外部程序默認配置的監聽,它的名字通常是ExtProc或PLSExtProc,但一般不會使用它,可以直接從listener.ora中將這項移除,因為對ExtProc已經有多種攻擊手段了,在不使用外部程序時,oracle也是建議刪除的。

?????? PLSExtPro是pl/sqlexternal procdure 的意思,就是在pl/sql中調用外部語句,如c,java寫的過程。

?????? 現在,Oracle已經全面支持JAVA了,這東西也就過時了,之所以繼續保留是考慮到兼容以前老版本(Oracle8,9i)的數據庫實例。

??????

官網的說明如下:

?????? Youcan use the SID_LIST section of the listener.ora to statically configureservice information for the listener.

?????? The SID_LIST section is required for Oracle8 release 8.0 orOracle7 database services, as well as externalprocedure calls and HeterogeneousServices, and some management tools, including Oracle Enterprise Manager.

SID_LIST_listener_name=

?(SID_LIST=

??(SID_DESC=

???(GLOBAL_DBNAME=global_database_name)

???(SID_NAME=sid)

???(ORACLE_HOME=oracle_home))

??(SID_DESC=...))

?????? For later database releases, the listener uses thedynamic service information about the database and instance it has receivedthrough service registration before using statically configured information inthe listener.ora file. Therefore, the SID_LIST is notrequired, unless Oracle Enterprise Manager is used to monitor an Oracle9i orOracle8 database.

?

From:

http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/listener.htm

?

?

?????? 所以,要停用PLSExtProc,只需要在listener.ora 里刪除這部分配置,然后restart listener 即可。

?

[oracle@db2 admin]$ cat listener.ora

#SID_LIST_LISTENER =

#?(SID_LIST =

#???(SID_DESC =

#?????(SID_NAME = PLSExtProc)

#?????(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)

#?????(PROGRAM = extproc)

#???)

#? )

?

[oracle@db2 admin]$lsnrctl stop

?

LSNRCTL for Linux: Version 10.2.0.1.0 -Production on 20-JUL-2011 01:42:40

Copyright (c) 1991, 2005, Oracle.? All rights reserved.

?

Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db2)(PORT=1521)))

The command completed successfully

[oracle@db2 admin]$ lsnrctl start

?

LSNRCTL for Linux: Version 10.2.0.1.0 -Production on 20-JUL-2011 01:42:53

?

Copyright (c) 1991, 2005, Oracle.? All rights reserved.

?

Starting/u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...

?

TNSLSNR for Linux: Version 10.2.0.1.0 -Production

System parameter file is/u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora

Log messages written to/u01/app/oracle/product/10.2.0/db_1/network/log/listener.log

Listening on:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db2)(PORT=1521)))

?

Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db2)(PORT=1521)))

STATUS of the LISTENER

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

Alias???????????????????? LISTENER

Version?????????????????? TNSLSNR for Linux: Version10.2.0.1.0 - Production

Start Date??????? ????????20-JUL-2011 01:42:54

Uptime??????????????????? 0 days 0 hr. 0 min. 0 sec

Trace Level?????????????? off

Security????????????????? ON: Local OS Authentication

SNMP????????????????????? OFF

Listener Parameter File?? /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora

Listener Log File????????/u01/app/oracle/product/10.2.0/db_1/network/log/listener.log

Listening Endpoints Summary...

?(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db2)(PORT=1521)))

The listener supports noservices

The command completed successfully

--這里提示監聽沒有services,這中情況下,我們的遠程端是連不上數據庫的。我們通過service 確認一下:

?

[oracle@db2 admin]$lsnrctl service

?

LSNRCTL for Linux: Version 10.2.0.1.0 -Production on 20-JUL-2011 01:43:05

?

Copyright (c) 1991, 2005, Oracle.? All rights reserved.

?

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db2)(PORT=1521)))

The listener supports noservices

The command completed successfully

?

出現這種現象的原因和動態注冊和靜態注冊有關。 在之前的blog里有說明:

Oracle Listener 動態注冊 與 靜態注冊

http://blog.csdn.net/tianlesoftware/article/details/5543166

?

?????? 因為我們沒有停數據庫,直接重啟的監聽,而且我們也沒有配置靜態注冊,在這種情況下,就出現了監聽沒有service的情況,我們只需要使用register命令,將實例注冊到監聽就ok了。

?

SYS@dave2(db2)> alter system register;

System altered.

?

在查看一下service:

[oracle@db2 ~]$ lsnrctl service

?

LSNRCTL for Linux: Version 10.2.0.1.0 - Productionon 20-JUL-2011 01:45:05

?

Copyright (c) 1991, 2005, Oracle.? All rights reserved.

?

Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db2)(PORT=1521)))

Services Summary...

Service "dave2"has 1 instance(s).

?Instance "dave2", status READY, has 1 handler(s) for thisservice...

???Handler(s):

?????"DEDICATED" established:0 refused:0 state:ready

????????LOCAL SERVER

The command completed successfully

?

現在監聽里就只有我們一個實例的service了。

?

?

?

?

?

?

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

Blog: http://blog.csdn.net/tianlesoftware

Email: dvd.dba@gmail.com

DBA1 群:62697716(滿);?? DBA2 群:62697977(滿)??DBA3 群:62697850(滿)??

DBA 超級群:63306533(滿);? DBA4 群: 83829929? DBA5群: 142216823???

DBA6 群:158654907? 聊天 群:40132017?? 聊天2群:69087192

--加群需要在備注說明Oracle表空間和數據文件的關系,否則拒絕申請

轉載于:https://www.cnblogs.com/zlja/archive/2011/07/19/2449612.html

總結

以上是生活随笔為你收集整理的Oracle 监听(Listener) 中 services 说明的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。