PostgreSQL异步流复制(一主一从)

PostgreSQL异步流复制(一主一从)

1、主库创建流复制的用户
postgres=# CREATE ROLE replica login replication encrypted password 'replica';
CREATE ROLE
postgres=#
2、主库修改pg_hba.conf文件,允许备库IP通过复制用户访问数据库
# replication privilege.
#主库
host    replication     replica         10.240.1.12/32          md5
#从库
host    replication     replica         10.240.1.13/32          md5

#这里配置两条,因为主从可以相互切换的,主要为了保持主从配置一致性。

3、主库修改postgresql.conf文件
listen_addresses = '*'
max_connections = 4000 
#建议物理内存的四分之一
shared_buffers = 4GB

wal_level = replica
wal_buffers = 16MB
max_wal_size = 2GB
min_wal_size = 80MB

archive_mode = on
archive_command = 'test ! -f /home/alexlei_liu/pg16/archive_wals/%f && cp %p /home/alexlei_liu/pg16/archive_wals/%f'

wal_keep_size = 2GB
hot_standby = on
hot_standby_feedback = on

#针对分区表的优化
constraint_exclusion = partition

logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%u.log'
log_rotation_age = 1d 
log_truncate_on_rotation = on

log_min_duration_statement = 3s
idle_in_transaction_session_timeout = 5min

shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.max = 10000
pg_stat_statements.track = all
pg_stat_statements.track_utility = on
pg_stat_statements.save = on
4、停止备库,删除相应的数据文件
pg_ctl stop -m fast
rm -rf /usr/local/pg16/data
5、备库上通过pg_basebackup命令对主库进行基础备份
pg_basebackup -h 10.240.1.10 -p 5432 -U replica --password -X stream -Fp --progress -D $PGDATA -R
6、启动备库
pg_ctl start
7、主库查看数据库复制信息
psql
select * from pg_stat_replication
或者
ps

至此,pg数据库的异步流复制(一主一从)搭建完毕。

8、压测

使用pgbench对主从进行压测

#创建数据库
psql
create database test_db;

#初始化压测数据
pgbench -i -s 100 -F90  -d test_db

#压测
pgbench -c 10 -T 60 -d test_db 

pgbench -c 10 -j 10 -T 60 -d test_db 

pgbench -b select-only -c 40 -j 10 -T 60 -d test_db
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PostgreSQL 中的主从复制和归档是实现高可用性和数据备份的两种常见方式。以下是如何配置 PostgreSQL 主从复制和归档的简要说明: 1. 主从复制配置: 首先在主服务器上进行如下配置: - 修改 `postgresql.conf` 文件,启用 WAL 日志记录和复制,并指定要复制的 WAL 日志级别: ``` wal_level = replica max_wal_senders = 5 wal_keep_segments = 32 ``` - 修改 `pg_hba.conf` 文件,允许从服务器连接主服务器: ``` host replication replica 192.168.1.0/24 md5 ``` 然后在从服务器上进行如下配置: - 创建从服务器上用于复制主服务器上数据库的用户: ``` CREATE USER replica WITH REPLICATION LOGIN PASSWORD 'password'; ``` - 在 `recovery.conf` 文件中指定从服务器要连接的主服务器信息和要恢复的时间点: ``` standby_mode = on primary_conninfo = 'host=192.168.1.100 port=5432 user=replica password=password' recovery_target_timeline = 'latest' ``` 2. 归档配置: - 修改 `postgresql.conf` 文件,启用归档并指定归档目录: ``` archive_mode = on archive_command = 'cp %p /mnt/archive/%f' ``` 其中 `%p` 表示要归档的 WAL 日志路径,`%f` 表示要归档的文件名。 - 确认归档目录已经创建,并由 PostgreSQL 用户可以写入。 - 在从服务器上进行如下配置: ``` restore_command = 'cp /mnt/archive/%f %p' ``` 其中 `%p` 表示要恢复的 WAL 日志路径,`%f` 表示要恢复的文件名。 以上是 PostgreSQL 主从复制和归档的简要配置说明。需要注意的是,具体的配置可能会因为环境和需求的不同而有所不同,建议在实际应用中根据需要进行相应的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值