如何在 Debian 10 上安装 PostGIS PostgreSQL 地理信息系统
在此页
- 先决条件
- 开始
- 安装 PostgreSQL
- 安装 PostGIS
- 在 PostgreSQL 上激活 PostGIS
- 为 PostGIS 优化 PostgreSQL
- 结论
PostGIS 是一种开源软件,它允许将“地理信息系统”对象添加到 PostgreSQL 对象关系数据库中。 PostGIS 专门设计用于使用轻量级几何图形,帮助服务器增加从物理磁盘存储迁移到 RAM 的数据量。它是 PostgreSQL 的扩展,用于使用几何和地理数据类型存储空间数据。它还用于执行一些特殊查询以确定面积、距离、长度、周长并为您的数据创建索引。
在本教程中,我们将学习如何在 Debian 10 上安装 PostGIS。
先决条件
- 运行 Debian 10 的服务器。
- 在您的服务器上设置了根密码。
入门
在开始之前,最好将系统包更新到最新版本。您可以使用以下命令更新它们:
apt-get update -y
apt-get upgrade -y
更新所有软件包后,重新启动系统以应用更改。
安装 PostgreSQL
在开始之前,您需要将 PostgreSQL 存储库添加到您的系统中。
首先,使用以下命令下载并添加 GPG 密钥:
apt-get install gnupg2 -y
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
接下来,使用以下命令添加 PostgreSQL 存储库:
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list
接下来,更新存储库并使用以下命令安装 PostgreSQL 服务器:
apt-get update -y
apt-get install postgresql-11 -y
安装完成后,您可以使用以下命令检查 PostgreSQL 服务器的状态:
systemctl status postgresql
您应该得到以下输出:
? postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Sun 2020-04-12 04:58:43 UTC; 15s ago
Main PID: 2665 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 2359)
Memory: 0B
CGroup: /system.slice/postgresql.service
Apr 12 04:58:43 debian10 systemd[1]: Starting PostgreSQL RDBMS...
Apr 12 04:58:43 debian10 systemd[1]: Started PostgreSQL RDBMS.
安装 PostGIS
此时,PostgreSQL 服务器已安装并运行。现在,是时候安装 PostGIS 了。
您只需运行以下命令即可安装它:
apt-get install postgis postgresql-11-postgis-2.5 -y
安装后,您可以继续下一步。
在 PostgreSQL 上激活 PostGIS
接下来,您需要创建 PostgreSQL 数据库和用户,并在数据库上激活 PostGIS 功能,然后才能存储空间数据。
首先,使用以下命令登录 PostgreSQL:
su - postgres
接下来,使用以下命令创建用户和数据库:
:~$ createdb postgis_db -O postgisuser
接下来,连接到您刚刚创建的数据库:
:~$ psql -d postgis_db
您应该得到以下输出:
psql (12.2 (Debian 12.2-2.pgdg100+1), server 11.7 (Debian 11.7-0+deb10u1))
Type "help" for help.
接下来,在数据库上启用 PostGIS 扩展:
postgis_db=# CREATE EXTENSION postgis;
接下来,验证 PostGIS 是否正常工作:
postgis_db=# SELECT PostGIS_version();
您应该得到以下输出:
postgis_version
---------------------------------------
2.5 USE_GEOS=1 USE_PROJ=1 USE_STATS=1
(1 row)
最后,使用以下命令退出 PostgreSQL shell:
postgis_db=# \q
:~$ exit
为 PostGIS 优化 PostgreSQL
PostgreSQL 旨在从小型数据库运行到大型数据库。与文本数据相比,PostGIS 数据库对象很大。因此,您需要优化 PostgreSQL 以更好地处理 PostGIS 对象。
您可以通过编辑文件 /etc/postgresql/11/main/postgresql.conf 来优化 PostgreSQL 服务器:
nano /etc/postgresql/11/main/postgresql.conf
根据您的系统 RAM 更改以下参数:
#This value should be around 75% of your server’s RAM.
shared_buffers = 1500M
#This allows PostgreSQL to cache more data in memory while it performs its sorting
work_mem = 64MB
#A checkpoint is a periodic action that stores information about your system
checkpoint_segments = 6
#This setting essentially is the amount of time that your optimizer should spend reading memory before reaching out to your disk.
random_page_cost = 2.0
完成后保存并关闭文件。然后,重新启动 PostgreSQL 服务以实施更改。
systemctl restart postgresql
结论
恭喜!您已经在 PostgreSQL 服务器上成功安装了 PostGIS。您现在已经为空间查询配置了数据库。有关详细信息,请访问 PostGIS 上的 PostGIS 文档。