如何在Linux服务器上通过java程序检查oracle侦听器状态。
我是如何手工操作服务器的。登录到服务器后,我必须执行oracle数据库的.oraenv proflie请求Oracle SID{Oracle database name},然后它就开始工作了。
lsnrctl状态命令.
[oracle@xx美元]oraenv ORACLE_SID = daltaasm?δOracle基础已设置为/u 01/app/ oracle@XX$ clear @xx$。奥拉恩夫ORACLE_SID =三角洲?δOracle基础保持不变,值/u 01/app/ oracle@xx$ xx oracle@xx$ lsnrctl状态 Linux LSNRCTL : 11.2.0.4.0版- 05-APR-2018 05:18:21生产 版权(c) 1991、2013,甲骨文。版权所有。 连接(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) 侦听器的状态 别名侦听器版本TNSLSNR用于Linux: Version11.2.0.4.0-生产开始日期02-APR-2018 11:45:50正常运行时间2天17小时。32分钟3秒跟踪级别关闭安全性:本地OS身份验证SNMP关闭侦听器日志文件/u01/app/oracle/diag/tnslsnr/deltaoramegan/listener/alert/log.xml侦听终结点摘要.(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=DeltaOraMegan.local)(PORT=1521)))服务摘要..。服务"+ASM“有一个实例。实例"+ASM",状态就绪,该服务有一个处理程序.服务“三角”有一个实例。实例“增量”,状态就绪,有一个(一个)处理程序用于此服务.服务"deltaasmXDB“有一个实例。实例“增量”,状态就绪,有一个(一个)处理程序用于此服务.命令成功完成oracle@xx$ ^C
那么如何实现java程序来检查lsnrctl状态命令状态呢?
如果我不手动训斥的话。oraenv配置文件在Linux服务器上,它将显示lsnrctl状态命令未找到。
ex @xx$ snrctl状态lsnrctl状态命令找不到
请建议java程序中的问题解决方案。
发布于 2018-04-05 16:19:27
oraenv只是一个包装外壳脚本,它将为您设置$ORACLE_HOME、$ORACLE_SID、$ORACLE_BASE和$PATH变量。您只需使用文本编辑器打开它,就可以看到所有的shell代码。简而言之,它将查看/etc/oratab,其中Oracle记录Oracle的信息(给定服务器上可以有多个),以及哪个数据库使用的是哪个数据库。
lsnrctl二进制文件可以在$ORACLE_HOME/bin中找到,所以诀窍是找出$ORACLE_HOME是什么。如果您将它安装在一个固定的位置,您可以简单地相应地设置$ORACLE_HOME和$PATH,例如:
假设我在/opt/oracle/product/12.2.0.1/dbhome_1中安装了Oracle软件,我的环境变量如下所示:
export ORACLE_HOME=/opt/oracle/product/12.2.0.1/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin从那时起,您现在只需调用lsnrctl (因为它现在在$PATH中)。
所以,诀窍是找出在哪里安装了甲骨文软件,您可以通过查看/etc/oratab来了解它,或者,如果您总是将它安装在相同的位置(通常是这样),只需预先设置变量。
https://stackoverflow.com/questions/49673046
复制相似问题