ArcGIS 10.1 如何鏈接數據庫(轉載)

ArcGIS 10.1如何鏈接數據庫

最近在使用ArcGIS 10.1的數據庫,在使用的過程當中發現了跟以往不太同樣的地方,在這裏將本身的心得和想法跟你們分享一下(使用Postgresql),根據使用過程,我將內容分爲兩個部分(這兩個部分,是我在使用完分出來的,並從新整理,其中穿插我本身的想法,歡迎你們跟咱們一塊兒交流。),10.1已經不須要安裝arcgis sde了,能夠經過工具直接在Oracle上創建空間數據庫,而且直接連接。html

如何使用直連方式鏈接數據庫

1,    ArcGIS 10.1 統一了數據庫鏈接,也就是不區分是空間數據庫鏈接仍是經過OLEDB方式的關係型數據庫鏈接web

                                                                                                                           

                        左圖爲10.1下的截圖,右圖爲10.0下的截圖sql

2,        在Catalog中只能採用直連方式;數據庫

 

3,        ArcGIS 10.1版本中,Esri提供的安裝介質不在包含Postgresql(之前的是包含的);網絡

4,        安裝Postgresql,官方給的軟件要求是64位數,並且全部的企業級數據庫都是64位(這應該和Server有關係吧,由於Server 10.1是純64位,在桌面軟件的DatabaseSupport目錄中給出的幾個dll都是64位,這幾個dll 後面會用到,官方給的軟件需求以下:tcp

Database工具

Supported Operating Systemspost

Minimum OS Version測試

Maximum OS Versionspa

PostgreSQL 9.0.5 (64-bit)

Red Hat Enterprise Linux Server 5 (64-bit)

Update 7

Red Hat Enterprise Linux Server 6 (64-bit)

SUSE Linux Enterprise Server 11 (64-bit)

SP1

Windows Server 2003 Standard, Enterprise, and Datacenter (64-bit [EM64T])

SP2

SP2

Windows Server 2008 R2 Standard, Enterprise, and Datacenter (64-bit [EM64T])

SP1

5,    配置PostgreSQL的客戶端。由於直連方式要求ArcSDE的客戶端必須安裝數據庫的客戶端類庫,因此首先須要獲取PostgreSQL的客戶端。ArcGIS Desktop是32位軟件,須要的是32位的PostgreSQL類庫。找到PostgreSQL的客戶端,或者在別的機器上將32位的 libeay32.dll, libiconv-2.dll, libintl-8.dll, libpq.dll, and ssleay32.dll文件拷貝到Desktop 安裝目錄的bin目錄下;

6,         拷貝 st_geometry.dll,將Desktop 安裝目錄下的DatabaseSupport/PostgreSQL/Windows64(看到64了吧)目錄下,拷貝st_geometry.dll文件到PostgreSQL的lib目錄。在PostgreSQL中建立Geodatabase時必須用到此類庫;

7,        配置pg_hba.conf,修改PostgreSQ 的pg_hba.conf文件,添加「host     all          all      0.0.0.0/0       md5」(關於該文件的配置,能夠參閱相關資料);

8,        在安裝完SDE後,發現沒有以往的post界面,在10.1中,對於建立企業級Geodatabase都採用工具箱中提供的工具,換句話說,之前的post被Toolbox中的一堆工具替代;

9,        建立地理數據庫

10.1在建立地理數據庫的時候,提供了三個,Oracle,SQL Server和Postgresql,咱們用這個工具建立地理數據庫,這個過程至關於早起的POST過程,建立數據庫並寫入一堆系統表等,建立界面以下圖:

 

建立成功後就能夠在pgAdmin中看到sde這個數據庫,而且看到不少系統表,以下圖:

 

10,     鏈接地理數據(直連);

在上面說了ArcGIS 10.1對數據庫鏈接作了統一,那如何判斷是關係型數據庫仍是空間數據庫呢?其實這點並不難,由於在建立空間數據庫的時候,咱們同時建立了用戶名和密碼,那麼用這個用戶名鏈接,並選擇建立的這個數據庫,那麼這個數據庫就是空間數據庫,鏈接界面以下圖:

 

鏈接成功後,我在數據庫裏建立了要素數據集添加了幾個數據,作了一個拓撲分析(作這個的目的不是爲了作拓撲,而是爲了驗證可否作拓撲分析,因此拓撲分析的結果咱們不作討論),結果以下:

 

同理,作了一個幾何網絡,效果以下:

 

 

如今咱們想一個問題,上面咱們使用的是直連的方式訪問數據庫,你們以爲是否缺乏什麼呢?咱們會想之前如何使用數據庫的,首先裝了關係型數據庫(Postgresql),這一步咱們有了,而後就是安裝ArcGIS SDE for postgresql,這一步咱們沒有,而後就是建立數據庫,鏈接數據庫。從整個過程來看,咱們沒有安裝SDE,那爲何也能夠建立空間數據庫呢?

這也是我本身發現的一個,在開始的時候,個人確是安裝了SDE,可是我發現這個安裝不想ArcGIS 10 或者以前的彈出一個post的界面,裝了以後什麼反應都沒有,我去安裝目錄下看了看,發現這個安裝其實就是解壓了一些東西,而個人空間數據庫尚未創建呢?再後來發現鏈接數據庫的時候,沒有服務這個選項,當初我就以爲這個安裝跟我鏈接數據庫沒有關係,因而卸載了,根據:http://resources.arcgis.com/en/help/main/10.1/index.html#/Setting_up_a_geodatabase_in_PostgreSQL/002p00000001000000/仔細看了一遍,發現這個過程的確不安裝SDE是能夠的,跟售後的同事確認了下,得出的結論:若是是使用直連方式,ArcGIS 10.1 是不用安裝SDE的任何組件。新的問題來了,咱們知道在之前的版本中SDE還有一種方式就是服務鏈接,那如何使用服務鏈接呢?

若是細心的話,咱們能夠發如今安裝SDE的時候,有兩個組件讓咱們安裝:

 

根據組件右邊的描述,咱們知道這個安裝就是針對服務鏈接的,也就是說若是要使用服務方式鏈接,就須要安裝SDE,如何建立服務,如何使用服務鏈接(咱們明顯看到鏈接中根本就沒有服務這個選項)就是咱們下來要討論的問題。

如何使用服務的方式鏈接數據庫

服務鏈接的額外步驟

  1. 安裝ArcSDE for PostgreSQL 10.1;
  2. 修改ArcSDE安裝目錄中services.sde文件和Windows中的hosts文件,分別增長「esri_sde 5151/tcp」記錄;
  3. 建立ArcSDE服務。分別鍵入如下兩個命令以完成在註冊表中建立服務的工做:
    sdeservice -o create -d POSTGRESQL,postgresql-x64-9.0
    sdeservice -o register -d POSTGRESQL,postgresql-x64-9.0 -r ADMIN_DATABASE -v sde
  4. 啓動服務。能夠用「sdemon –o start」命令或從Windows服務面板中啓動ArcSDE服務;

  1. 建立鏈接。在catalog中只能建立直連服,所以須要使用新的Create ArcSDE Connection File GP工具來建立ArcSDE服務鏈接文件。建立成功後,在catalog中找到這個鏈接雙擊就能夠打開。

經過這個工具,若是咱們的數據庫是ArcGIS 10 或者以前的,而且採用服務的方式,那麼在使用10.1的時候,應該用這個工具吧(沒有測試,根據向下兼容,我本身猜測)

相關文章
相關標籤/搜索