基于Patroni的PostgreSQL高可用环境部署
# 安装Patroni
sudo yum install -y python-pip
sudo pip install patroni
# 创建并配置Patroni配置文件
cat > /etc/patroni/patroni.yml <<EOF
scope: postgres
namespace: /pgsql
name: pg-ha
restapi:
listen: 0.0.0.0:8008
connect_address: ${HOST_IP}:8008
etcd:
host: ${ETCD_HOST}:2379
bootstrap:
dcs:
ttl: 30
loop_wait: 10
retry_timeout: 10
maximum_lag_on_failover: 1048576
synchronous_mode: false
pg_hba: []
initdb: []
pg_rewind: []
users:
admin:
password: 'admin-password'
options:
- createrole
- createdb
replication:
password: 'replication-password'
postgresql:
listen: 0.0.0.0:5432
data_dir: /pgdata
bin_dir: /usr/pgsql-12/bin
parameters:
max_connections: 100
shared_buffers: 256MB
dynamic_shared_memory_type: posix
log_line_prefix: '%m [%p] %q%u@%d '
log_timezone: 'UTC'
timezone: 'UTC'
EOF
# 启动Patroni
patroni /etc/patroni/patroni.yml
这个例子展示了如何在一个基本的AWS EC2实例上安装和配置Patroni。这里的配置文件/etc/patroni/patroni.yml
是根据实际环境进行定制的,包括了etcd的地址、PostgreSQL的监听地址和端口、数据目录以及一些性能参数。这个例子假设你已经有了一个运行的etcd集群,并且知道如何获取ETCD\_HOST变量的值。
评论已关闭