ITPub博客

首页 > 数据库 > PostgreSQL > 2. PostgreSQL 流复制

2. PostgreSQL 流复制

原创 PostgreSQL 作者:kakaxi9521 时间:2021-02-23 15:11:06 0 删除 编辑

1. PostgreSQL 流复制3 个主要进程:

wal sender, wal receiver , startup


2. 配置流复制:

step 1:

在master 端创建用于流复制的用户replicator

create user replicator with replication encrypted password 'replicator';

创建完成后可以在psql中通过\du命令查看创建的用户

step 2:

在master 的参数配置,下面这些参数需要配置

ALTER SYSTEM SET wal_level TO 'hot_standby';

ALTER SYSTEM SET archive_mode TO 'ON';

ALTER SYSTEM SET max_wal_senders TO '5';

ALTER SYSTEM SET wal_keep_segments TO '10';

ALTER SYSTEM SET listen_addresses TO '*';

ALTER SYSTEM SET hot_standby TO 'ON';

ALTER SYSTEM SET archive_command TO 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f';


配置完这些参数后需要重启数据库pg_ctl restart, 可以在$PGDATA目录下的postgresql.auto.conf文件查看参数是否生效。


step 3:

在$PGDATA目录的pg_hba.conf文件中添加slave主机的信息

host replication replicator 192.168.1.66/32 md5

配置完成后需要重新加载pg_ctl reload。


step 4:

复制master库到备库,可以通过如下方法:

pg_basebackup -h 192.168.1.70 -U replicator -p 5432 -D $PGDATA -P -Xs -R

当前只是做测试,没有数据,此步操作很快,会在slave端生成所有的文件,同时还会包含recovery.conf文件。


step 5:

启动slave端pg数据库 pg_ctl start


检查master端进程:

-bash-4.2$ ps -ef | grep sender

postgres  6515  5852  0 14:55 ?        00:00:00 postgres: wal sender process replicator 192.168.1.66(50228) streaming 0/6000060


检查slave端进程:

-bash-4.2$ ps -ef | grep receiver

postgres 19052 19046  0 14:55 ?        00:00:00 postgres: wal receiver process   streaming 0/6000060

-bash-4.2$ ps -ef | grep startup

postgres 19048 19046  0 14:55 ?        00:00:00 postgres: startup process   recovering 000000010000000000000006


也可以在master端通过视图检查:


至此一个简单的PostgreSQL 流复制配置完成,其中的知识点:

1. 流复制设计三个进程 wal sender, wal receiver , startup,在配置完成后可以通过下面命令查看。

ps -ef | grep sender

ps -ef | grep receiver

ps -ef | grep startup

也可以在Master端通过视图pg_stat_replication查看。

select * from pg_stat_replication;


2.  会涉及到postgresql.conf, pg_hba.conf两个参数文件的配置,都是在master端进行配置。

postgresql.conf文件需要配置的参数有:

ALTER SYSTEM SET wal_level TO 'hot_standby';

ALTER SYSTEM SET archive_mode TO 'ON';

ALTER SYSTEM SET max_wal_senders TO '5';

ALTER SYSTEM SET wal_keep_segments TO '10';

ALTER SYSTEM SET listen_addresses TO '*';

ALTER SYSTEM SET hot_standby TO 'ON';

ALTER SYSTEM SET archive_command TO 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f';


pg_hba.conf 文件需要配置slave端的信息:

host replication replicator 192.168.1.66/32 md5


3. pg_basebackup工具的使用

在进行stream replication配置是需要将master端的数据同步到slave端,需要使用pg_basebackup工具将数据同步到slave端。

pg_basebackup 工具的使用可以作为一个单独的章节。








来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21374452/viewspace-2758683/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: Kubernetes Namespaces
请登录后发表评论 登录
全部评论

注册时间:2009-04-13

  • 博文量
    136
  • 访问量
    179046