參考原文: How to Set or Switch Oracle Homes on Windows (Doc ID 969581.1) 適用于: Oracle Database - Enterprise Edition - Version 9.2.0.1 to 11.2.0.1.0 [Release 9.2 to 11.2] Microsoft Windows (32-bit) Microsoft Windows Itanium (64-bit) Mic
參考原文:
How to Set or Switch Oracle Homes on Windows (Doc ID 969581.1)
適用于:
Oracle Database - Enterprise Edition - Version 9.2.0.1 to 11.2.0.1.0 [Release 9.2 to 11.2]
Microsoft Windows (32-bit)
Microsoft Windows Itanium (64-bit)
Microsoft Windows x64 (64-bit)
解決方案:
在windows環(huán)境中,為什么 不能被設置'ORACLE_HOME' 環(huán)境變量。--->注意:注冊表中的ORACLE_HOME 鍵 跟 "系統(tǒng)屬性"-"高級"-"環(huán)境變量"中的ORACLE_HOME環(huán)境變量不是一回事。
本文強調(diào)的是:不能被設置'ORACLE_HOME' 環(huán)境變量,而不是把 注冊表中的ORACLE_HOME 鍵 給搞掉。
設置ORACLE_HOME 環(huán)境變量會導致軟件功能異常,當你在windows上調(diào)用oracle的可執(zhí)行程序(sqlplus.exe,exp.exe,tnsping.exe等等)時,Oracle 軟件會從環(huán)境變量(這里是指設置了ORACLE_HOME環(huán)境變量的情況)中得到ORACLE_HOME 的信息,該信息可能與從注冊表中得到的信息不匹配。
--->注意:也就是說,正常情況下(也就是說windows 不要設置ORACLE_HOME環(huán)境變量的情況下)windows下的oracle 可執(zhí)行程序,在運行時, 其實是從注冊表中 ORACLE_HOME的鍵值獲得的相關(guān)的變量信息(variable)
當你在windows上調(diào)用Oracle 可執(zhí)行程序時,比如sqlplus.exe, 這些可執(zhí)行程序用到的變量(variable)是由 PATH環(huán)境變量 和 這些可執(zhí)行程序的所在位置(即:該程序所在Oracle Home)所決定的。
--->請額外注意:根據(jù)我在windows上使用oracle的經(jīng)驗,windows 在cmd 下敲一個命令 和在unix下敲一個命令,windows 和 unix操作系統(tǒng)對你敲的這個命令的查找方法是不同的:
windows下,你在當前目錄(比如說c:\user\administrator這個目錄)下敲一個sqlplus命令,windows會搜索當前的目錄下有沒有sqlplus.exe這個命令,沒有的話,再去PATH環(huán)境變量中取查找有沒有sqlplus命令
而unix下,你在shell提示符下敲一個sqlplus命令,unix只會從PATH里查找。
windows 上rac的一點注意:
11gR2上有2個home,分別是GI Home和 db Home。在windows 上設置ORACLE_HOME 環(huán)境變量會導致 所有的clusterware日志(還有其他潛在問題)被寫入到Oracle Home中,這個會導致診斷clusterware問題的難度。
Oracle 確定 可執(zhí)行程序所在位置(location)的方法。
第一、對在ORACLE_HOME\bin 目錄下的可執(zhí)行程序:
在環(huán)境變量中設置"ORACLE_HOME=某具體路徑" 是不需要的。這是因為在運行的時候,Oracle 軟件 會確定可執(zhí)行文件的所在位置(比如說c:\...\oracle\bin ),然后會在該位置打開一個'pointer' file (指針文件),這個指針文件指定了在注冊表中的哪個位置去搜索Oracle 變量。注冊表中的ORACLE_HOME 鍵就是被Oracle軟件使用的變量值。因此,沒有必要為使用 ORACLE_HOME\bin 下的可執(zhí)行文件的任何進程(process)設置ORACLE_HOME= 環(huán)境變量。
第二、對于那些不存在于ORACLE_HOME\bin 下,但又需要加載oracle software的可執(zhí)行文件(比如說:一個web server process 或者 其他的第三方的software)
如果第三方軟件需要特定的Oracle DLL(動態(tài)鏈接庫),那么該第三方軟件會查找PATH環(huán)境變量值,直到找到該DLL,然后該DLL會穿透(or 透過)進程(上面描述的進程)以找到 pointer file,進而會找到ORACLE_HOME value.
啟動oracle 可執(zhí)行程序的不同方法:
1.從cmd提示符下啟動
當敲入可執(zhí)行程序的名字并且不帶全部路徑時,此時會首先得到PATH環(huán)境變量和 Oracle Home的可執(zhí)行程序。你可以使用set命令改變PATH環(huán)境變量, 或者 使用控制面板-系統(tǒng),改變環(huán)境變量,點擊應用,然后再打開一個新的cmd命令提示符。
--->額外注意:這個說法是不正確的,估計寫這一條的oracle工程師不了解windows下的可執(zhí)行程序的搜索順序---windows下,你在當前目錄(比如說c:\user\administrator這個目錄)下敲一個sqlplus命令,windows會搜索當前的目錄下有沒有sqlplus.exe這個命令,沒有的話,再去PATH環(huán)境變量中取查找有沒有sqlplus命令
2.從開始菜單
會調(diào)用在快捷方式中指向的全部路徑中的可執(zhí)行程序
3.開始--運行中調(diào)用(不是在開始-運行中,敲入cmd,然后再敲可執(zhí)行命令)
從PATH環(huán)境變量中讀取可執(zhí)行程序。
使用OUI來修改默認的Oracle Home 和 PATH環(huán)境變量
你可以使用OUI來指定一個Oracle Home為默認的Oracle Home,OUI會更新PATH環(huán)境變量信息以指向那個Oracle Home
從開始-程序-Oracle - OraDb10g_home1-Oracle Installation Products-Universal Installer調(diào)用出 OUI
再點擊"已安裝產(chǎn)品",然后再打開"環(huán)境"Tab頁,就能看到Oracle Home的環(huán)境變量信息。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com