listener啟動與關閉


 查看SID是否啟動OK命令:

echo $ORACLE_SID

監聽器相關命令:

lsnrctl status --查看狀態

lsnrctl start --啟動

lsnrctl stop --關閉

lsnrctl reload --重啟等於stop與start

lsnrctl service --啟動服務

http://blog.itpub.net/95233/viewspace-623699/

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

http://www.cnblogs.com/czjie/archive/2011/10/30/2228196.html

Oracle動態注冊機制從ORACLE8I就已提供,以前在學習此部分內容時,理解得不夠透徹,似是而非,沒有真正掌握。

最近重新學習了一下此部分內容,並查閱了一些文檔,初有成就。現小結一下:

測試環境:

操作系統:RHEL4.6

數據庫:ORACLE10G 10.2.0.4

一、首先要理解基本概念

1、  Oracle的監聽器和實例,是完全獨立開的。

2、  實例必須要注冊到某一個或多個實例上,這樣遠程用戶方可連上。

3、  端口號,是由監聽器決定的。遠程連接的端口,必須要跟監聽器的端口一致。

二、實踐測試

1、  測試用例1,創建第一個監聽器(PROTOCOL=TCPHOST=linux1、端口號為1521),創建第一個實例ORCL,其自動注冊到PROTOCOL=TCPHOST=linux1、端口號為1521的監聽器上。

 

Listener.ora內容如下:

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = /opt/ora10g/product/10.2.0)

      (PROGRAM = extproc)

    )

    (SID_DESC =

      (GLOBAL_DBNAME = ORCL)

      (ORACLE_HOME = /opt/ora10g/product/10.2.0)

      (SID_NAME = ORCL)

    )

  )

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

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

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

    )

  )

 

首先啟動監聽器LISTENER

[oracle@linux1 ~]$ lsnrctl status

 

LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 27-12-2009 22:07:58

 

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

 

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux1)(PORT=1521)))

TNS-12541: TNS: 無監聽程序

 TNS-12560: TNS: 協議適配器錯誤

  TNS-00511: 無監聽程序

   Linux Error: 111: Connection refused

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))

TNS-12541: TNS: 無監聽程序

 TNS-12560: TNS: 協議適配器錯誤

  TNS-00511: 無監聽程序

   Linux Error: 111: Connection refused

[oracle@linux1 ~]$ lsnrctl start

 

LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 27-12-2009 22:09:25

 

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

 

啟動/opt/ora10g/product/10.2.0/bin/tnslsnr: 請稍候...

 

TNSLSNR for Linux: Version 10.2.0.4.0 - Production

系統參數文件為/opt/ora10g/product/10.2.0/network/admin/listener.ora

寫入/opt/ora10g/product/10.2.0/network/log/listener.log的日志信息

監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linux1)(PORT=1521)))

監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))

 

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux1)(PORT=1521)))

LISTENER STATUS

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

別名                      LISTENER

版本                      TNSLSNR for Linux: Version 10.2.0.4.0 - Production

啟動日期                  27-12-2009 22:09:27

正常運行時間              0 0 小時 0 1

跟蹤級別                  off

安全性                    ON: Local OS Authentication

SNMP                      OFF

監聽程序參數文件          /opt/ora10g/product/10.2.0/network/admin/listener.ora

監聽程序日志文件          /opt/ora10g/product/10.2.0/network/log/listener.log

監聽端點概要...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linux1)(PORT=1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))

服務摘要..

服務 "ORCL" 包含 1 個例程。

  例程 "ORCL", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...

服務 "PLSExtProc" 包含 1 個例程。

  例程 "PLSExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...

命令執行成功

 

然后,啟動數據庫實例ORCL

[oracle@linux1 ~]$ export ORACLE_SID=ORCL

[oracle@linux1 ~]$ sqlplus / as sysdba

 

SQL*Plus: Release 10.2.0.4.0 - Production on 星期日 12 27 22:11:41 2009

 

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

 

已連接到空閑例程。

 

SQL> startup

ORACLE 例程已經啟動。

 

Total System Global Area  268435456 bytes

Fixed Size                  1266968 bytes

Variable Size              88083176 bytes

Database Buffers          176160768 bytes

Redo Buffers                2924544 bytes

數據庫裝載完畢。

數據庫已經打開。

SQL> exit

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options 斷開

 

再查看監聽器狀態:

[oracle@linux1 ~]$ lsnrctl status

 

LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 27-12-2009 22:12:53

 

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

 

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux1)(PORT=1521)))

LISTENER STATUS

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

別名                      LISTENER

版本                      TNSLSNR for Linux: Version 10.2.0.4.0 - Production

啟動日期                  27-12-2009 22:09:27

正常運行時間              0 0 小時 3 26

跟蹤級別                  off

安全性                    ON: Local OS Authentication

SNMP                      OFF

監聽程序參數文件          /opt/ora10g/product/10.2.0/network/admin/listener.ora

監聽程序日志文件          /opt/ora10g/product/10.2.0/network/log/listener.log

監聽端點概要...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linux1)(PORT=1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))

服務摘要..

服務 "ORCL" 包含 2 個例程。

  例程 "ORCL", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...

  例程 "ORCL", 狀態 READY, 包含此服務的 1 個處理程序...

服務 "ORCL_XPT" 包含 1 個例程。

  例程 "ORCL", 狀態 READY, 包含此服務的 1 個處理程序...

服務 "PLSExtProc" 包含 1 個例程。

  例程 "PLSExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...

命令執行成功

[oracle@linux1 ~]$ lsnrctl service

 

LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 27-12-2009 22:13:06

 

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

 

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux1)(PORT=1521)))

服務摘要..

服務 "ORCL" 包含 2 個例程。

  例程 "ORCL", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...

    處理程序:

      "DEDICATED" 已建立:0 已被拒絕:0

         LOCAL SERVER

  例程 "ORCL", 狀態 READY, 包含此服務的 1 個處理程序...

    處理程序:

      "DEDICATED" 已建立:0 已拒絕:0 狀態:ready

         LOCAL SERVER

服務 "ORCL_XPT" 包含 1 個例程。

  例程 "ORCL", 狀態 READY, 包含此服務的 1 個處理程序...

    處理程序:

      "DEDICATED" 已建立:0 已拒絕:0 狀態:ready

         LOCAL SERVER

服務 "PLSExtProc" 包含 1 個例程。

  例程 "PLSExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...

    處理程序:

      "DEDICATED" 已建立:0 已被拒絕:0

         LOCAL SERVER

命令執行成功

 

此時實例ORCL已自動注冊到監聽器LISTENER上。實例ORCL既有靜態注冊也有動態注冊。

 

 

 

2、  測試用例2,創建第二個實例ORCL1522,其也自動注冊到PROTOCOL=TCPHOST=linux1、端口號為1521的監聽器上。

 

LISTENER.ORA文件內容沒有變化:

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = /opt/ora10g/product/10.2.0)

      (PROGRAM = extproc)

    )

    (SID_DESC =

      (GLOBAL_DBNAME = ORCL)

      (ORACLE_HOME = /opt/ora10g/product/10.2.0)

      (SID_NAME = ORCL)

    )

  )

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

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

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

    )

  )

 

 

啟動實例orcl1522

[oracle@linux1 admin]$ export ORACLE_SID=orcl1522

[oracle@linux1 admin]$ sqlplus / as sysdba

 

SQL*Plus: Release 10.2.0.4.0 - Production on 星期日 12 27 22:19:16 2009

 

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

 

已連接到空閑例程。

 

SQL> startup

ORACLE 例程已經啟動。

 

Total System Global Area  268435456 bytes

Fixed Size                  1266968 bytes

Variable Size             100666088 bytes

Database Buffers          163577856 bytes

Redo Buffers                2924544 bytes

數據庫裝載完畢。

數據庫已經打開。

SQL> exit

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options 斷開

 

查看監聽器LISTENER狀態:

[oracle@linux1 admin]$ lsnrctl status

 

LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 27-12-2009 22:19:39

 

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

 

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux1)(PORT=1521)))

LISTENER STATUS

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

別名                      LISTENER

版本                      TNSLSNR for Linux: Version 10.2.0.4.0 - Production

啟動日期                  27-12-2009 22:09:27

正常運行時間              0 0 小時 10 12

跟蹤級別                  off

安全性                    ON: Local OS Authentication

SNMP                      OFF

監聽程序參數文件          /opt/ora10g/product/10.2.0/network/admin/listener.ora

監聽程序日志文件          /opt/ora10g/product/10.2.0/network/log/listener.log

監聽端點概要...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linux1)(PORT=1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))

服務摘要..

服務 "ORCL" 包含 2 個例程。

  例程 "ORCL", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...

  例程 "ORCL", 狀態 READY, 包含此服務的 1 個處理程序...

服務 "ORCL_XPT" 包含 1 個例程。

  例程 "ORCL", 狀態 READY, 包含此服務的 1 個處理程序...

服務 "PLSExtProc" 包含 1 個例程。

  例程 "PLSExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...

服務 "orcl1522" 包含 1 個例程。

  例程 "orcl1522", 狀態 READY, 包含此服務的 1 個處理程序...

服務 "orcl1522_XPT" 包含 1 個例程。

  例程 "orcl1522", 狀態 READY, 包含此服務的 1 個處理程序...

命令執行成功

[oracle@linux1 admin]$ lsnrctl service

 

LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 27-12-2009 22:19:49

 

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

 

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux1)(PORT=1521)))

服務摘要..

服務 "ORCL" 包含 2 個例程。

  例程 "ORCL", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...

    處理程序:

      "DEDICATED" 已建立:0 已被拒絕:0

         LOCAL SERVER

  例程 "ORCL", 狀態 READY, 包含此服務的 1 個處理程序...

    處理程序:

      "DEDICATED" 已建立:0 已拒絕:0 狀態:ready

         LOCAL SERVER

服務 "ORCL_XPT" 包含 1 個例程。

  例程 "ORCL", 狀態 READY, 包含此服務的 1 個處理程序...

    處理程序:

      "DEDICATED" 已建立:0 已拒絕:0 狀態:ready

         LOCAL SERVER

服務 "PLSExtProc" 包含 1 個例程。

  例程 "PLSExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...

    處理程序:

      "DEDICATED" 已建立:0 已被拒絕:0

         LOCAL SERVER

服務 "orcl1522" 包含 1 個例程。

  例程 "orcl1522", 狀態 READY, 包含此服務的 1 個處理程序...

    處理程序:

      "DEDICATED" 已建立:0 已拒絕:0 狀態:ready

         LOCAL SERVER

服務 "orcl1522_XPT" 包含 1 個例程。

  例程 "orcl1522", 狀態 READY, 包含此服務的 1 個處理程序...

    處理程序:

      "DEDICATED" 已建立:0 已拒絕:0 狀態:ready

         LOCAL SERVER

命令執行成功

 

此時實例和實例均已注冊到監聽器LISTENER上,其中實例ORCL既有靜態注冊也有動態注冊,實例orcl1522只有動態注冊。

 

3、  測試用例3,創建第二個監聽器(PROTOCOL=TCPHOST=linux1、端口號為1522),同時修改第二個數據庫ORCL1522local_listener(ADDRESS=(PROTOCOL=TCP)(HOST=linux1)(PORT=1522))

 

創建完第二個監聽器LISTENER1522后,LISTENER.ORA文件的內容如下:

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = /opt/ora10g/product/10.2.0)

      (PROGRAM = extproc)

    )

    (SID_DESC =

      (GLOBAL_DBNAME = ORCL)

      (ORACLE_HOME = /opt/ora10g/product/10.2.0)

      (SID_NAME = ORCL)

    )

  )

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

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

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

    )

  )

 

LISTENER1522 =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1522))

    )

  )

 

同時在服務器端的TNSNAMES.ORA文件中增加一下內容:

listener1522=(ADDRESS=(PROTOCOL=TCP)(HOST=linux1)(PORT=1522))

 

啟動實例orcl1522

[oracle@linux1 admin]$ export ORACLE_SID=orcl1522

[oracle@linux1 admin]$ sqlplus / as sysdba

 

SQL*Plus: Release 10.2.0.4.0 - Production on 星期日 12 27 22:19:16 2009

 

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

 

已連接到空閑例程。

 

SQL> startup

ORACLE 例程已經啟動。

 

Total System Global Area  268435456 bytes

Fixed Size                  1266968 bytes

Variable Size             100666088 bytes

Database Buffers          163577856 bytes

Redo Buffers                2924544 bytes

數據庫裝載完畢。

數據庫已經打開。

SQL> exit

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options 斷開

 

修改參數LOCAL_LISTENER,然后重啟實例:

[oracle@linux1 admin]$ export ORACLE_SID=orcl1522

[oracle@linux1 admin]$ sqlplus / as sysdba

 

SQL*Plus: Release 10.2.0.4.0 - Production on 星期日 12 27 22:22:18 2009

 

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

 

 

連接到:

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

 

SQL> show parameter listener

 

NAME                                 TYPE        VALUE

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

local_listener                       string

remote_listener                      string

SQL> alter system set local_listener='listener1522';

 

系統已更改。

 

SQL> shutdown immediate

數據庫已經關閉。

已經卸載數據庫。

ORACLE 例程已經關閉。

SQL> startup

ORACLE 例程已經啟動。

 

Total System Global Area  268435456 bytes

Fixed Size                  1266968 bytes

Variable Size             100666088 bytes

Database Buffers          163577856 bytes

Redo Buffers                2924544 bytes

數據庫裝載完畢。

數據庫已經打開。

SQL> exit

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options 斷開

 

查看默認監聽器LISTENER狀態:

[oracle@linux1 admin]$ lsnrctl status

 

LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 27-12-2009 22:23:56

 

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

 

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux1)(PORT=1521)))

LISTENER STATUS

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

別名                      LISTENER

版本                      TNSLSNR for Linux: Version 10.2.0.4.0 - Production

啟動日期                  27-12-2009 22:09:27

正常運行時間              0 0 小時 14 28

跟蹤級別                  off

安全性                    ON: Local OS Authentication

SNMP                      OFF

監聽程序參數文件          /opt/ora10g/product/10.2.0/network/admin/listener.ora

監聽程序日志文件          /opt/ora10g/product/10.2.0/network/log/listener.log

監聽端點概要...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linux1)(PORT=1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))

服務摘要..

服務 "ORCL" 包含 2 個例程。

  例程 "ORCL", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...

  例程 "ORCL", 狀態 READY, 包含此服務的 1 個處理程序...

服務 "ORCL_XPT" 包含 1 個例程。

  例程 "ORCL", 狀態 READY, 包含此服務的 1 個處理程序...

服務 "PLSExtProc" 包含 1 個例程。

  例程 "PLSExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...

命令執行成功

此時監聽器上只有ORCL實例,原來注冊的實例orcl1522已去掉。

 

啟動新的監聽器LISTENER1522,同時啟動它:

[oracle@linux1 admin]$ lsnrctl

 

LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 27-12-2009 22:24:11

 

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

 

歡迎來到LSNRCTL, 請鍵入"help"以獲得信息。

 

LSNRCTL> set current_listener listener1522

目前的監聽程序為 listener1522

LSNRCTL> status

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1522)))

TNS-12541: TNS: 無監聽程序

 TNS-12560: TNS: 協議適配器錯誤

  TNS-00511: 無監聽程序

   Linux Error: 111: Connection refused

LSNRCTL> start

啟動/opt/ora10g/product/10.2.0/bin/tnslsnr: 請稍候...

 

TNSLSNR for Linux: Version 10.2.0.4.0 - Production

系統參數文件為/opt/ora10g/product/10.2.0/network/admin/listener.ora

寫入/opt/ora10g/product/10.2.0/network/log/listener1522.log的日志信息

監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linux1)(PORT=1522)))

 

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1522)))

LISTENER STATUS

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

別名                      listener1522

版本                      TNSLSNR for Linux: Version 10.2.0.4.0 - Production

啟動日期                  27-12-2009 22:24:48

正常運行時間              0 0 小時 0 0

跟蹤級別                  off

安全性                    ON: Local OS Authentication

SNMP                      OFF

監聽程序參數文件          /opt/ora10g/product/10.2.0/network/admin/listener.ora

監聽程序日志文件          /opt/ora10g/product/10.2.0/network/log/listener1522.log

監聽端點概要...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linux1)(PORT=1522)))

監聽程序不支持服務

命令執行成功

LSNRCTL> status

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1522)))

LISTENER STATUS

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

別名                      listener1522

版本                      TNSLSNR for Linux: Version 10.2.0.4.0 - Production

啟動日期                  27-12-2009 22:24:48

正常運行時間              0 0 小時 0 7

跟蹤級別                  off

安全性                    ON: Local OS Authentication

SNMP                      OFF

監聽程序參數文件          /opt/ora10g/product/10.2.0/network/admin/listener.ora

監聽程序日志文件          /opt/ora10g/product/10.2.0/network/log/listener1522.log

監聽端點概要...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linux1)(PORT=1522)))

監聽程序不支持服務

命令執行成功

LSNRCTL> exit

 

監聽器LISTENER1522剛啟動時,實例orcl1522尚未注冊,需手工到實例中注冊一下(alter system register),或者等一下由實例的PMON進程自動注冊到監聽器LISTENER1522上。

[oracle@linux1 admin]$ sqlplus / as sysdba

 

SQL*Plus: Release 10.2.0.4.0 - Production on 星期日 12 27 22:25:11 2009

 

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

 

 

連接到:

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

 

SQL> alter system register;

 

系統已更改。

 

SQL> exit

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options 斷開

 

查看監聽器LISTENER1522狀態:

[oracle@linux1 admin]$ lsnrctl

 

LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 27-12-2009 22:25:24

 

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

 

歡迎來到LSNRCTL, 請鍵入"help"以獲得信息。

 

LSNRCTL> set current_listener listener1522

目前的監聽程序為 listener1522

LSNRCTL> status

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1522)))

LISTENER STATUS

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

別名                      listener1522

版本                      TNSLSNR for Linux: Version 10.2.0.4.0 - Production

啟動日期                  27-12-2009 22:24:48

正常運行時間              0 0 小時 0 54

跟蹤級別                  off

安全性                    ON: Local OS Authentication

SNMP                      OFF

監聽程序參數文件          /opt/ora10g/product/10.2.0/network/admin/listener.ora

監聽程序日志文件          /opt/ora10g/product/10.2.0/network/log/listener1522.log

監聽端點概要...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linux1)(PORT=1522)))

服務摘要..

服務 "orcl1522" 包含 1 個例程。

  例程 "orcl1522", 狀態 READY, 包含此服務的 1 個處理程序...

服務 "orcl1522_XPT" 包含 1 個例程。

  例程 "orcl1522", 狀態 READY, 包含此服務的 1 個處理程序...

命令執行成功

LSNRCTL> service

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1522)))

服務摘要..

服務 "orcl1522" 包含 1 個例程。

  例程 "orcl1522", 狀態 READY, 包含此服務的 1 個處理程序...

    處理程序:

      "DEDICATED" 已建立:0 已拒絕:0 狀態:ready

         LOCAL SERVER

服務 "orcl1522_XPT" 包含 1 個例程。

  例程 "orcl1522", 狀態 READY, 包含此服務的 1 個處理程序...

    處理程序:

      "DEDICATED" 已建立:0 已拒絕:0 狀態:ready

         LOCAL SERVER

命令執行成功

LSNRCTL> set cuurent_listener listener

NL-00853: 未定義的  set 命令 "cuurent_listener"。請嘗試 "help set"

LSNRCTL> set current_listener listener

目前的監聽程序為 listener

LSNRCTL> status

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux1)(PORT=1521)))

LISTENER STATUS

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

別名                      LISTENER

版本                      TNSLSNR for Linux: Version 10.2.0.4.0 - Production

啟動日期                  27-12-2009 22:09:27

正常運行時間              0 0 小時 17 12

跟蹤級別                  off

安全性                    ON: Local OS Authentication

SNMP                      OFF

監聽程序參數文件          /opt/ora10g/product/10.2.0/network/admin/listener.ora

監聽程序日志文件          /opt/ora10g/product/10.2.0/network/log/listener.log

監聽端點概要...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linux1)(PORT=1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))

服務摘要..

服務 "ORCL" 包含 2 個例程。

  例程 "ORCL", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...

  例程 "ORCL", 狀態 READY, 包含此服務的 1 個處理程序...

服務 "ORCL_XPT" 包含 1 個例程。

  例程 "ORCL", 狀態 READY, 包含此服務的 1 個處理程序...

服務 "PLSExtProc" 包含 1 個例程。

  例程 "PLSExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...

命令執行成功

LSNRCTL> exit

此時發現實例orcl1522已注冊到監聽器LISTENER1522上,實例ORCL注冊到監聽器LISTENER上。同時,實例orcl1522均為動態注冊,實例ORCL既有動態注冊也有靜態注冊。

 

再在實例orcl1522中去掉參數local_listener的值:

[oracle@linux1 admin]$ sqlplus / as sysdba

 

SQL*Plus: Release 10.2.0.4.0 - Production on 星期日 12 27 22:27:40 2009

 

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

 

 

連接到:

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

 

SQL> alter system set local_listener='';

 

系統已更改。

 

SQL> exit

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options 斷開

 

分別查看監聽器LISTENER1522LISTENER狀態:

[oracle@linux1 admin]$ lsnrctl

 

LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 27-12-2009 22:27:59

 

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

 

歡迎來到LSNRCTL, 請鍵入"help"以獲得信息。

 

LSNRCTL> set current_listener listener1522

目前的監聽程序為 listener1522

LSNRCTL> status

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1522)))

LISTENER STATUS

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

別名                      listener1522

版本                      TNSLSNR for Linux: Version 10.2.0.4.0 - Production

啟動日期                  27-12-2009 22:24:48

正常運行時間              0 0 小時 3 28

跟蹤級別                  off

安全性                    ON: Local OS Authentication

SNMP                      OFF

監聽程序參數文件          /opt/ora10g/product/10.2.0/network/admin/listener.ora

監聽程序日志文件          /opt/ora10g/product/10.2.0/network/log/listener1522.log

監聽端點概要...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linux1)(PORT=1522)))

監聽程序不支持服務

命令執行成功

LSNRCTL> set current_listener listener

目前的監聽程序為 listener

LSNRCTL> status

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux1)(PORT=1521)))

LISTENER STATUS

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

別名                      LISTENER

版本                      TNSLSNR for Linux: Version 10.2.0.4.0 - Production

啟動日期                  27-12-2009 22:09:27

正常運行時間              0 0 小時 19 13

跟蹤級別                  off

安全性                    ON: Local OS Authentication

SNMP                      OFF

監聽程序參數文件          /opt/ora10g/product/10.2.0/network/admin/listener.ora

監聽程序日志文件          /opt/ora10g/product/10.2.0/network/log/listener.log

監聽端點概要...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linux1)(PORT=1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))

服務摘要..

服務 "ORCL" 包含 2 個例程。

  例程 "ORCL", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...

  例程 "ORCL", 狀態 READY, 包含此服務的 1 個處理程序...

服務 "ORCL_XPT" 包含 1 個例程。

  例程 "ORCL", 狀態 READY, 包含此服務的 1 個處理程序...

服務 "PLSExtProc" 包含 1 個例程。

  例程 "PLSExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...

服務 "orcl1522" 包含 1 個例程。

  例程 "orcl1522", 狀態 READY, 包含此服務的 1 個處理程序...

服務 "orcl1522_XPT" 包含 1 個例程。

  例程 "orcl1522", 狀態 READY, 包含此服務的 1 個處理程序...

命令執行成功

LSNRCTL> service

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux1)(PORT=1521)))

服務摘要..

服務 "ORCL" 包含 2 個例程。

  例程 "ORCL", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...

    處理程序:

      "DEDICATED" 已建立:0 已被拒絕:0

         LOCAL SERVER

  例程 "ORCL", 狀態 READY, 包含此服務的 1 個處理程序...

    處理程序:

      "DEDICATED" 已建立:0 已拒絕:0 狀態:ready

         LOCAL SERVER

服務 "ORCL_XPT" 包含 1 個例程。

  例程 "ORCL", 狀態 READY, 包含此服務的 1 個處理程序...

    處理程序:

      "DEDICATED" 已建立:0 已拒絕:0 狀態:ready

         LOCAL SERVER

服務 "PLSExtProc" 包含 1 個例程。

  例程 "PLSExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...

    處理程序:

      "DEDICATED" 已建立:0 已被拒絕:0

         LOCAL SERVER

服務 "orcl1522" 包含 1 個例程。

  例程 "orcl1522", 狀態 READY, 包含此服務的 1 個處理程序...

    處理程序:

      "DEDICATED" 已建立:0 已拒絕:0 狀態:ready

         LOCAL SERVER

服務 "orcl1522_XPT" 包含 1 個例程。

  例程 "orcl1522", 狀態 READY, 包含此服務的 1 個處理程序...

    處理程序:

      "DEDICATED" 已建立:0 已拒絕:0 狀態:ready

         LOCAL SERVER

命令執行成功

LSNRCTL>

 

實例orcl1522去掉local_listener參數值后,其馬上重新自動注冊到默認監聽器LISTENER上。

 

三、總結

1、  數據庫時自動注冊時,監聽器必須滿足三條件:PROTOCOL=TCPHOST=本機電腦名(或為localhost),PORT=1521。這三個條件只有有一個不滿足,實例都不能自動注冊。

2、  采用自動注冊時,監聽器配置中的HOST=?,需要設置為其電腦的機器名(或為localhost),不要直接設置為IP地址。否則,對於第一個實例而言,其就無法自動注冊到1521這個監聽器上。

3、  同一個監聽器可以監聽多個實例,都是TCP、端口號1521。見測試用例2

4、  在一台配置多個監聽器的電腦上,本地的一個實例能夠注冊到的本地監聽器只能有一個。見測試用例3

5、  一個實例除了可注冊到本地的監聽器外,還可通過remote_listener注冊到遠程服務器上。主要的應用為RAC數據庫,用例請參見http://space.itpub.net/9252210/viewspace-592111

 

參考文檔:

1eygle_第一章數據庫的啟動和關閉.pdf

 

2http://warehouse.itpub.net/post/777/472788

 

3http://space.itpub.net/9252210/viewspace-592111

 

4http://space.itpub.net/175005/viewspace-173527

 

5http://www.lorentzcenter.nl/awcourse/oracle/network.920/a96580/listener.htm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM