安裝就沒必要介紹了,windows下使用安裝工具Application Stack Builder
,選擇空間擴展PostGIS便可自動安裝sql
而後新建庫後,在庫中執行如下語句建立控件擴展數據庫
CREATE EXTENSION postgis
複製代碼
也能夠建立數據庫時選擇postgis的模板庫建立windows
create database postgisdb template postgis_template;
複製代碼
新建數據庫後添加postgis擴展後會發現庫內public模式下函數序列觸發器等都會增長一些postgis相關功能
而後就能夠經過PostGIS Shapefile and DBF Loader
工具導入shp數據bash
postgersql的備份恢復主要有函數
這裏咱們使用簡單,容易掌握的pg_dump
命令,通常在安裝目錄bin下
pg_dump備份單庫,不導出角色和表空間相關信息工具
pg_dump -h localhost -U postgres postgisdb > D:\backup\postgisdb.bak
複製代碼
有一些參數選項能夠參考(不少,具體不列了,執行help能夠查看到)post
pg_dump --help
複製代碼
恢復可使用psql
ui
psql -h localhost -U postgres -d postgisdb2 < D:\backup\postgisdb.bak
複製代碼
恢復時能夠指定不一樣的數據庫,若是pg_dump時-C建立數據庫,那也能夠不用先新建數據庫spa
postgis庫的恢復備份仍是挺簡單的,全部的東西都在public下版本控制
ArcGIS要鏈接到postgresql,須要將postgresql安裝目錄lib下的libeay32.dll、libiconv-2.dll、libintl-8.dll、libpq.dll 和 ssleay32.dll
拷貝到ArcGIS Desktop的安裝目錄bin下
將ArcGIS Desktop目錄DatabaseSupport\PostgreSQL下的st_geometry.dll
拷貝到postgresql的lib下
使用ArcGIS工具箱中Create Enterprise Geodatabase
工具建立SDE,完過後會在建立一個sde登錄角色
並在庫中建立一個sde模式
,包含諸多函數序列管理表等。(注意:ArcGIS雖然能夠在系統庫postgres中建立SDE擴展,然並連不上,ArcGIS不容許鏈接訪問系統數據庫)
而後ArcGIS能夠鏈接該數據庫,而且進行空間數據管理操做。(注意:默認ArcGIS建立空間數據,只能建立在和登錄用戶同名的模式下)
咱們能夠向上面PostGIS備份恢復同樣,直接備份整個庫
若是恢復至同名數據庫,像上面恢復是沒有問題的
但若是數據庫更名了,則會有驚喜發生,ArcGIS管理空間報底層gdb_release之類的錯誤
,一樣的問題不止恢復庫時,修改數據庫名稱也不像其餘庫那麼爲所欲爲,以含SDE擴展的庫爲模板建立新庫也會有問題
ArcGIS SDE未見文檔介紹內部結構邏輯,只能猜想大概,或不許確,願聞其詳
ArcSDE空間數據建立時會在SDE管理表裏註冊相關信息
,好比空間參考,列啊,表的惟一標識等,便於它作數據管理、版本控制
修改庫名後,ArcSDE管理就出問題,主要是一些註冊項,安裝SDE時也會把該庫的信息註冊到SDE管理表
中去,因此新庫名,它就不認識了
若是修改了庫名,咱們找到如下表
select * from sde.gdb_items
you need modify : name physicalname path etc...
update sde.sde_table_registry set database_name='testdb';
update sde.sde_column_registry set database_name='testdb';
update sde.sde_geometry_columns set f_table_catalog='testdb';
update sde.sde_raster_columns set database_name='testdb';
update sde.sde_layers set database_name='testdb';
複製代碼
而後就一切正常
固然咱們建議不輕易改庫名
這就是商業軟件,足夠強大不夠靈活,封裝和靈活總會互相博弈