隨著ArcGIS10.1的發布,更多的使用者也慢慢接受了使用ArcSDE直連,不僅僅是因為直連是一種趨勢(服務串連以後會被棄用),更重要的是直連的效能更加高效。
說明:任何人說他們的10.x環境需要服務串連都是一種借口,要麼是他們覺得目前環境還在使用,不希望亂折騰,怕出問題,要麼就是開發商懶得再給你們弄,目前我知道的唯一一個必須使用服務串連的就是ArcGIS9.x版本不能使用直連建立User Schema。所以建議特別是在ArcGIS10.x版本的使用者都是用直連。
提示:如果使用者使用直連建立9.3版本的User Schema會提示如下錯誤:"Install/Upgrade/Delete has to be performed by instance schema owner"
ArcGIS9.3.x協助:Be sure you specify the schema. If it is not specified and only a port number is provided, the SDE schema is used by default. Since the geodatabase in the SDE schema already exists, executing the sdesetup –o install command will upgrade the SDE geodatabase.
使用直連必須的要求就是需要資料庫用戶端,而且使用者使用Oracle資料庫比較多,所以今天就再說說Oracle資料庫環境的直連。
更多參考:
ArcGIS10.1內建的資料庫用戶端介紹:http://blog.csdn.net/linghe301/article/details/8081688
----------------------------------------------------------------------------------
著作權,文章允許轉載,但必須以連結方式註明源地址,否則追究法律責任!
Blog: http://blog.csdn.net/linghe301
----------------------------------------------------------------------------------
1:當使用Oracle10g用戶端
使用Oracle10g用戶端的使用者必須注意了,如果你ArcGIS Desktop的軟體安裝在64位作業系統,那麼因為案頭是32Bit的,所以預設安裝在C:\Program Files (x86)\ArcGIS\Desktop10.2的路徑下,那麼這個“( )”就可能出現大問題,使用者不管是使用PL/SQL還是使用Sqlplus都可以正常串連,但是在案頭進行同樣輸入參數的直連就會出現Ora-12154錯誤。就是因為這個括弧導致的。
問題的解決:
a:案頭安裝在不帶()的路徑下
b:使用者選擇Oracle11g或者更高版本的用戶端。
----------------------------------------------------------------------------------
著作權,文章允許轉載,但必須以連結方式註明源地址,否則追究法律責任!
Blog: http://blog.csdn.net/linghe301
----------------------------------------------------------------------------------
2:當使用Oracle11g用戶端
ArcGIS10.1版本中,案頭是32Bit的,Server是64Bit的,很多使用者這兩個軟體都安裝在一台伺服器上,那麼就出現需要同時安裝32Bit和64Bit的Oracle的用戶端的問題。
更多參考:ArcGIS10.1不得不說的故事:http://blog.csdn.net/linghe301/article/details/8139346
這樣無疑增加了很多負擔,所以Esri建議使用者使用Oracle的InstanceClient,其實如果是正版使用者,Esri也會附帶相關的安裝光碟片,裡面就是這個軟體。
http://www.oracle.com/technetwork/cn/database/features/instant-client/index-092699-zhs.html
使用者只需將32Bit和64Bit的軟體下載解壓縮到任何地方即可。
然後在環境變數中添加路徑即可
這樣使用者再也無需煩惱找不到不同位元的Oracle的Oci.dll,避免了一些莫名其妙的錯誤了。
----------------------------------------------------------------------------------
著作權,文章允許轉載,但必須以連結方式註明源地址,否則追究法律責任!
Blog: http://blog.csdn.net/linghe301
----------------------------------------------------------------------------------
如果使用這種方法,如果使用者下載的是最簡化的InstantClient,預設是不能配置Netservicename的,使用者可以使用Oracle的EZConnect寫法來代替網路服務名。
EZConnect需要使用者瞭解遠端資料庫伺服器的Ip地址和執行個體名即可。
書寫規範:伺服器IP:Oracle連接埠號碼/執行個體名,例如:192.168.1.1:1521/orcl,一般情況下預設Oracle的1521連接埠號碼都是公認的,如果沒有修改,可以不添加。
當然,使用這種寫法,在Oracle伺服器的E:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN的Sqlnet.ora檔案不能禁用EZCONNECT。
# sqlnet.ora Network Configuration File: E:\app\Administrator\product\11.2.0\dbhome_1\network\admin\sqlnet.ora# Generated by Oracle configuration tools.# This file is actually generated by netca. But if customers choose to # install "Software Only", this file wont exist and without the native # authentication, they will not be able to connect to the database on NT.SQLNET.AUTHENTICATION_SERVICES= (NTS)NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
----------------------------------------------------------------------------------
著作權,文章允許轉載,但必須以連結方式註明源地址,否則追究法律責任!
Blog: http://blog.csdn.net/linghe301
----------------------------------------------------------------------------------
其他說明:Oracle軟體的問題比較多。如果使用者怎麼弄都沒有辦法解決,不妨看看這些情況是否存在,一般都是Windows環境。
1:Oracle軟體卸載不徹底,導致註冊表資訊、環境變數資訊沒有徹底刪除。
2:安裝了多個版本的Oracle軟體,而且可能包含不同位元。
其實Oracle資料庫分為伺服器端和用戶端,如果安裝了伺服器端64Bit,在同一台機器訪問就無需安裝64Bit的用戶端。而且不同版本的用戶端串連伺服器端都是沒有問題的。
3:注意Oracle的執行個體名、服務名、資料庫名,一般情況下都是一樣的,不排除對安全要求比較高的使用者進行修改。那麼在配置一些資訊的時候 需要選擇正確的名稱。
4:預設的InstantClient不包含Sqlplus,使用者可以下載包含sqlplus的InstantClient版本
http://www.oracle.com/technetwork/cn/topics/winsoft-095945-zhs.html
----------------------------------------------------------------------------------
著作權,文章允許轉載,但必須以連結方式註明源地址,否則追究法律責任!
Blog: http://blog.csdn.net/linghe301
----------------------------------------------------------------------------------