1 前言
PostgreSQL是一个功能强大的开源数据库系统。经过长达15年以上的积极开发和不断改进,PostgreSQL已在可靠性、稳定性、数据一致性等获得了业内极高的声誉。目前PostgreSQL可以运行在所有主流操作系统上,包括Linux、Unix(AIX、BSD、HP-UX、SGI IRIX、Mac OS X、Solaris和Tru64)和Windows。PostgreSQL是完全的事务安全性数据库,完整地支持外键、联合、视图、触发器和存储过程(并支持多种语言开发存储过程)。它支持了大多数的SQL:2008标准的数据类型,包括整型、数值型、布尔型、字节型、字符型、日期型、时间间隔型和时间型,它也支持存储二进制的大对像,包括图片、声音和视频。PostgreSQL对很多高级开发语言有原生的编程接口,如C/C++、Java、.Net、Perl、Python、Ruby、Tcl 和ODBC以及其他语言等,也包含各种文档。
作为一种企业级数据库,PostgreSQL以它所具有的各种高级功能而自豪,像多版本并发控制(MVCC)、按时间点恢复(PITR)、表空间、异步复制、嵌套事务、在线热备、复杂查询的规划和优化以及为容错而进行的预写日志等。它支持国际字符集、多字节编码并支持使用当地语言进行排序、大小写处理和格式化等操作。它也在所能管理的大数据量和所允许的大用户量并发访问时间具有完全的高伸缩性。目前已有很多PostgreSQL的系统在实际生产环境下管理着超过4TB的数据。一些PostgreSQL系统的极限值如下表所列:
极限值:
最大单个数据库大小 | 不限 |
最大数据单表大小 | 32 TB |
单条记录最大 | 1.6 TB |
单字段最大允许 | 1 GB |
单表允许最大记录数 | 不限 |
单表最大字段数 | 250 - 1600 (取决于字段类型) |
单表最大索引数 | 不限 |
由于PostgreSQL的优异性能,它已赢得最终用户和业内的多次大奖,包括Linux新媒体(Linux New Media)的最佳数据库奖和5次Linux期刊编辑选出的最佳数据库奖。
2 安装篇
安装前提示:PostgreSQL和PostGIS的安装均为 Next → Next ... → Finish
安装前首先查询自己ArcGIS支持的PostgreSQL版本,譬如我的ArcGIS Desktop10.8支持9.6/10/11三个版本。
路径:\ArcGIS\Desktop10.8\DatabaseSupport\PostgreSQL
小提示① ArcGIS订阅用户请从My Esri下载相关软件更方便。
小提示② 官方教程:PostgreSQL 中地理数据库入门—ArcMap、从 ArcGIS 连接到 PostgreSQL—ArcGIS Pro
小提示③ 如果同时安装了ArcGIS和ArcGIS Pro,请阅读适用于 ArcGIS 10.8.x 以及 ArcGIS Pro 2.5、2.6 和 2.7 的 PostgreSQL 数据库要求—系统要求 和 PostgreSQL 的 ArcGIS 10.9 和 ArcGIS Pro 2.8 要求—ArcGIS Enterprise | ArcGIS Enterprise 文档,以选择适合的版本。
本次安装选择 PostgreSQL 11.7 + PostGIS 3.0.1 的组合,点我下载。
ArcGIS Desktop安装目录下受支持的PostgreSQL版本
2.1 安装PostgreSQL
PostgreSQL下载地址(官网),本文下载链接见文章开头。
PostgreSQL下载页
下一步
设置安装路径,下一部
勾选需要安装的部件,下一步
设置数据存放路径,下一步
设置数据库超级管理员密码,下一步
设置端口,默认5432(公网的话记得防火墙放行),下一步
设置地区,默认即可(印象中选Chinese安装环节就出问题,自己尝试),下一步
安装概览,确认一下,下一步
再次跟你啰嗦一下
安装ing...
安装过程中建议关闭杀毒软件,否则会这样:
全部允许即可
安装完成默认会继续安装Stack Builder,建议取消勾选,完成
如选择继续(强烈建议必要继续,跳到2.2节去接着安装PostGIS),但如果你好奇那就接着看:
Stack Builder就是一个可以用来安装一些附加软件的工具。
勾选已安装的数据库软件,下一步
正在获取软件,等待ing
你可以选择安装一些其他插件(润滑油)、甚至其他版本的PostgreSQL
你也可以选择接下来我们要单独安装的必要组件PostGIS
确认选择安装的包并选择下载路径,下一步
经过7分钟的漫长等待,我还是建议你强制结束!
开始安装
6分钟后
2.2 安装PostGIS
PostGIS下载地址(官网),本文下载链接见文章开头。
PostgreSQL与PostGIS版本兼容关系(截至2022年6月10日)
PostgreSQL version | PostGIS 1.3 EOL | PostGIS 1.4 EOL | PostGIS 1.5 EOL | PostGIS 2.0 EOL | PostGIS 2.1 EOL | PostGIS 2.2 EOL | PostGIS 2.3 EOL | PostGIS 2.4 EOL | PostGIS 2.5 | PostGIS 3.0 | PostGIS 3.1 | PostGIS 3.2 | PostGIS 3.3 |
PostGIS release date | 2007/08/09 | 2009/07/24 | 2010/02/04 | 2012/04/03 | 2013/08/17 | 2015/10/07 | 2016/09/26 | 2017/09/30 | 2018/09/23 | 2019/10/20 | 2020/12/18 | 2021/12/18 | 2022/XX/XX |
15 | No | No | No | No | No | No | No | No | No | No | No | Yes* | Yes |
14 | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes |
13 | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes |
12 | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes |
11 | No | No | No | No | No | No | No | Yes* | Yes | Yes | Yes | Yes | Yes |
10 | No | No | No | No | No | No | Yes (not recommended) | Yes | Yes | Yes | Yes | Yes | |
9.6 EOL | No | No | No | No | No | Yes (not recommended) | Yes | Yes | Yes | Yes | Yes | Yes | |
9.5 EOL | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | No | No | |
9.4 EOL | No | No | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | |
9.3 EOL | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | |
9.2 EOL | No | No | Yes (not recommended) | Yes | Yes | Yes | Yes | No | No | No | No | No | |
9.1 EOL | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | No | |
9.0 EOL | No | No | Yes | Yes (not recommended) | Yes (not recommended) | No | No | No | No | No | No | No | |
8.4 EOL | Yes | Yes | Yes | Yes (not recommended) | No | No | No | No | No | No | No | No | |
8.3 EOL | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | |
8.2 EOL | Yes | Yes | No | No | No | No | No | No | No | No | No | No | |
8.1 EOL | Yes | No | No | No | No | No | No | No | No | No | No | No | |
8.0 EOL | Yes (not windows) | No | No | No | No | No | No | No | No | No | No | No | |
7.2-7.4 EOL | Yes (not windows) | No | No | No | No | No | No | No | No | No | No | No |
PostgreSQL与PostGIS版本兼容关系(截至2022年6月10日)
你要是不同意也不让你继续
可以选择安装完成自动创建一个空样例空间数据库
没有自动识别到PostgreSQL安装目录,手动选择到PostgreSQL安装目录(到版本号),因为PostgreSQL是支持多版本共存的
输入用户名postgres、密码123,端口5432,密码和端口都是自己安装PostgreSQL时设置的
设置空样例空间数据库名称(可用字符:英文、下划线),然后安装
安装ing...
以下3个弹窗提醒,通通“是(Y)”,大概意思就是告诉你:PostgreSQL不仅仅支持矢量导入、还支持栅格导入。
先说你要注册GDAL_DATA环境变量
又告诉你栅格驱动默认不开启,你需要设置GDAL_ENABLED_DRIVES环境变量
最后说默认情况下数据库外的栅格是禁用的,你需要将ENABLE_OUTDB_RASTERS的环境变量设置成1
安装完成,Close
安装过程到此结束!
2.3 pgAdmin 4
可使用pgAdmin来管理你的所有数据库,包括刚刚创建的postgis_30_sample
开始菜单打开pgAdmin 4
让你设置一个pgAdmin的密码
输入PostgreSQL数据库超级管理员密码以登录
我们可在此执行维护、备份、恢复、删除等操作
2.4 ArcGIS连接
输入服务器地址、数据库用户名、密码以连接。
空样例数据库没有创建额外用户,使用超管身份登录
连接到样例数据库成功,可导入数据地理测试
3 配置篇
以下内容评论可见,因饱受原创文章抄袭烦恼,请谅解!评论后请刷新。
此处内容已隐藏,请评论后刷新页面查看.
4 创建篇
4.1 创建地理数据库
可以使用创建企业级地理数据库地理处理工具在 PostgreSQL 中创建数据库、sde 用户、sde 方案及地理数据库。
- 启动 ArcGIS Desktop 客户端或 ArcGIS Pro,然后打开创建企业级地理数据库工具。
- 需要以 postgres 超级用户身份连接 PostgreSQL 数据库集群来提供信息,以创建数据库和 sde 用户。 此外,还必须指向在授权 ArcGIS Server 站点时生成的密钥代码文件。可以使用创建企业级地理数据库工具帮助确定必须提供的信息。
- 单击确定 (ArcMap) 或运行 (ArcGIS Pro)。
在 PostgreSQL 中创建数据库、sde 用户、sde 方案及名为sdb的地理数据库。
创建企业级地理数据库
创建ing
成功创建
4.2 创建拥有数据的用户
存储在地理数据库中的数据应归 sde 用户之外的其他用户所有。 使用创建数据库用户地理处理工具在 PostgreSQL 数据库集群中创建用户并在新建数据库中创建方案。
但是要创建用户,必须先以数据库管理员的身份连接地理数据库。 此时,您可以 postgres 超级用户或 sde 用户身份进行连接,因为创建企业级地理数据库工具将授予 sde 用户超级用户权限。
创建以 postgres 或 sde 用户登录的数据库连接。
- 连接到数据库。 在 ArcMap 中,展开 ArcMap 目录树中的数据库连接节点,然后双击添加数据库连接。 在 ArcGIS Pro 中,右键单击目录窗格中的数据库文件夹,然后单击新建数据库连接。将打开数据库连接对话框。
- 提供以 PostgreSQL 超级用户连接新建数据库所需的信息。在本例中,以 postgres 用户连接新建的 sdb 地理数据库。
由于要在地理处理工具中使用此连接文件,因此必须选中保存用户名和密码。 但是运行此工具后,您应该在连接文件中取消选中此选项并以不同用户进行连接,或者删除此连接文件从而防止可以访问此文件的其他用户以数据库管理员登录地理数据库。 - 单击确定创建连接。
数据库连接下出现新建的连接文件。
接下来,您可以运行创建数据库用户工具。
- 打开创建数据库用户。
- 将新的连接文件拖至创建数据库用户工具的输入数据库工作空间文本框中。
- 在数据库用户文本框中输入新用户的名称,然后在数据库用户密码文本框中输入新用户的密码。在本例中,已经将在最后几步中创建的连接文件添加到工具中,并且提供了用户名 (xiaoming) 和密码。 由于尚未创建任何数据库角色,因此角色名称未指定。
- 单击确定 (ArcMap) 或运行 (ArcGIS Pro)。
创建数据库用户
在 PostgreSQL 中创建新用户和方案,而且为公共角色自动授予对方案的 USAGE 权限。
5 连接篇
5.1 ArcGIS Desktop
由于具有可以在新地理数据库中添加数据的用户,则可以该用户连接数据库。 最简单的方法是修改先前创建的连接文件。
打开现有数据库连接,并更改用户名和密码。
- 右键单击数据库连接,然后单击连接属性。
- 将用户名和密码值更改为新用户的值。
- 单击确定以新用户的身份进行连接。
ArcGIS Desktop以xiaoming身份修改或新建数据库连接
接下来,您可以使用此连接向地理数据库中添加数据。
5.2 ArcGIS Pro
使用数据库连接对话框或创建数据库连接工具来添加数据库连接。 以下步骤介绍了如何使用数据库连接对话框。
- 右键单击目录窗格中的数据库,然后单击新建数据库连接。
- 从数据库平台下拉列表中选择 PostgreSQL。
- 在数据源文本框中,输入安装 PostgreSQL 的服务器的数据库集群名称或 IP 地址。例如,如果 PostgreSQL 数据库集群名为 ficus,请在数据源文本框中输入 ficus。 如果指定 IPV6 地址,则要用括号将地址括起来。 例如,如果服务器的 IPV6 地址是 1111:aa1:0:1:f111:a222:33f3:b4bb,请在数据源文本框中输入 [1111:aa1:0:1:f111:a222:33f3:b4bb]。注:如果 PostgreSQL 数据库集群监听的不是默认端口 (5432),请将端口号包括在实例内。 例如,如果 PostgreSQL 安装在服务器 mamabear 上,且监听端口 49200,请在数据源文本框中键入 mamabear,49200。
- 在身份验证类型中选择数据库身份验证。
- 在用户名和密码文本框中分别输入有效的数据库用户名和密码。
- 如果不希望将登录信息保存为连接的一部分,请取消选中保存用户名和密码;这样做可帮助保持数据库的安全性。 但是,如果执行此操作,则系统会在每次连接时提示您提供用户名和密码。注:对于为 ArcGIS web 服务提供数据库访问权限的连接文件,或希望使用搜索 ArcGIS Pro 找到通过此连接文件访问的数据,都必须选中保存用户名和密码。
- 输入或选择想要连接到的 PostgreSQL 数据库集群中的数据库的名称。
- 单击确定进行连接。
ArcGIS Pro以xiaoming身份修改或新建数据库连接
5.2 ArcGIS Server
ArcGIS Server 包括 PostgreSQL 客户端文件;因此,您无需下载和复制 PostgreSQL 客户端文件即可进行连接。
从其他客户端进行连接时,请确保更改 PostgreSQL pg_hba.conf 文件并确保必要登录角色或组角色具有数据库的 CONNECT 权限。
如果希望发布到 ArcGIS Server 的服务使用 PostgreSQL 中数据库或地理数据库的数据,则请将数据库注册到您的 ArcGIS Server 站点。 有关说明,请参阅管理注册的数据存储。
接下来,您可往数据库里添加数据并邀请同事一起编辑。
ArcGIS Desktop导入数据并编辑
ArcGIS Pro导入数据并编辑