阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle11.2.0.4升级170418PATCH后login.sql无法使用

98次阅读
没有评论

共计 1071 个字符,预计需要花费 3 分钟才能阅读完成。

最近生产上的 Oracle 数据库升级到了 11.2.0.4 当前最新的 PATCH——170418,但是在使用 sqlplus 登录数据库进行操作时,发现与以往登录时不同的地方。

打 PATCH 以前登录时的截图:

Oracle11.2.0.4 升级 170418PATCH 后 login.sql 无法使用 打 PATCH 之后 登录时的截图:

Oracle11.2.0.4 升级 170418PATCH 后 login.sql 无法使用

从截图上直观看到的是登录时的信息没有显示出来,但实际上是所有以前对 sqlplus 的配置都没有生效。这是什么原因呢。

先来看 sqlplus 启动过程:

sqlplus 在启动时会自动运行两个脚本:glogin.sql、login.sql 这两个文件

执行顺序为

1. 默认在在 $ORACLE_HOME/sqlplus/admin 路径下查找 glogin.sql 文件执行

2. 默认在在当前路径下查找 login.sql 文件执行,若未查找到对应文件则执行 3

3. 判断是否设置 SQLPATH 环境变量,如果设置了该变量则在对应路径下查找并执行,未找到则停止查找

可以在 login.sql 文件中加入一些常用设置使用 SQLPLUS 时更便捷。

当前系统中设置了 SQLPATH 环境变量,目录下也有 login.sql 文件,里面有对 sqlplus 做的所有设置。那为什么环境变量都没有变化,配置却不能生效了呢?

尝试直接调用 login.sql

Oracle11.2.0.4 升级 170418PATCH 后 login.sql 无法使用

没有任何反应,又想到调用 SQL 文件可以忽略后缀,再次尝试

Oracle11.2.0.4 升级 170418PATCH 后 login.sql 无法使用 从上图中看到期望的显示。

难道是因为打 PATCH 包导致的?于是在虚拟机做测试,由于虚拟机上已经打到最新的 PATCH 了,直接测试调用 login.sql 文件与生产上的现象一致。于是回滚最新的 PATCH

opatch rollback -id 24732075

回滚最新的 PATCH 后,再次 sqlplus 登录数据库,login.sql 文件中的对 sqlplus 设置恢复正常。

现在还不能确定是 BUG 还是升级的方式有问题。

处理方式:既然可以直接调用 login,就在 glogin.sql 中加入 @$SQLPATH/login 这一条,登录恢复如初。

http://docs.oracle.com/cd/E11882_01/server.112/e16604/ch_two.htm#i1133106

How to Maintain SQL*Plus System Variable/Column Format Settings (文档 ID 1039268.6)

更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-06/144587.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1071字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中