当前位置: 首页 > news >正文

[20170705]lsnrctl status LISTENER_SCAN1

[20170705]lsnrctl status LISTENER_SCAN1.txt

--//前几天在解决问题时遇到的问题,现在分析看看.当时没注意操作用户名,选择错误的用户执行(oracle用户执行).

1.环境:
--//rac
SYS@dbcn2> @ &r/ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

--//以oracle用户执行:
$ lsnrctl status LISTENER_SCAN1
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 05-JUL-2017 10:26:47
Copyright (c) 1991, 2013, Oracle.  All rights reserved.
TNS-01101: Could not find service name LISTENER_SCAN1

--//实际上使用grid用户执行就ok了.使用strace做一次跟踪看看.

$ strace -f -o /tmp/a.txt lsnrctl status LISTENER_SCAN1

$ grep listener.ora /tmp/a.txt
90212 access("/etc/listener.ora", F_OK) = -1 ENOENT (No such file or directory)
90212 access("/u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/listener.ora", F_OK) = -1 ENOENT (No such file or directory)

--//可以发现这个文件不存在.不要在正式的数据库做这样的操作,这里仅仅是测试.
# cp /u01/app/11.2.0.4/grid/network/admin/listener.ora /u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/

--//再次执行就ok了.
$ lsnrctl status LISTENER_SCAN1
--//删除文件/u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/listener.ora

2.疑问:
--//为什么在oracle下单独执行lsnrctl status 没有问题呢?
--//实际上oracle 缺省默认的建立名字就是LISTENER.

$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 05-JUL-2017 10:37:27
Copyright (c) 1991, 2013, Oracle.  All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                29-JUN-2017 19:23:54
Uptime                    5 days 15 hr. 13 min. 33 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/11.2.0.4/grid/network/admin/listener.ora
Listener Log File         /u01/app/11.2.0.4/grid/network/log/listener.log
....

--//让我感到奇怪的是,为什么现在能找到参数文件正确的参数文件/u01/app/11.2.0.4/grid/network/admin/listener.ora呢.

3.再次跟踪看看:
$ strace -f -o /tmp/a2.txt lsnrctl status

$ grep listener.ora /tmp/a2.txt
115234 access("/etc/listener.ora", F_OK) = -1 ENOENT (No such file or directory)
115234 access("/u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/listener.ora", F_OK) = -1 ENOENT (No such file or directory)
--//也是没有找到监听.

115234 access("/var/tmp/.oracle/s#48978.2", F_OK) = 0
115234 connect(6, {sa_family=AF_FILE, path="/var/tmp/.oracle/s#48978.2"...}, 110) = 0
115234 fcntl(6, F_SETFD, FD_CLOEXEC)    = 0

--//进程会读取/var/tmp/.oracle/s#48978.2.
# ls -l /var/tmp/.oracle/s#48978.2
srwxrwxrwx 1 grid oinstall 0 2017-06-29 19:23:54 /var/tmp/.oracle/s#48978.2
--//socket文件.里面的数值对于进程号.

# lsof | grep  /var/tmp/.oracle/s#48978.2
tnslsnr    48978   grid   10u     unix 0xffff881738bfe180       0t0 1991767425 /var/tmp/.oracle/s#48978.2

# ps -elf | egrep "48978|PID"
F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
0 S root       1936  87074  0  80   0 - 15299 pipe_w 10:50 pts/1    00:00:00 egrep 48978|PID
0 S grid      48978      1  0  80   0 - 38621 poll_s Jun29 ?        00:36:25 /u01/app/11.2.0.4/grid/bin/tnslsnr LISTENER -inherit

--//正是进程/u01/app/11.2.0.4/grid/bin/tnslsnr LISTENER -inherit.监听的别名是LISTENER.
# cat /proc/48978/environ | tr '\0' '\n'| grep -i admin
TNS_ADMIN=/u01/app/11.2.0.4/grid/network/admin/

--//所以oracle用户可以正常执行lsnrctl status .

4.补充说明:
--//实际上跟踪查看前面的/tmp/a.txt文件,只要对应的tnsnames.ora存在这个名字,一样ok了.

$ grep tnsnames.ora /tmp/a.txt
90212 access("/home/oracle/.tnsnames.ora", F_OK) = -1 ENOENT (No such file or directory)
90212 access("/etc/tnsnames.ora", F_OK) = -1 ENOENT (No such file or directory)
90212 access("/u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/tnsnames.ora", F_OK) = 0
90212 stat("/u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/tnsnames.ora", {st_mode=S_IFREG|0640, st_size=6403, ...}) = 0
90212 open("/u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/tnsnames.ora", O_RDONLY) = 5
90212 read(5, "# tnsnames.ora Network Configura"..., 4096) = 4096

--//在/u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin目录的tnsnames.ora文件中加入如下:
LISTENER_SCAN1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1))))

$ lsnrctl status LISTENER_SCAN1
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 05-JUL-2017 11:09:36
Copyright (c) 1991, 2013, Oracle.  All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER_SCAN1
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                30-JUN-2017 12:01:44
Uptime                    4 days 23 hr. 7 min. 51 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/11.2.0.4/grid/network/admin/listener.ora
Listener Log File         /u01/app/11.2.0.4/grid/network/log/listener_scan1.log
...

--//收尾:
--//仅仅作为一次学习与了解这方面内容,还原现场.
--//正常作为管理rac数据库系统还是应该选择grid用户来执行这些命令.

相关文章:

  • 锂电池有多火?上半年54家上市公司投了1160亿
  • 钱建林出席西古光通成立30周年庆典
  • 日本政府推网络战考试制度 黑客需持证上岗
  • 千万WiFi热点难成成运营级网络
  • 2017年一季度太阳能行业企业融资达32亿美元
  • error while loading shared libraries: libssl.so.6: cannot open shared object file
  • LeetCode 142. Linked List Cycle II 20170706
  • 算法-三向字符串快速排序
  • 国内互联网医疗的反思和2016年9大前沿趋势
  • 选择服务器托管都有哪些优势和不足
  • SpringBoot使用教程【1】Restful API设计 返回json,xml格式
  • weblogic部署web项目出现错误
  • 自制字幕遮挡器
  • CYQ.Data 轻量数据层之路 抢先体验版本功能说明演示 (二十九)
  • 性能测试解惑之并发压力
  • 【css3】浏览器内核及其兼容性
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • Bytom交易说明(账户管理模式)
  • CentOS从零开始部署Nodejs项目
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Fundebug计费标准解释:事件数是如何定义的?
  • SQLServer插入数据
  • vue-router 实现分析
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 关于Java中分层中遇到的一些问题
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 利用DataURL技术在网页上显示图片
  • 前端性能优化--懒加载和预加载
  • 时间复杂度与空间复杂度分析
  • 原生 js 实现移动端 Touch 滑动反弹
  • 正则学习笔记
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • #QT(TCP网络编程-服务端)
  • #stm32驱动外设模块总结w5500模块
  • (黑马C++)L06 重载与继承
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)shell调试方法
  • (轉貼) UML中文FAQ (OO) (UML)
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET中winform传递参数至Url并获得返回值或文件
  • :=
  • @property括号内属性讲解
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • []T 还是 []*T, 这是一个问题
  • []常用AT命令解释()
  • [1525]字符统计2 (哈希)SDUT
  • [20180224]expdp query 写法问题.txt
  • [22]. 括号生成
  • [Android Pro] AndroidX重构和映射