由于最近项目需要,需要把地理数据库由Oracle更换为PostgreSQL数据库,特此把遇到的一些坑记录下来。

  因为ArcGIS版本采用的10.2版本,PostgreSQL版本只能采用三个版本PostgreSQL 9.0.5 (64-bit),PostgreSQL 9.1.3 (64-bit),PostgreSQL 9.2.2 (64-bit),PostGIS版本采用 1.5.1 或者2.0版本。如果是PostgreSQL更高版本会连不上ArcGIS。

        PostgreSQL 9.1.3 (64-bit)下载地址 链接:https://pan.baidu.com/s/1As18TCFwgpLytEGWpjpt2A   提取码:1ea7  。(安装步骤不在此赘述)

  安装好PostgreSQL数据库后打开pdAdmin,创建数据库,在模板中选择templat_postgis-20模板,这是因为在安装PostGIS的时候回把改模板自动创建,引用改模板,可以把PostGIS插件直接添加到我们创建的数据库之中。

              ArcGIS10.2导入数据到PostgreSQL-LMLPHP

  创建好数据库之后,完成连接数据库最重要的一步。

  将ArcGIS安装目录下(desktop10.2/databasesupport/postgresql/9.1/windows64)的st_geometry.dll拷贝至postgresql的安装目录(如:D:\Program Files\PostgreSQL\9.1\lib)下。(这一步是为了postgis支持st_geometry类型)

       将PostgreSQL\9.1\bin下的libeay32.dll、libiconv-2.dll、libintl-8.dll、libpq.dll、ssleay32.dll这几个dll拷贝至arcgis安装目录D:\Program Files (x86)\ArcGIS\Desktop10.2\bin下,但是这里有个坑,因为desktop是32位的,所以这里只能拷贝32位的dll,否则desktop一直无法连接postgresql,所以这里需要下载32位的这几个dll(或者下载32位的postgresql安装包,安装后,将dll拷贝出来,注意安装包版本要对应);

  将PostgreSQL\9.1\bin下的libeay32.dll、libiconv-2.dll、libintl-8.dll、libpq.dll、ssleay32.dll这几个dll拷贝至arcgis server安装目录D:\Program Files (x86)\ArcGIS\Server\bin下,注意这里了,因为server是64位,所以这里又需要拷贝64位的dll,否则数据库无法发布服务,无法注册数据库。

  打开ArcMap数据库连接,选择PostgreSQL数据库,登陆,这个时候数据库应该需要采用企业地理数据库。右键启用企业地理数据库或者在工具栏中选择地理数据库管理---创建企业地理数据库。 (如果端口号不是默认5432,输入localhost,端口号),要不然创建失败。

                  ArcGIS10.2导入数据到PostgreSQL-LMLPHP   ArcGIS10.2导入数据到PostgreSQL-LMLPHP

  启用企业版地理数据库之后可以创建要素数据集。导入数据  至此大功完成。

    ArcGIS10.2导入数据到PostgreSQL-LMLPHP

 

10-15 15:48