安装就没必要介绍了,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';
复制代码
而后就一切正常
固然咱们建议不轻易改库名
这就是商业软件,足够强大不够灵活,封装和灵活总会互相博弈