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

PostgreSQL 中文网

 
 
 

日志

 
 

PostgreSQL:什么情况会触发 WAL 日志归档?  

2013-10-17 10:08:02|  分类: Postgres基础 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

    这几天 bbs 里提了几个关于 WAL 归档的问题,提的问题越来越深入了,其中有个问题大概是这样的:
在开启归档的情况下,PostgreSQL 什么情况会触发 WAL 日志归档? 对于这个问题,简单的实验了下,稍
后会总结,先来看配置情况。

一 环境信息
--1.1 PostgreSQL 版本
    9.3.0
  
--1.2 postgresql.conf
 wal_level = hot_standby
archive_mode = on
archive_command = 'test ! -f /archive/pg93/archive_active || cp %p /archive/pg93/%f'
   
--1.3 归档目录
 [pg93@redhatB pg93]$ pwd
/archive/pg93

[pg93@redhatB pg93]$ ll
total 32M
-rw-------. 1 pg93 pg93 16M Oct 16 11:05 00000001000000000000007A
-rw-------. 1 pg93 pg93 16M Oct 16 11:07 00000001000000000000007B
-rw-rw-r--. 1 pg93 pg93   0 Oct 16 11:05 archive_active  --归档标识文件
  备注:归档目录为 "/archive/pg93",归档脚本为 archive_command 设置的内容,回到本文的问题:
             什么情况下会触发归档? 经观察只要发生了 WAL 日志切换时,就会触发归档,更进一步分析,
             目前想到了以下三种切换 WAL 日志的方法。
         
方法一:手动切换 WAL 日志
    PostgreSQL 提供 pg_switch_xlog() 函数可以手工切换 WAL 日志,如下:

--手动归档
 [pg93@redhatB ~]$ psql
shpsql (9.3.0)
Type "help" for help.

postgres=# select pg_switch_xlog();
 pg_switch_xlog 
----------------
 0/87000000
(1 row)
  备注:执行 pg_switch_xlog() 后,WAL 会切换到新的日志,这时会将老的 WAL日志归档,这里归档到 
         /archive/pg93 目录。

方法二:WAL 日志写满后触发归档
      WAL 日志被写满后会触发归档,文档在说明配置参数 archive_command 时的第一句说就说明了这点, 
WAL 日志文件默认为 16MB,这个值可以在编译 PostgreSQL 时通过参数 "--with-wal-segsize" 更改,编
译后不能修改。

方法三:设置 archive_timeout

     另外可以设置archive 超时参数 archive_timeout ,假如设置 archive_timeout=60 ,那么每 60 s ,
会触发一次 WAL 日志切换,同时触发日志归档,这里有个隐含的假设: 当前 WAL 日志中仍有未归档的 WAL 
日志内容,有兴趣的朋友可以自己测试下。

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

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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