Win环境下Postgresl的备份库的相关配置

1.修改主服务器和备服务器上的修改备数据库的pg_hba.conf文件连接权限:

 Win环境下Postgresl的备份库的相关配置

修改成:

 Win环境下Postgresl的备份库的相关配置

 

这时候必须确保在备份机器上能连上主数据库机器,主数据库机器器也能连接上备份机器(网络通畅,对应的端口可以访问):

 

 Win环境下Postgresl的备份库的相关配置

 Win环境下Postgresl的备份库的相关配置

 

 

2.主数据库做一个基础备份(手动备份),然后把基础备份拷贝到standby机器(备数据库),再备份机器上新建一个数据库(虽然与主数据库不同名也不会影响数据库恢复,但是不建议。),把基础备份恢复到standby机器上新建的这个数据库中 
3.在主数据库上建一个超级用户,standby数据库会使用这个用户连接到主库上拖WAL日志。(停止主备数据库的服务)

 Win环境下Postgresl的备份库的相关配置

注意:创建的超级用户必须要用初始化复制和备份权限。

 

4.主数据库上的postgresql.conf文件中设置wal_level = hot_standby。 

 Win环境下Postgresl的备份库的相关配置

修改成

 

 Win环境下Postgresl的备份库的相关配置

 

4.1.主数据库上的postgresql.conf文件中设置wal_keep_segments为一个足够大的值,以防止主库生成WAL日志太快,日志还没有来得及传送到standby,就会循环覆盖了; 

 Win环境下Postgresl的备份库的相关配置

修改成

 Win环境下Postgresl的备份库的相关配置

4.2.主数据库上的postgresql.conf文件中设置max_wal_sender参数,这个参数是控制主库可以最多有多少个并发的standby数据库;

Win环境下Postgresl的备份库的相关配置

修改成 

 Win环境下Postgresl的备份库的相关配置

5.在主数据库上的pg_hba.conf中设置listen_addresses和连接验证选项,允许standby数据库连接到主库上来拖WAL日志数据;其中数据库名必须填“replication”, 这是一个为standby连接使用了一个虚拟的数据库名称。用户hexinfei就是步骤2上给standby连接使用的在主库上建的一个超级用户。192.168.2.78就是standby数据库的IP地址。图示:

 Win环境下Postgresl的备份库的相关配置

修改为

 Win环境下Postgresl的备份库的相关配置

 

6.   在备份数据库上的C:\Program Files\PostgreSQL\9.1\data文件夹下建一个recovery.conf,设置以下二项:

standby_mode = 'on'

primary_conninfo = 'host=192.168.2.58 port=5432 user=hexinfei password=leagsoft'

standby_mode设置为'on',表明数据库恢复完成后,不会被找开,仍然处理等待日志的模式。 

   primary_conninfo上standby连接到主数据库所需要的连接串。Host:主机的ip地址;port:主机的postgreSQL的端口,user:步骤2建立的超级用户;password:步骤2建立的超级用户的密码

 Win环境下Postgresl的备份库的相关配置

 

然后在备份数据库上C:\Program Files\PostgreSQL\9.1\data\postgresql.conf文件配置项修改成如下图所示:

 Win环境下Postgresl的备份库的相关配置

 

7.所有修改的地方:

主数据库的C:\Program Files\PostgreSQL\9.1\data\postgresql.conf文件中设置如下配置项:

 

wal_level = hot_standby

max_wal_senders = 2

wal_keep_segments = 32

 

 

主数据库中的C:\Program Files\PostgreSQL\9.1\data\pg_hba.conf中添加如下配置:

 

host    all             all               0.0.0.0/0             md5

 

host    replication     hexinfei        192.168.2.78/32            md5

 

备数据库中的C:\Program Files\PostgreSQL\9.1\data\pg_hba.conf中添加如下配置:

 

host    all              all               0.0.0.0/0            md5

 

 

备数据库上C:\Program Files\PostgreSQL\9.1\data\postgresql.conf文件中设置如下配置项:

 

hot_standby = on

 

 

8.启动主数据库服务,连接数据库,刷新几次,重新载入配置让上面修改的配置生效,在停止服务。

 Win环境下Postgresl的备份库的相关配置

 

9.拷贝主数据库上C:\Program Files\PostgreSQL\9.1\data目录下的base和global文件夹去覆盖备数据库的这两个文件夹(此时主备数据库的服务是停止的)注:这里是覆盖不是删除后再粘过去。覆盖之前可以把备份电脑中的这两个文件夹先拷贝出来,如果出错还可以换回来

 Win环境下Postgresl的备份库的相关配置

 

10.最后启动主数据库服务,连接主数据库;然后启动备数据库的服务,连接备数据库。主备数据库服务都能成功启动,查看一下备服务器的C:\Program Files\PostgreSQL\9.1\data\pg_pog文件夹下日志,如果是如下图则是成功搭建好,可以对主数据库进行建/删表,增,删,改测试,在备数据库上进去查看是否实时同步了,不会有延迟和错误。

 Win环境下Postgresl的备份库的相关配置