$ORACLE_HOME变量值末尾多“/”惹的祸
之前一直误以为$ORACLE_HOME变量的路径中末尾多写一个"/"不会有影响。
今天做实验时碰到一个情景,发现并不是这样。
环境:OEL 5.7 + Oracle 10.2.0.5
该环境做一个oracle的rman备份实验,发现脚本并未执行成功,直接报错数据库不可用,而实际上数据库服务本身是正常的。
最终排查结果是 $ORACLE_HOME的变量值多写了一个"/"
去掉末尾这个多加的"/"之后一切正常。
可以简单实验重现问题:
[oracle@oradb30 db_1]$ env|grep ORA
ORACLE_SID=ora10
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1/
[oracle@oradb30 db_1]$ rman target /
Recovery Manager: Release 10.2.0.5.0 - Production on Sun Dec 25 22:13:54 2016
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database (not started)
RMAN> exit
Recovery Manager complete.
[oracle@oradb30 db_1]$ export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
[oracle@oradb30 db_1]$ env|grep ORA
ORACLE_SID=ora10
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
[oracle@oradb30 db_1]$ rman target /
Recovery Manager: Release 10.2.0.5.0 - Production on Sun Dec 25 22:14:20 2016
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database: ORA10 (DBID=914008358)
RMAN>
可以看到前后两次执行rman target / 只是前者$ORACLE_HOME变量的最后多了一个"/".
就导致rman target / 连接不到数据库。
而之前明明清楚记得没有这个影响,果然在验证另一套实验环境(RHEL6.5 + Oracle 11.2.0.4)中, 同样结尾多一个这样的"/",的确是没有任何问题。
[oracle@jydg ~]$ env|grep ORA
ORACLE_SID=jyzhao_s
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
[oracle@jydg ~]$ rman target /
Recovery Manager: Release 11.2.0.4.0 - Production on Sun Dec 25 09:43:56 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: JYZHAO (DBID=2509089778)
RMAN> exit
Recovery Manager complete.
[oracle@jydg ~]$ export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1/
[oracle@jydg ~]$ rman target /
Recovery Manager: Release 11.2.0.4.0 - Production on Sun Dec 25 09:44:02 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: JYZHAO (DBID=2509089778)
RMAN>
建议:操作时,要规范这类细节的地方,不管实际可不可以允许多加"/",我们都不要去画蛇添足,养成好习惯,自然就不会被此类问题所困扰。
随机推荐
- ASP.NET Core 之 Identity 入门(二)
前言 在 上篇文章 中讲了关于 Identity 需要了解的单词以及相对应的几个知识点,并且知道了Identity处在整个登入流程中的位置,本篇主要是在 .NET 整个认证系统中比较重要的一个环节,就 ...
- MVVM模式和在WPF中的实现(一)MVVM模式简介
MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...
- Linux CentOS 配置Tomcat环境
一.下载Tomcat 下载Tomcat方式也有两种,可以参考我的前一篇博文Linux CentOS配置JDK环境,这边就不再赘述. 二.在Linux处理Tomcat包 1.创建tomcat文件夹 mk ...
- 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一)
相关连接导航 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二) 常用 Gulp 插件汇总 ...
- SQL必备知识点
经典SQL语句大全 基础 1.说明:创建数据库.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数据的 device.说明:创建新表crea ...
- 从零开始编写自己的C#框架(24)——测试
导航 1.前言 2.不堪回首的开发往事 3.测试推动开发的成长——将Bug消灭在自测中 4.关于软件测试 5.制定测试计划 6.编写测试用例 7.执行测试用例 8.发现并提交Bug 9.开发人员修复B ...
- windows下 安装 rabbitMQ 及操作常用命令
rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rab ...
- maven依赖查询地址
http://search.maven.org/#search%7Cga%7C1%7C
- 开源 iOS 项目分类索引大全 - 待整理
开源 iOS 项目分类索引大全 GitHub 上大概600个开源 iOS 项目的分类和介绍,对于你挑选和使用开源项目应该有帮助 系统基础库 Category/Util sstoolkit 一套Cate ...
- 一切从“简”,解放IT运维人员
运维人的神技 运维既是个技术活儿也是个苦差事,而运维人员被期望有着无限的技能:主机.存储.网络.操作系统样样精通,而且还要会写SQL.shell.开发语言java..net.python等等,对业务更 ...