Postgresql主从配置

第一步:准备两台服务器并且安装postgresql数据库。
主库(master) centos-release-7-2.1511 192.168.111.101 postgresql 9.5.5
从库(standby) centos-release-7-2.1511 192.168.111.102 postgresql 9.5.5
第二步:主库配置
注意此处的操作都是在主库(192.168.111.101)上进行的,首先打开数据目录下的postgresql.conf文件然后做以下修改:
listen_address = ‘*’(默认localhost)
wal_level = hot_standby(默认是minimal)
max_wal_senders=2(默认是0)
wal_keep_segments=64(默认是0)
下面稍作说明,第一个不用说了,wal_level表示启动搭建Hot Standby,max_wal_senders则需要设置为一个大于0的数,它表示主库最多可以有多少个并发的standby数据库,而最后一个wal_keep_segments也应当设置为一个尽量大的值,以防止主库生成WAL日志太快,日志还没有来得及传送到standby就被覆盖,但是需要考虑磁盘空间允许,一个WAL日志文件的大小是16M,

一个WAL日志文件是16M,如果wal_keep_segments设置为64,也就是说将为standby库保留64个WAL日志文件,那么就会占用16*64=1GB的磁盘空间,所以需要综合考虑,在磁盘空间允许的情况下设置大一些,就会减少standby重新搭建的风险。接下来还需要在主库创建一个超级用户来专门负责让standby连接去拖WAL日志:

create user repl superuser password ‘111111’;

接下来打开数据目录下的pg_hba.conf文件然后做以下修改:
在这里插入图片描述

如上图,这行配置的意思是允许用户repl从192.168.111.0/24网络上发起到本数据库的流复制连接,简言之即允许从库服务器连接主库去拖WAL日志数据。主库配置很简单,到此就算结束了,启动主库并继续配置从库。

第三步:从库配置

开始配置从库(192.168.111.102),首先要通过pg_basebackup命令行工具在从库上生成基础备份,命令如下:
./pg_basebackup -h 192.168.111.101 -U repl -F p -x -P -R -D /usr/local/postgresql/data/ -l replbackup20161122

下面简单做一下参数说明(可以通过pg_basebackup --help进行查看),-h指定连接的数据库的主机名或IP地址,这里就是主库的ip。-U指定连接的用户名,此处是我们刚才创建的专门负责流复制的repl用户。-F指定了输出的格式,支持p(原样输出)或者t(tar格式输出)。-x表示备份开始后,启动另一个流复制连接从主库接收WAL日志。-P表示允许在备份过程中实时的打印备份的进度。-R表示会在备份结束后自动生成recovery.conf文件,这样也就避免了手动创建。-D指定把备份写到哪个目录,这里尤其要注意一点就是做基础备份之前从库的数据目录(/usr/local/postgresql/data)目录需要手动清空。-l表示指定一个备份的标识,运行命令后看到如下进度提示就说明生成基础备份成功。
在这里插入图片描述

由于我们在pg_hba.conf中指定的md5认证方式,所以需要输入密码。最后还需要修改一下从库数据目录下的postgresql.conf文件,将hot_standby改为启用状态,即hot_standby=on。到此为止就算配置结束了,我们现在可以启动从库,如果启动成功就说明配置成功。

你可能感兴趣的:(postgresql,数据库)