zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    ASP.NET存储过程自定义分页详解
    ajax php POST 提交例子
    一个用存储过程的基本分页及其调用
    DataGrid 存储过程的分页
    无刷新无限级菜单联动
    asp.net URL多参数傳值以及特殊符号传值问题
    ASP.NET页面间参数的传递
    Android动画开发——Animation动画效果
    android surface
    Android控件属性——android:cacheColorHint=“#00000000”
  • 原文地址:https://www.cnblogs.com/vikingwei/p/4389808.html
Copyright © 2011-2022 走看看