PostgreSQL 集群管理基础:多实例、WAL 迁移、psql 使用与配置文件定位
1. 多 PostgreSQL 实例运行
在一台服务器上可以运行多个 PostgreSQL 实例,但需要满足两个关键条件:
- 不同的数据目录 :例如,有两个数据目录分别为 /var/lib/pgsql/13/data_1
和 /var/lib/pgsql/13/data_2
。
- 不同的端口号 :要确保两个数据目录配置文件中的端口号不同。可以通过以下命令设置:
$ echo "port = 5432" >> /var/lib/pgsql/13/data_1/postgresql.auto.conf
$ echo "port = 5433" >> /var/lib/pgsql/13/data_2/postgresql.auto.conf
由于 postgresql.auto.conf
是启动 Postgres 时最后读取的文件,对该文件所做的更改优先于其他配置文件。
2. 移动 pg_wal 目录
每个提交的事务都会进行 WAL 日志记录,以确保数据的持久性,保证 PostgreSQL 实例能够进行崩溃恢复,避免丢失已提交的事务。当 full_page_writes
设置为 ON
时,PostgreSQL 会