PostgreSQL14.6主从模式配置

news/2024/11/22 16:49:37/

一、系统架构

roleip
master11.0.1.11
slave11.0.1.12

二、编译安装PostgreSQL
不多描述,参考:https://zhaoll.blog.csdn.net/article/details/128416411
注意:两台服务器的PG,master正常安装和初始化,slave无需初始化,编译安装完就行;

三、master配置:
修改ppostgresql.conf,下面只列出了需要修改的参数,其他未列出的参数使用默认值。

data_directory = '/data/pgsql'
hba_file = '/app/postgresql/conf/pg_hba.conf'
log_directory = '/app/postgresql/logs'
listen_addresses = '11.0.1.11'
port = 15432
max_connections = 10000 
unix_socket_directories = '/app/postgresql'
unix_socket_group = 'postgres'
unix_socket_permissions = 0777
wal_level = replica 
archive_mode = on
archive_command = 'test ! -f /app/postgresql/archive/%f && cp %p /app/postgresql/archive/%f'
max_wal_senders = 10
wal_keep_size = 256 
wal_sender_timeout = 60s 

注意上面“archive_command”参数中涉及到的目录,如果不存在,需要你手动创建,不然PG无法启动:

mkdir /app/postgresql/archive

修改pg_hba.conf,增加如下内容,允许slave进行数据同步:

host    replication     repuser         11.0.1.12/24         md5

然后启动PG,进行以下操作:
1、登录PG库:

psql -h 127.0.0.1 -p 15432

2、创建用户,用于进行主从同步操作

create role repuser login encrypted password 'repuser123' replication;

3、查看用户权限

postgres=# \duList of rolesRole name |                         Attributes                         | Member of 
-----------+------------------------------------------------------------+-----------itpux     |                                                            | {}postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}repuser   | Replication                                                | {}

四、slave配置
1、同步数据
在slave服务器上执行:

[postgres@data3 postgresql]$ bin/pg_basebackup -h 11.0.1.11 -p 15432 -U repuser -F p -P -D /data/pgsql/
Password:                       <<<<此处输入我们在master上创建的repuser的密码
34772/34772 kB (100%), 1/1 tablespace

输入密码后就开始从master上同步数据到slave上,同步完成后可以看到同步后的文件:

[postgres@data3 postgresql]$ ll /data/pgsql/
总用量 240
-rw-------. 1 postgres postgres    225 5月   2 15:30 backup_label
-rw-------. 1 postgres postgres 180267 5月   2 15:30 backup_manifest
drwx------. 6 postgres postgres     54 5月   2 15:30 base
drwx------. 2 postgres postgres   4096 5月   2 15:30 global
drwx------. 2 postgres postgres      6 5月   2 15:30 pg_commit_ts
drwx------. 2 postgres postgres      6 5月   2 15:30 pg_dynshmem
-rw-------. 1 postgres postgres   4928 5月   2 15:30 pg_hba.conf
-rw-------. 1 postgres postgres   1636 5月   2 15:30 pg_ident.conf
drwx------. 4 postgres postgres     68 5月   2 15:30 pg_logical
drwx------. 4 postgres postgres     36 5月   2 15:30 pg_multixact
drwx------. 2 postgres postgres      6 5月   2 15:30 pg_notify
drwx------. 2 postgres postgres      6 5月   2 15:30 pg_replslot
drwx------. 2 postgres postgres      6 5月   2 15:30 pg_serial
drwx------. 2 postgres postgres      6 5月   2 15:30 pg_snapshots
drwx------. 2 postgres postgres      6 5月   2 15:30 pg_stat
drwx------. 2 postgres postgres      6 5月   2 15:30 pg_stat_tmp
drwx------. 2 postgres postgres      6 5月   2 15:30 pg_subtrans
drwx------. 2 postgres postgres      6 5月   2 15:30 pg_tblspc
drwx------. 2 postgres postgres      6 5月   2 15:30 pg_twophase
-rw-------. 1 postgres postgres      3 5月   2 15:30 PG_VERSION
drwx------. 3 postgres postgres     60 5月   2 15:30 pg_wal
drwx------. 2 postgres postgres     18 5月   2 15:30 pg_xact
-rw-------. 1 postgres postgres     88 5月   2 15:30 postgresql.auto.conf
-rw-------. 1 postgres postgres  28868 5月   2 15:30 postgresql.conf

2、修改配置

su - postgres
cd /app/postgresql
mkdir conf && cd conf
ln -s /data/pgsql/postgresql.conf .
ln -s /data/pgsql/pg_hba.conf .

修改postgresql.conf,只需修改两处:

listen_addresses = '11.0.1.12'
primary_conninfo = 'host=11.0.1.11 port=15432 user=repuser password=Elk@95598'

然后启动slave上的PG库,查看日志有没有报错。

五、测试
在master上登录PG并创建testdb库,在slave上查看是否也存在testdb库。


http://www.ppmy.cn/news/59892.html

相关文章

使用Dino+SAM+Stable diffusion 自动进行图片的修改

SAM 是Mata发布的“Segment Anything Model”可以准确识别和提取图像中的对象。 它可以分割任何的图片&#xff0c;但是如果需要分割特定的物体&#xff0c;则需要需要点、框的特定提示才能准确分割图像。 所以本文将介绍一种称为 Grounding Dino 的技术来自动生成 SAM 进行分割…

MySQL 优化一MySQL优化步骤

目录 定位执行效率较低的 SQL 1、慢查询 2、processlist 3、EXPLAIN 定位执行效率较低的 SQL 定位执行效率比较慢的 SQL 语句&#xff0c;一般有三种方式 1、可以通过慢查询日志来定位哪些执行效率较低的 SQL 语句。 2、使用 show processlist 命令查看当前 MySQL 正在进…

C++之数据对齐

数据对齐 • 总说&#xff1a; ○ 对齐方式&#xff1a;表示的是一个类型的对象存放的内存地址应满足的条件 ○ 好处&#xff1a;对齐的数据在读写上有性能优势 ○ 对于不对齐的结构体&#xff0c;编译器会自动补齐以提高CPU的寻址效率 • 数据对齐&#xff1a;(四个函数/描述符…

10分钟吃透,python操作mysql数据库的增、删、改、查

大家好&#xff0c;我是csdn的博主&#xff1a;lqj_本人 这是我的个人博客主页&#xff1a; lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…

Linux系统调用之alarm,setitimer函数(定时器,向当前进程发送一个信号、循环/间隔定时器,周期性的向当前进程发送信号)

前言 如果&#xff0c;想要深入的学习Linux系统调用中的alarm、setitimer函数&#xff0c;还是需要去自己阅读Linux系统中的帮助文档。 具体输入命令&#xff1a; man 2 alarm/setitimer即可查阅到完整的资料信息。 alarm 函数 alarm() 是一个 Linux 系统调用&#xff0c;用于…

牛客练习赛111

牛客练习赛111_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ 简单的数学题 链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 小红最近沉迷于数学题&#xff0c;她现在想考考小明一道简单的数学题&#xff1a; 给定正整数 mmm&…

Mac OS系统配置frpc客户端并实现开机自启动

自己Mac上部署了一些服务&#xff0c;希望在家里或公网可以直接访问&#xff0c;使用frpc可以实现内网穿透。 本文主要介绍在Mac上如何像Linux一样实现 frpc 的自动启动。 我的 https://xxlab.tech/archives/macos-xi-tong-pei-zhi-frpc-ke-hu-duan-bing-shi-xian-kai-ji-zi-q…

计算机毕业论文内容参考|软件工程|基于java开发汽车销售系统资料

文章目录 导文资料1简述模块与功能总结资料二摘要前言绪论课题背景国内外现状与趋势相关技术与方法介绍导文 如下是一个 Java 实现的汽车销售系统的简单描述,供参考。 计算机毕业论文内容参考|软件工程|基于java开发汽车销售系统资料 资料1 简述 汽车销售系统是专门为汽车销…