1. 程式人生 > >Oracle11.2.0.4升級170418PATCH後login.sql無法使用

Oracle11.2.0.4升級170418PATCH後login.sql無法使用

oracle sqlplus login.sql

最近生產上的數據庫升級到了11.2.0.4當前最新的PATCH——170418,但是在使用sqlplus登錄數據庫進行操作時,發現與以往登錄時不同的地方。

打PATCH以前登錄時的截圖:

技術分享打PATCH之後 登錄時的截圖:

技術分享

從截圖上直觀看到的是登錄時的信息沒有顯示出來,但實際上是所有以前對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

技術分享

沒有任何反應,又想到調用SQL文件可以忽略後綴,再次嘗試

技術分享從上圖中看到期望的顯示。

難道是因為打PATCH包導致的?於是在虛擬機做測試,由於虛擬機上已經打到最新的PATCH了,直接測試調用login.sql文件與生產上的現象一致。於是回滾最新的PATCH

opatch rollback -id 24732075

回滾最新的PATCH後,再次sqlplus登錄數據庫,login.sql文件中的對sqlplus設置恢復正常。

現在還不能確定是BUG還是升級的方式有問題。

處理方式:既然可以直接調用login,就在glogin.sql中加入@$SQLPATH/login這一條,登錄恢復如初。


參考:http://www.jb51.net/article/78543.htm

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)

本文出自 “DBA Fighting!” 博客,請務必保留此出處http://hbxztc.blog.51cto.com/1587495/1932250

Oracle11.2.0.4升級170418PATCH後login.sql無法使用