Cách cài đặt PostGIS PostgreSQL Geographic Information Systems trên Debian 10

theanh

Administrator
Nhân viên
PostGIS là phần mềm nguồn mở cho phép các đối tượng "Hệ thống thông tin địa lý" vào cơ sở dữ liệu quan hệ đối tượng PostgreSQL. PostGIS được thiết kế đặc biệt để sử dụng hình học nhẹ giúp máy chủ tăng lượng dữ liệu di chuyển từ bộ lưu trữ đĩa vật lý lên RAM. Đây là phần mở rộng của PostgreSQL được sử dụng để lưu trữ dữ liệu không gian bằng cách sử dụng các kiểu dữ liệu hình học và địa lý. Nó cũng được sử dụng để thực hiện một số truy vấn đặc biệt để xác định diện tích, khoảng cách, chiều dài, chu vi và tạo chỉ mục trên dữ liệu của bạn.

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt PostGIS trên Debian 10.

Điều kiện tiên quyết​

  • Một máy chủ chạy Debian 10.
  • Mật khẩu gốc được thiết lập trên máy chủ của bạn.

Bắt đầu​

Trước khi bắt đầu, bạn nên cập nhật gói hệ thống của mình lên phiên bản mới nhất. Bạn có thể cập nhật chúng bằng lệnh sau:
Mã:
apt-get update -y
 apt-get upgrade -y
Sau khi tất cả các gói được cập nhật, hãy khởi động lại hệ thống của bạn để áp dụng các thay đổi.

Cài đặt PostgreSQL​

Trước khi bắt đầu, bạn sẽ cần thêm kho lưu trữ PostgreSQL vào hệ thống của mình.

Trước tiên, hãy tải xuống và thêm khóa GPG bằng lệnh sau:
Mã:
apt-get install gnupg2 -y
 wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
Tiếp theo, hãy thêm kho lưu trữ PostgreSQL bằng lệnh sau:
Mã:
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list
Tiếp theo, hãy cập nhật kho lưu trữ và cài đặt máy chủ PostgreSQL bằng lệnh sau:
Mã:
apt-get update -y
 apt-get install postgresql-11 -y
Sau khi quá trình cài đặt hoàn tất, bạn có thể kiểm tra trạng thái của máy chủ PostgreSQL bằng lệnh sau:
Mã:
systemctl status postgresql
Bạn sẽ nhận được kết quả đầu ra sau:
Mã:
? postgresql.service - PostgreSQL RDBMS Đã tải: đã tải (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Đang hoạt động: đang hoạt động (đã thoát) kể từ CN 2020-04-12 04:58:43 UTC; 15 giây trước PID chính: 2665 (code=exited, status=0/SUCCESS) Nhiệm vụ: 0 (limit: 2359) Bộ nhớ: 0B CGroup: /system.slice/postgresql.service12/04 04:58:43 debian10 systemd[1]: Đang khởi động PostgreSQL RDBMS...12/04 04:58:43 debian10 systemd[1]: Đã khởi động PostgreSQL RDBMS.

Cài đặt PostGIS​

Lúc này, máy chủ PostgreSQL đã được cài đặt và đang chạy. Bây giờ, đã đến lúc cài đặt PostGIS.

Bạn có thể cài đặt bằng cách chỉ cần chạy lệnh sau:
Mã:
apt-get install postgis postgresql-11-postgis-2.5 -y
Sau khi cài đặt, bạn có thể tiến hành bước tiếp theo.

Kích hoạt PostGIS trên PostgreSQL​

Tiếp theo, bạn sẽ cần tạo cơ sở dữ liệu và người dùng PostgreSQL, đồng thời kích hoạt các tính năng PostGIS trên cơ sở dữ liệu trước khi có thể lưu trữ dữ liệu không gian.

Đầu tiên, hãy đăng nhập vào PostgreSQL bằng lệnh sau:
Mã:
su - postgres
Tiếp theo, hãy tạo người dùng và cơ sở dữ liệu bằng lệnh sau:
Mã:
postgres@debian10:~$ createuser postgisuser
 postgres@debian10:~$ createdb postgis_db -O postgisuser
Tiếp theo, kết nối đến cơ sở dữ liệu bạn vừa tạo:
Mã:
postgres@debian10:~$ psql -d postgis_db
Bạn sẽ nhận được kết quả sau:
Mã:
psql (12.2 (Debian 12.2-2.pgdg100+1), server 11.7 (Debian 11.7-0+deb10u1))Nhập "help" để được trợ giúp.
Tiếp theo, bật tiện ích mở rộng PostGIS trên cơ sở dữ liệu:
Mã:
postgis_db=# CREATE EXTENSION postgis;
Tiếp theo, xác minh PostGIS có hoạt động hay không:
Mã:
postgis_db=# SELECT PostGIS_version();
Bạn sẽ nhận được kết quả sau:
Mã:
postgis_version--------------------------------------- 2.5 USE_GEOS=1 USE_PROJ=1 USE_STATS=1(1 hàng)
Cuối cùng, thoát khỏi PostgreSQL shell bằng lệnh sau:
Mã:
postgis_db=# \q
 postgres@debian10:~$ exit

Tối ưu hóa PostgreSQL cho PostGIS​

PostgreSQL được thiết kế để chạy với các cơ sở dữ liệu nhỏ đến cơ sở dữ liệu lớn. Các đối tượng cơ sở dữ liệu PostGIS lớn hơn so với dữ liệu văn bản. Vì vậy, bạn sẽ cần tối ưu hóa PostgreSQL để hoạt động tốt hơn với các đối tượng PostGIS.

Bạn có thể tối ưu hóa máy chủ PostgreSQL bằng cách chỉnh sửa tệp /etc/postgresql/11/main/postgresql.conf:
Mã:
nano /etc/postgresql/11/main/postgresql.conf
Thay đổi tham số sau tùy thuộc vào RAM hệ thống của bạn:
Mã:
#Giá trị này phải bằng khoảng 75% RAM của máy chủ của bạn.shared_buffers = 1500M#Điều này cho phép PostgreSQL lưu trữ nhiều dữ liệu hơn trong bộ nhớ trong khi thực hiện sắp xếpwork_mem = 64MB#Điểm kiểm tra là hành động định kỳ lưu trữ thông tin về hệ thống của bạncheckpoint_segments = 6#Về cơ bản, thiết lập này là lượng thời gian mà trình tối ưu hóa của bạn phải dành để đọc bộ nhớ trước khi tiếp cận đĩa của bạn.random_page_cost = 2.0
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, khởi động lại dịch vụ PostgreSQL để triển khai các thay đổi.
Mã:
systemctl restart postgresql

Kết luận​

Xin chúc mừng! Bạn đã cài đặt thành công PostGIS trên máy chủ PostgreSQL. Bây giờ bạn đã cấu hình cơ sở dữ liệu cho các truy vấn không gian. Để biết thêm thông tin, hãy truy cập tài liệu PostGIS tại PostGIS.
 
Back
Bên trên