ArcGIS 10 1 如何連線資料庫

2022-02-06 05:30:46 字數 3332 閱讀 3363

1,    arcgis 10.1 統一了資料庫連線,也就是不區分是空間資料庫連線還是通過oledb方式的關係型資料庫連線

左圖為10.1下的截圖,右圖為10.0下的截圖

2,在catalog中只能採用直連方式;

3,arcgis 10.1版本中,esri提供的安裝介質不在包含postgresql(以前的是包含的);

4,安裝postgresql,官方給的軟體要求是64位數,而且所有的企業級資料庫都是64位(這應該和server有關係吧,因為server 10.1是純64位,在桌面軟體的databasesupport目錄中給出的幾個dll都是64位,這幾個dll 後面會用到,官方給的軟體需求如下:

database

supported operating systems

minimum os version

maximum os version

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)

sp1windows server 2003 standard, enterprise, and datacenter (64-bit [em64t])

sp2sp2

windows server 2008 r2 standard, enterprise, and datacenter (64-bit [em64t])

sp15,    配置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的介面,裝了之後什麼反應都沒有,我去安裝目錄下看了看,發現這個安裝其實就是解壓了一些東西,而我的空間資料庫還沒有建立呢?再後來發現連線資料庫的時候,沒有服務這個選項,當初我就覺得這個安裝跟我連線資料庫沒有關係,於是解除安裝了,根據:

仔細看了一遍,發現這個過程的確不安裝sde是可以的,跟售後的同事確認了下,得出的結論:如果是使用直連方式,arcgis 10.1 是不用安裝sde的任何元件。新的問題來了,我們知道在以前的版本中sde還有一種方式就是服務連線,那如何使用服務連線呢?

如果細心的話,我們可以發現在安裝sde的時候,有兩個元件讓我們安裝:

根據元件右邊的描述,我們知道這個安裝就是針對服務連線的,也就是說如果要使用服務方式連線,就需要安裝sde,如何建立服務,如何使用服務連線(我們明顯看到連線中根本就沒有服務這個選項)就是我們下來要討論的問題。

服務連線的額外步驟

安裝arcsde for postgresql 10.1;

修改arcsde安裝目錄中services.sde檔案和windows中的hosts檔案,分別增加「esri_sde 5151/tcp」記錄;

建立arcsde服務。分別鍵入以下兩個命令以完成在登錄檔中建立服務的工作:

sdeservice -o create -d postgresql,postgresql-x64-9.0

sdeservice -o register -d postgresql,postgresql-x64-9.0 -r admin_database -v sde

啟動服務。可以用「sdemon –o start」命令或從windows服務面板中啟動arcsde服務;

建立連線。在catalog中只能建立直連服,因此需要使用新的

create arcsde connection file

gp工具來建立arcsde服務連線檔案。建立成功後,在catalog中找到這個連線雙擊就可以開啟。

通過這個工具,如果我們的資料庫是arcgis 10 或者之前的,並且採用服務的方式,那麼在使用10.1的時候,應該用這個工具吧(沒有測試,根據向下相容,我自己猜想)

arcgis10 1如何註冊sde

步驟 1 首先安裝x64的oracle client 2 其次用x64 client建立服務jdgt 3 在gis服務上右鍵server prop data store registered database 點選 號 import 選擇jdgt.sde 命名後儲存。4 重新發布jdkczy服務 5...

ArcGiS 10 1 時態資料

需要用arcgis做乙個動態顯示專題圖,發現10.1中有時態資料的功能,於是先試著用用,看看效果。工作步驟 1.準備資料 2.資料處理 3.設定時態資料引數 1.資料準備,準備了三個point圖層,分別是不同時間段的油粒子的分布位置 2.資料處理 需要把三個圖層的資料整合到乙個圖層中,採用arcgi...

ArcGIS10 1的安裝問題

注 必須用3個帶0的資料夾裡面的東西安裝 1.先裝pre release license manager 然後停掉。2.然後安裝0desktop arcgis desktop,3.開啟0keygen,手動改為10.1,選arcinfo,拷貝service檔案到bin下面,4.然後開啟license ...