如何用shell脚本判断oracle数据库sqlplus连接成功

weixin_41992983 2018-05-29 09:27:59
如何用shell脚本判断oracle数据库sqlplus连接成功
...全文
1962 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
什么叫sqlplus连接成功啊? 看看有木有对应的进程?
weixin_41992983 2018-05-30
  • 打赏
  • 举报
回复 1
谢谢大家的回复,今天我写出来了,和2楼的思路是一个方向,我只要返回成功的,不成功的抛出去,我把关键代码写出来 VALUE=`sqlplus -S test/test@${ip}:1521/orcl <<EOF set heading off feedback off pagesize 0 verify off echo off numwidth 4 select count(1) from dual; exit EOF` if [ $VALUE -eq 1 ];then echo “用户test能登陆主机为${ip}的数据库服务器;" else echo ”用户test不能登陆“ fi
卖水果的net 2018-05-30
  • 打赏
  • 举报
回复
楼主细说一下你的需求,大家说了一堆还可能不是你想要的。
ckc 2018-05-30
  • 打赏
  • 举报
回复
如果是指定一个脚本执行完就退出的,可以检查返回码 返回0表示正常 不过sqlplus联接不正常需要人工干预的,在脚本里检查似乎意义不大
目 录 绪论……………………………………………………………….….……………… 1 第1章 准备安装Oralce环境…………………………….….……………2   1.1 安装Oracle 10g R2所需的软件包………………………………………3   1.2 检查内核并修改linux版本信息......………………………………..……3   1.3 配置内核核心参数………………………………………..……….....……3   1.4 建立安装Oracle需要的用户,组,及目录……………..……….....……3   1.5 设置oracle的登录环境变量……………..……….....……3   1.6 配置X windows 1.7创建目录存放oracle安装文件………… ……………………….……………...3 1.8使用ssh 把oracle安装文件上传到10gR2_db目录下…….……………...……....7   1.9解压安装文件……………....7    第2章 Linux下安装Oracle数据库…………… .…… ……………………….….....3   2.1 选择安装类型,选择高级安装………………….….....3   2.2 指定证书存放目录 ….….....3   2.3 选择安装的数据库类型及oracle所支持的语言 ….….....3   2.4 指定oracle环境变量,安装路径….….....3   2.5 Oracle开始进行安装前的检查工作….….....3   2.6 选择配置选项….….....3   2.7 选择创建的数据库模式….….....3   2.8 指定数据库配置的相关选项.…… ……………………….….....3   2.9 选择数据库管理选项 .…… ……………………….….....3   2.10 指定数据库备份回复选项.…… ……………………….….....3   2.11 指定数据库相关用户密码oracle.…… ……………………….….....3   2.12 开始安装.…… ……………………….….....3   2.13 执行脚本信息.…… ……………………….….....3   2.14 安装结束.…… ……………………….….....3    验证安装的Oracle…………… .…… ……………………….….....3   3.1 使用浏览器登录isqlplus…… .…… ……………………….….....3   3.2 使用浏览器登录企业管理器…… .…… ……………………….….3   3.3终端登录sqlplus …… .…… ……………………….….....3   3.4 使用dbca创建数据库…… .…… ……………………….….....3    通过shell脚本实现oracle的自动化的管理.......33      4.1 编写shell 脚本启动数据库监听及数据库 .........3   4.2 编写shell 脚本关闭数据库监听及数据库.................33   4.3 系统启动关闭时自动执行的shell脚本…………….….....3   4.4.监控监听进程是否运行…………….….....3   4.5 全冷备份数据库........................3   4.6全热备份数据库........................3   
在java代码中调用执行shell脚本,sqlldr导数与使用sqlplusshell调用执行存储过程。 linux环境中有2个dba的用户:oracle、erm 还有1个web用户:erm 在linux环境中,这三个用户都可以直接在任意目录下执行该shell脚本,可是在java代码中调用shell脚本时,报了如下4个错误: 1、sqlldr: command not found 2、sqlplus: command not found 3、0750: You may need to set ORACLE_HOME to your Oracle software directory 4、Message 2100 not found; No message file for product=RDBMS, facility=ULMessage 2100 not found; No message file for product=RDBMS, facility=UL$ 检查了dba用户和web用户下关于oracle的所有环境变量发现没有问题 (/home/oracle/.profile 与 /home/erm/.profile 环境变量文件为隐藏文件需使用 ls -a 命令查看) 在网上查了一遍以后有如下几种处理办法: 1、没有oracle_home目录的执行权限,无法进入到bin目录,使用chmod 755 $oracle_home更改目录权限;使用chmod 755 $oracle_home/lib更改目录权限;对目录$oracle_home/rdbms/mesg目录赋予相应权限;当需要给非oracle用户配置使用sqlldr时,不单需要配置环境变量,还需要把相关目录的访问权限赋予该用户。【采用此法测试以后还是出现上面的错误】 2、用sh直接执行shell和在java直接执行shell是有区别的,要在shell文件内增加oracle的环境变量即. /home/oracle/.bash_profile 这句话,否则在执行sqlldr会报如下异常: Message 2100 not found; No message file for product=RDBMS...... facility=UL 【采用此法测试以后继续报错,但是这个方法有引导作用,继续往下看】 因为我在linux环境下执行shell脚本时sqlldr命令和sqlplus命令是正常执行的,没有任何问题,但是在java代码中调用脚本时却报错,所有排除了其他原因,只可能是环境变量的问题, 于是我把oracle的所有环境变量直接复制到shell脚本文件中,在java中调用了一下,然后所有问题迎刃而解! 具体代码参看文件内容

3,490

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧