在Debian系統上搭建PostgreSQL集群,通常指的是配置一個高可用的PostgreSQL集群,以確保數據庫服務的連續性和數據的一致性。以下是一個基本的步驟指南,用于在Debian上設置一個簡單的PostgreSQL集群:
首先,確保你的Debian系統是最新的,并且已經安裝了必要的依賴包。
sudo apt update
sudo apt upgrade
sudo apt install postgresql postgresql-contrib
編輯PostgreSQL的主配置文件/etc/postgresql/<version>/main/postgresql.conf
和pg_hba.conf
。
postgresql.conf
:配置數據庫服務器的基本參數。pg_hba.conf
:配置客戶端認證。例如,你可以設置監聽地址為所有接口:
# /etc/postgresql/<version>/main/postgresql.conf
listen_addresses = '*'
如果你是第一次安裝PostgreSQL,可以使用initdb
命令初始化一個新的集群。
sudo systemctl stop postgresql
sudo pg_dropcluster <version> main --stop
sudo pg_createcluster <version> main --start
PostgreSQL支持多種復制方式,包括流復制、邏輯復制等。這里我們以流復制為例。
編輯主節點的postgresql.conf
文件:
# /etc/postgresql/<version>/main/postgresql.conf
wal_level = replica
max_wal_senders = 10
wal_keep_segments = 64
hot_standby = on
編輯pg_hba.conf
文件,允許從節點連接:
# /etc/postgresql/<version>/main/pg_hba.conf
host replication replicator <replica_ip>/32 md5
重啟主節點服務:
sudo systemctl restart postgresql
在從節點上,停止PostgreSQL服務并初始化數據目錄:
sudo systemctl stop postgresql
sudo pg_dropcluster <version> main --stop
sudo mkdir -p /var/lib/postgresql/<version>/main
sudo chown postgres:postgres /var/lib/postgresql/<version>/main
sudo chmod 700 /var/lib/postgresql/<version>/main
sudo su - postgres
使用pg_basebackup
命令從主節點備份數據到從節點:
pg_basebackup -h <master_ip> -U replicator -D /var/lib/postgresql/<version>/main -P --wal-method=stream --verbose
編輯從節點的postgresql.conf
文件:
# /etc/postgresql/<version>/main/postgresql.conf
hot_standby = on
編輯recovery.conf
文件(在較新的PostgreSQL版本中可能是postgresql.auto.conf
):
# /var/lib/postgresql/<version>/main/recovery.conf
standby_mode = 'on'
primary_conninfo = 'host=<master_ip> dbname=postgres user=replicator password=<password>'
restore_command = 'cp /var/lib/postgresql/wal_archive/%f %p'
啟動從節點服務:
sudo systemctl start postgresql
在主節點上創建一個測試數據庫和表:
CREATE DATABASE testdb;
CREATE TABLE test (id SERIAL PRIMARY KEY, name VARCHAR(100));
INSERT INTO test (name) VALUES ('Test Data');
在從節點上檢查是否同步成功:
SELECT * FROM test;
如果一切正常,你應該能夠看到相同的數據。
以上步驟提供了一個基本的PostgreSQL集群搭建指南,實際生產環境中可能需要更多的配置和優化。