当前位置: 首页 > 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 轻量数据层之路 抢先体验版本功能说明演示 (二十九)
  • 性能测试解惑之并发压力
  • 深入了解以太坊
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • 3.7、@ResponseBody 和 @RestController
  • Android 架构优化~MVP 架构改造
  • Apache Zeppelin在Apache Trafodion上的可视化
  • 闭包--闭包作用之保存(一)
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 从tcpdump抓包看TCP/IP协议
  • 你真的知道 == 和 equals 的区别吗?
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 如何设计一个比特币钱包服务
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • MPAndroidChart 教程:Y轴 YAxis
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (4)STL算法之比较
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (论文阅读11/100)Fast R-CNN
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • .net web项目 调用webService
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .net6使用Sejil可视化日志
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • @WebServiceClient注解,wsdlLocation 可配置
  • [C#]手把手教你打造Socket的TCP通讯连接(一)
  • [C++] sqlite3_get_table 的使用
  • [C++]STL之map
  • [CQOI 2011]动态逆序对
  • [CVPR 2023:3D Gaussian Splatting:实时的神经场渲染]
  • [EFI]DELL XPS13 9360电脑 Hackintosh 黑苹果efi引导文件
  • [hive] posexplode函数
  • [js]js设计模式小结
  • [Linux_IMX6ULL驱动开发]-基础驱动
  • [one_demo_9]判断数组是否递增
  • [python]python os模块 常用命令
  • [Rust学习:二]变量和传参
  • [SystemC]SystemC Hierarchical Channels
  • [Toolschain cpp ros cmakelist python vscode] 记录写每次项目重复的设置和配置 不断更新
  • [vscode]将命令行参数传递给调试目标