您好,登錄后才能下訂單哦!
本文介紹:
在 windows server 2008 r2(x64)環境下安裝oracle instantclient odbc方法
背景介紹:
因我搭建的服務器為64位系統,但所使用的應用為32位,所以需要安裝32位的oracle odbc。
按正常步驟:
1、oracle官網(http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html)下載以下32位包:(我選擇舊點的版本11.2.0.4.0)
instantclient-basic-nt-11.2.0.4.0.zip
instantclient-odbc-nt-11.2.0.4.0.zip
instantclient-sqlplus-nt-11.2.0.4.0.zip
2、將所有包解壓到d:\oracle目錄;
3、配置系統的環境變量:
path: 中添加d:\oracle\;
新建ORACLE_HOME: 值為d:\oracle\;
新建TNS_ADMIN: 值為d:\oracle\network\admin\;
有需要的話還得新建NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK 或者
AMERICAN_AMERICA.ZHS16GBK
4、開始-運行-cmd 進入d:\oracle目錄并執行./odbc_install.exe
可見到
如需卸載odbc,則同路徑下執行odbc_uninstall.exe;
5、因為是64位系統運行32位odbc,則需要使用C:\Windows\SysWOW64\odbcad32.exe
可以看到oracle的驅動了
6、問題來了:無法加載 Oracle in instantclient_11_2 ODBC 驅動程的安裝例程,因為存在系統錯誤代碼 14001
遇到如上問題,網上查了諸多資料都是說環境變量問題而已,均不能解決我的問題。
想了各種辦法,無果,甚至連操作系統都重裝了,也無效。(我這是一個干凈的系統,啥都沒裝。其實這是個線索,因為我啥都沒裝!!!!!!!!)
=========================================================================
故障分析
=========================================================================
我以為是ODBC版本問題,又從oracle官網上下載12.1.0.2.0等版本來測試
環境變量仍按標準的oracle odbc的設置方法,僅僅是用其他版本來替換文件并安裝odbc
報錯仍然出現,只是報錯代碼變了:
無法加載 Oracle in instantclient Driver 驅動程的安裝例程,因為存在系統錯誤代碼 126
我用Procmon.exe程序來跟蹤odbcad32的進程pid,發現程序沒發現2個DLL文件。
于是在D:\oracle目錄中添加mfc100.dll和msvcr100.dll文件(網上下載)。
再次odbcad32執行odbc添加,報錯依舊,只是錯誤代碼又變了:錯誤代碼 127
這下子我再用procmon來跟蹤進程已經無果了,沒有發現其他相關的依賴文件。
問題陷入了僵局。。。。。。
最后忍無可忍,那就用SxsTrace.exe吧, 這是個用來跟蹤程序的東東,步驟:
a、將oracle odbc還原到11.2.0.4.0版本并安裝odbc(參照上方的安裝步奏)
b、執行odbcad32程序,選擇oracle odbc 驅動,但先不點擊
c、打開cmd,運行 SxsTrace Trace -logfile:d:\SxsTrace.etl(將日志寫入d:\SxsTrace.etl)
d、點擊odbcad32--oracle odbc 驅動--完成
e、出現14001報錯
f、在cmd窗口下敲回車,結束跟蹤
g、SxsTrace Parse -logfile:d:\SxsTrace.etl -outfile:d:\SxsTrace.txt
h、打開生成的日志d:\SxsTrace.txt
掃了一眼都是些沒太大用途的日志,直到最后一句出現 “錯誤”字樣時引起我注意:
=========================================================================================
錯誤: 無法解析參考 Microsoft.VC80.MFC,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.762"。
錯誤: 生成激活上下文失敗。
=========================================================================================
看到這里大家有沒有什么想法呢?
我的第一想法就是:不是吧。。。。。VC8.。。。。Microsoft.VC80。。。。。這代表著什么?是VC沒錯吧?D:\ORACLE目錄里也有VC8、VC9目錄,不是么?
我這時就看到一絲曙光。。。。。我饒了一個大彎,原來是VC問題。。。。。。
那么怎么解決呢?
我想了下無非就是運行環境嘛,那我去裝個VC++的運行環境
屁顛屁顛地跑微軟官網去下一個32位的vcredist_x86
http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=5638
雙擊安裝vcredist_x86,完畢
滿懷期待地打開odbcad32,選擇oracle odbc driver項,然后.............
熟悉的界面終于出現了。。。。。。。真是喜大普奔啊~~~~~~~~~~~
希望我跟oracle odbc 曲折的斗爭史能給大家一點啟發和借鑒。
通過相關跟蹤工具的使用,排查和鎖定故障原因。最終能夠獨立解決這個問題,讓我挺欣慰。
windows server 2008 r2 x64系統安裝oracle instantclient odbc 32位程序,需要在系統中安裝vcredist_x86環境
64位的oracle odbc安裝也就沒有問題啦,區別是使用的是system32\odbcad32.exe程序來添加odbc即可。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。