注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

PostgreSQL 中文网

 
 
 

日志

 
 

PostgreSQL9.5:archive_mode = always 支持备节点接收主节点的归档文件  

2015-08-12 15:26:32|  分类: Postgres基础 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Add new archive_mode value always to allow standbys to always archive received WAL files

          PostgreSQL 流复制架构中备节点不支持接收来自主节点的 WAL 日志文件,如果备节点要取归档文件时,一般有两种解决方案,第一种是主节点将 WAL 文件归档到共享存储上(NFS 也可以),主,备节点都能读取归档的日志文件; 另一种是将主节点已归档的日志文件 copy 到备节点上。
   
         9.5 版本新增 archive_mode = always,允许备库接收主库的 WAL 日志文件。之前版本 archive_mode 参数仅允许 on 或 off,接着做个小实验:
  
--环境信息

主节点 192.168.2.38/1931  主机名 db2  归档目录 /archive/pg95/
主节点 192.168.2.37/1931  主机名 db1  归档目录 /archive/pg95/


--insert.sh 脚本

#!/bin/bash

while true
do
 psql -c "insert into test_pitr(create_time) values (now());"
 sleep 1
done

备注:写个脚本定时插入数据,让数据库处于写的状态。

--执行脚本

[pg95@db2 tf]$./insert.sh > /dev/null 2>&1 &


--修改备节点 archive_mode 参数:db1 上执行

[pg95@db1 pg95]$ grep "archive_mode =" $PGDATA/postgresql.conf
archive_mode = always           # enables archiving; off, on, or always


--删除归档文件: db1 上执行

[pg95@db1 pg_root]$ cd /archive/pg95
[pg95@db1 pg95]$ rm -rf *


--查看归档命令: db2 上执行

[pg95@db2 tf]$ psql -c "show archive_command"
    archive_command     
------------------------
 cp %p /archive/pg95/%f
(1 row)


--切换 WAL: db2 上执行

postgres=# select pg_switch_xlog();
 pg_switch_xlog
----------------
 1/2F147068
(1 row)


--查看归档日志, db2 上执行

[pg95@db2 pg95]$ ls -alrt | tail -n 1
-rw------- 1 pg95 pg95 16777216 Aug 12 14:21 00000006000000010000002F


--查看归档日志, db1 上执行

[pg95@db1 pg95]$ ll
total 16M
-rw------- 1 pg95 pg95 16M Aug 12 14:21 00000006000000010000002F

备注:可以看出备节点归档目录新增加的 WAL 文件和主节点归档目录产生的 WAL 一样。

--附 archive_mode (enum)

    When archive_mode is enabled, completed WAL segments are sent to archive storage by setting archive_command. In addition to off, to disable, there are two modes: on, and always. During normal operation, there is no difference between the two modes, but when set to always the WAL archiver is enabled also during archive recovery or standby mode. In always mode, all files restored from the archive or streamed with streaming replication will be archived (again). See Section 25.2.9 for details.

    archive_mode and archive_command are separate variables so that archive_command can be changed without leaving archiving mode. This parameter can only be set at server start. archive_mode cannot be enabled when wal_level is set to minimal.


--参考
  评论这张
 
阅读(800)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016