如何在Debian 10上安装PostGIS PostgreSQL地理信息系统

如何在Debian 10上安装PostGIS PostgreSQL地理信息系统

PostGIS是开放源代码软件,它允许“地理信息系统”对象访问PostgreSQL的对象关系数据库。 PostGIS专为使用轻量级几何结构而设计,可帮助服务器将更多数据从物理磁盘存储移至RAM。这是PostgreSQL扩展,用于使用几何和地理数据类型存储空间数据。它还用于确定面积,距离,长度,周长,并执行特殊查询以对数据建立索引。

在本教程中,您将学习如何在Debian 10上安装PostGIS。

前提条件

  • 运行Debian 10的服务器。
  • 服务器设置了root密码。

引言

我们建议您在开始之前将系统的软件包更新为最新版本。您可以使用以下命令进行更新。

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

然后使用以下命令创建用户和数据库:

[email protected]:~$ createuser postgisuser[email protected]:~$ createdb postgis_db -O postgisuser

接下来,连接到您创建的数据库。

[email protected]:~$ 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[email protected]:~$ exit

PostgreSQL对PostGIS的优化

PostgreSQL旨在从小型数据库运行到大型数据库。与文本数据相比,PostGIS数据库对象很大。因此,需要优化PostgreSQL以更好地处理PostGIS对象。

您可以编辑文件以优化PostgreSQL服务器 /etc/postgresql/11/main/postgresql.conf

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

结论

恭喜你! PostGIS已成功安装在PostgreSQL服务器上。现在已为空间查询配置了数据库。有关更多详细信息,请参见PostGIS文档。 邮政地理信息系统

Source

Sidebar