困扰了两天的问题:监听开启后无服务

报错信息:
[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(非默认端口)
25264937_201103151004051.jpg
保存配置
        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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28291944/viewspace-2146109/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28291944/viewspace-2146109/

为了在Windows安装ADB工具,你可以按照以下步骤进行操作: 1. 首先,下载ADB工具包并解压缩到你自定义的安装目录。你可以选择将其解压缩到任何你喜欢的位置。 2. 打开运行窗口,可以通过按下Win+R键来快速打开。在运行窗口中输入"sysdm.cpl"并按下回车键。 3. 在系统属性窗口中,选择"高级"选项卡,然后点击"环境变量"按钮。 4. 在环境变量窗口中,选择"系统变量"部分,并找到名为"Path"的变量。点击"编辑"按钮。 5. 在编辑环境变量窗口中,点击"新建"按钮,并将ADB工具的安装路径添加到新建的路径中。确保路径正确无误后,点击"确定"按钮。 6. 返回到桌面,打开命令提示符窗口。你可以通过按下Win+R键,然后输入"cmd"并按下回车键来快速打开命令提示符窗口。 7. 在命令提示符窗口中,输入"adb version"命令来验证ADB工具是否成功安装。如果显示版本信息,则表示安装成功。 这样,你就成功在Windows安装ADB工具。你可以使用ADB工具来执行各种操作,如枚举设备、进入/退出ADB终端、文件传输、运行命令、查看系统日志等。具体的操作方法可以参考ADB工具的官方文档或其他相关教程。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [windows环境安装adb驱动](https://blog.youkuaiyun.com/zx54633089/article/details/128533343)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Windows安装使用ADB简单易懂教程](https://blog.youkuaiyun.com/m0_37777700/article/details/129836351)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值