PostgreSQL16.4搭建一主一从集群
PostgreSQL搭建一主一从集群的过程主要涉及到基础环境准备、PostgreSQL安装、主从节点设置以及同步验证等步骤。以下是一个具体的搭建过程:一、基础环境准备
[*] 创建虚拟机:
[*]准备两台虚拟机,分别作为主节点和从节点。
[*]为每台虚拟机分配独立的IP地址和主机名。
[*] 操作体系与依赖安装:
[*]确保两台虚拟机上都安装了相同版本的操作体系(如openEuler22.03/Centos7.9)。
[*]安装PostgreSQL运行所需的依赖包,如gcc、gcc-c++、readline-devel等。
[*] SSH免密登录:
[*]在主节点和从节点上设置SSH免密登录,方便后续的管理操作。
二、PostgreSQL安装
[*] 下载与安装:
[*]可以选择从PostgreSQL官网下载对应版本的源码包进行编译安装,或者利用包管理器(如yum)进行安装。
[*]以yum安装为例,命令如下:yum install -y postgresql postgresql-server
[*] 初始化与启动:
[*]初始化数据库:service postgresql initdb
[*]启动PostgreSQL服务:systemctl start postgresql
[*]设置为开机自启:systemctl enable postgresql.service
[*] 开放端口:
[*]如果防火墙已开启,须要开放PostgreSQL的默认端口(5432)。
[*] 验证安装:
[*]切换到pgsql用户,尝试登录psql命令行工具进行验证。
三、主节点设置
[*] 创建复制用户:
[*]在主节点上创建一个专门用于复制的用户,并赋予其复制权限。
su - pgsql
psql
postgres=# create role repl login replication encrypted password 'repuser@2024';
[*] 修改设置文件:
[*] 修改postgresql.conf文件,设置listen_addresses为'*',答应所有IP毗连。
[*] 设置wal_level为hot_standby,启用流复制。
[*] 设置其他相关参数,如max_wal_senders、wal_keep_segments等。
[*] archive_command=‘test ! -f /postgresql/archive/%f && cp %p /postgresql/archive/%f’
[*] wal_keep_size=64MB # pg13之后版本 如果设置时不带单元,则默认为 MB(0 到 2147483647) 0,0 表示 PostgreSQL 不会为流复制环境保留额外的 wal segments
[*] 注意:wal_keep_segments=256 是postgresql 12及之前的版本,postgresql 13.0中,将wal_keep_segments重定名为wal_keep_size,让用户指定WAL大小,而不是WAL文件个数。在PG内核不绝演进的过程中,PostgreSQL开辟者在渐渐弱化wal段数量(wal文件个数)的概念,并夸大wal的size,之前就有checkpoint_segments改变为max_wal_size的先例
[*] 修改pg_hba.conf文件,添加对复制用户的访问权限设置。
vi /postgresql/pgdata/pg_hba.conf
host all all 0.0.0.0/0 md5
host replication repl 0.0.0.0/0 md5
[*] 重启PostgreSQL服务:
[*] 修改设置后,须要重启PostgreSQL服务使设置见效。
pg_ctl stop
pg_ctl start
四、从节点设置
[*] 安装PostgreSQL:
[*]从节点上也须要安装PostgreSQL,过程与主节点相同。
[*] 数据同步:
[*]利用pg_basebackup命令从主节点同步基础数据到从节点。
pg_basebackup -h 主节点IP -U repl -D /var/lib/pgsql/data -P -Xs -v
-- 示例
pg_basebackup -D /postgresql/pgdata16.4 -F p -P -R -h 192.168.80.239 -p 5432 -U repl -l /postgresql/backup/backup20240902
[*] 修改设置文件:
[*]修改从节点的postgresql.conf文件,设置hot_standby为on,开启热备模式。
[*]修改recovery.conf文件(在PostgreSQL 12及以后版本,部门参数可以直接在postgresql.conf中设置),设置恢复模式、主节点信息等。
[*]primary_conninfo = ‘host=192.168.80.239 port=5432 user=repl passowrd=repuser@2024’
[*] 启动从节点服务:
[*]启动从节点的PostgreSQL服务,它将自动进入恢复模式,并从主节点同步数据。
[*]$ps -ef | grep postgres # 重点关注 startup recovering
五、同步验证
[*] 在主节点上创建数据:
[*] 在主节点上创建一些数据库或表,并插入数据。
$pg_controldata
-- OR
$pg_controldata /postgresql/pgdata/
--
postgres=# select * from pg_stat_replication;
create table t_replication(id int primary key);
insert into t_replication
select generate_series(1,10);
[*] 在从节点上验证数据:
[*]登录从节点的psql命令行工具,查询刚才在主节点上创建的数据,确认数据已同步。$pg_controldata
-- OR
$pg_controldata /postgresql/pgdata/
-- 检查表数据是否同步
postgres=#select * from t_replication
通过以上步骤,你可以成功搭建一个PostgreSQL的一主一从集群。在实际摆设时,还须要根据具体环境和需求进行相应的调解和优化。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]