@H_502_0@要搭建集群,肯定是大家对于pg也是比较了解的了。我们直接就开始讲安装过程。
@H_502_0@首先,肯定就是postgresql的修改。
@H_502_0@需要修改的参数有:
@H_502_0@listen_addresses = '*' #默认是localhost改成*就是监听所有的连接
@H_502_0@wal_level = hot_standby #改成热备模式
archive_mode = on #归档,最好是打开
archive_command = '/bin/date' #归档命令,就是复制wal日志的命令,我这里打印时间了。
@H_502_0@max_wal_senders = 2 #传送日志的进程,一般几个备库几个进程就可以了
@H_502_0@wal_keep_segments = 50 #wal日志保留数量。这个设置大一点。否则可能会出现,备库还没有接收到日志,主库已经删除,会报错。当然,9.4之后加入了slots后就解决了这个问题。
@H_502_0@#synchronous_standby_names = '*'如果要同步流复制,这个就打开,如果只需要异步,就不需要打开。当然,即便同步,现在也不能打开。
@H_502_0@hot_standby = on备库是否提供查询
@H_502_0@
@H_502_0@
@H_502_0@然后修改pg_hba.conf
@H_502_0@在最后添加
@H_502_0@host replication postgres 192.168.1.11/32 trust
host replication postgres 192.168.1.12/32 trust
@H_502_0@添加备库的ip以及用来备份,拉取wal日志的角色。这里我偷懒了直接用的超管。replication是个虚拟的,不需要修改。
@H_502_0@然后启动主库即可。
@H_502_0@psql进入终端:
@H_502_0@执行select pg_start_backup('ddddddddddd');强制检查点
@H_502_0@使用scp将实例目录复制到备库。
@H_502_0@然后select pg_stop_backup();结束备份。
@H_502_0@然后修改备库的配置文件:
@H_502_0@从安装目录的share目录下面copyrecovery.conf.sample到实例目录下,也就是postgresql.conf所在目录。
@H_502_0@修改如下参数:
@H_502_0@recovery_target_timeline = 'latest'
@H_502_0@standby_mode = on
@H_502_0@primary_conninfo = 'host=192.168.1.110 port=5432 user=postgres password=postgres application_name=syn1'这里我使用了同步模式,所以用了application_name,如果异步就不需要application_name参数了
@H_502_0@trigger_file = '/home/postgres/trigger_file'用来激发备库转换成主库的标识文件。
@H_502_0@
@H_502_0@然后如果是同步,将主库中我们注释掉的那个同步参数打开,然后重启主库。
@H_502_0@然后启动从库即可。