vba oracle 01019,Oracle 客户端连接时报ORA-01019错误总结
在.net+oracle開(kāi)發(fā)中,發(fā)布web程序的時(shí)候,有是會(huì)遇到該錯(cuò)誤 ora-01019
ORA-01019 unable to allocate memory in the user side
Cause: The user side memory allocator returned an error.
Action: Increase the size of the process heap or switch to the old set of calls.
或者 錯(cuò)誤,不能從進(jìn)程獲得上下文.
此錯(cuò)誤是由于oracle或者microsoft的bug引起.(其實(shí)是,iis的訪問(wèn)權(quán)限的控制太高).
解決方法:
一:為ORACLE_HOME目錄,添加network services 用戶組的訪問(wèn)權(quán)限,并將權(quán)限繼承到子目錄.重啟機(jī)器.
二:提高虛擬路徑對(duì)應(yīng)的應(yīng)用程序池,執(zhí)行用戶的權(quán)限.(該方法本人認(rèn)為對(duì)帶來(lái)不安全因素)
令,本錯(cuò)誤有時(shí)候提示是,需要安裝oracle7.13版本客戶端以上.解決方法同上.
問(wèn)題二
在Win8企業(yè)版64位環(huán)境下,連接Oracle11g 服務(wù)端,搞了整整兩天,特將過(guò)程分享出來(lái),供有需要的同學(xué)參考。
本機(jī)環(huán)境:
1、服務(wù)端:Oracle 11g R2 64位,安裝路徑E:/Org12
官方下載:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
2、客戶端:
(1)Instant Client ,輕量級(jí),安裝路徑E:/Oracle11/client
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
(2)32-bit Oracle Data Access Components (ODAC) with Oracle Developer Tools for Visual Studio,安裝路徑E:/Org12/Product/11.2.0/client_1
http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html?ssSourceSiteId=otncn
用客戶端三種工具去連Oracle服務(wù)端,結(jié)果:
第一種:Oracle自帶的SQL Deveploer工具,基本沒(méi)問(wèn)題!也不需要什么客戶端配置。
http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
第二種,用PL/SQL 9.0去連,需要copy服務(wù)端的XXapporacleproduct11.2.0servernetworkADMINtnsnames.ORA文件到客戶端(1)的networkADMIN下,并刪除不需要的部分,保留內(nèi)容大致如下:
代碼如下
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SID =ORCL)
)
)
并用如下方式啟動(dòng)PL/SQL
代碼如下
set Path=E:/Oracle11/client
rem 服務(wù)端路徑: E:Org12product11.2.0dbhome_1BIN
set ORACLE_HOME=E:/Oracle11/client
set TNS_ADMIN=E:/Oracle11/client
set NLS_LANG=AMERICAN_AMERICA.AL32UTF8
start E:/Oracle11/PL_SQL/plsqldev.exe此時(shí)OK。
這個(gè)問(wèn)題網(wǎng)上查找很久,嘗試的解決方法很多,但最終我的方案是:
1、刪除Oracle服務(wù)端;方法可以在網(wǎng)上搜,要?jiǎng)h干凈;
2、刪除ODAC及所有組件;
3、保留Instant Client及其安裝目錄,主要是networkADMINtnsnames.ORA
4、重新安裝Oracle服務(wù)端;
此時(shí)接所有客戶端連接完全正常!
小結(jié):
1、剛開(kāi)始懷疑是64位Oracle驅(qū)動(dòng)路徑(x86)引起的bug,最后得出的結(jié)論是同一臺(tái)機(jī)器,最好不要裝兩個(gè)Oracle客戶端 ,服務(wù)端+客戶端也不推薦,會(huì)引起一些潛在的問(wèn)題,原因不明。
2、64位的Oracle服務(wù)端+32位的Oracle客戶端,會(huì)有一些潛在的問(wèn)題,最好32位對(duì)32位。
3、安裝Oracle 11g R2 EX時(shí),會(huì)在環(huán)境變量Path前面加上“e:Org12apporacleproduct11.2.0serverbin;;”,注意是兩個(gè)分號(hào),須刪除一個(gè);這個(gè)不知道是安裝程序的BUG?
問(wèn)題三
今天開(kāi)發(fā)的同事碰到了這個(gè)ORA-1019錯(cuò)誤。
詳細(xì)的錯(cuò)誤信息為:
Microsoft OLE DB Provider for ODBC Drivers錯(cuò)誤'80004005'
[Microsoft][ODBC driver for Oracle][Oracle]Error while trying to retrieve text for error ORA-01019
/includes/data_func.asp,行12
而Oracle文檔上對(duì)這個(gè)錯(cuò)誤的描述為:
ORA-01019: unable to allocate memory in the user
Cause: The user side memory allocator returned error.
Action: Increase the processes heap size or switch to the old set of calls.
從錯(cuò)誤描述上看,似乎是內(nèi)存分配的問(wèn)題,但是客戶端服務(wù)器上的內(nèi)存有2G,而且并沒(méi)有啟動(dòng)什么程序,顯然不是簡(jiǎn)單的內(nèi)存不足的問(wèn)題。
不過(guò)問(wèn)題多半是出在客戶端程序上,檢查了一下metalink,發(fā)現(xiàn)文檔ID 91906.1中提到的問(wèn)題可能和當(dāng)前類似。導(dǎo)致這個(gè)問(wèn)題的原因似乎是ODBC沒(méi)有使用Oracle提供的驅(qū)動(dòng)程序,而是使用了ORACLE_HOME之外系統(tǒng)提供的驅(qū)動(dòng)。
又通過(guò)GOOGLE搜索了一下,找到了一篇文章,其中包含下面的描述:
You must set the following environment variables:
ORACLE_HOME
Specifies the top-level directory in which Oracle is installed.
TNS_ADMIN
Specifies the location of configuration files, for example, $ORACLE_HOME/network/admin. After installation Oracle creates the configuration files under /var/opt/oracle. If listener.ora and tnsnames.ora are in this directory, you might not need to set TNS_ADMIN, because by default Oracle uses /var/opt/oracle.
If you do not set these environment variables properly, Oracle returns the ORA-1019 error code the first time you attempt to connect. For information on error handling,
看來(lái)問(wèn)題很可能是由于沒(méi)有正確設(shè)置ORACLE_HOME環(huán)境變量造成的,
解決辦法
在WINDOWS中設(shè)置系統(tǒng)環(huán)境變量,重啟系統(tǒng)后,問(wèn)題消失。
總結(jié)
以上是生活随笔為你收集整理的vba oracle 01019,Oracle 客户端连接时报ORA-01019错误总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ins40401 oracle,安装or
- 下一篇: linux命令大写输入,在Linux命令