PostgreSQL:流复制环境清除 pg_xlog 日志

来源:互联网 发布:览物之情得无异乎的互 编辑:程序博客网 时间:2024/06/15 08:03

http://francs3.blog.163.com/blog/static/40576727201352135115689/

 今天一流复制( Streaming Replication) 数据库一目录空间告警,经查是 pg_xlog 目录
 WAL 日志文件过多,已超过阀值。
 
       pg_xlog 是数据库重做日志,非常重要,不能直接清理,否则给数据库带来巨大灾难,以
下是流复制环境下清理 pg_xlog 的方法。

--1 查看当前 checkpoint_segments 和 wal_keep_segments 
 postgres@db> psql -h 127.0.0.1
psql (9.2.4)
Type "help" for help.

postgres=> show checkpoint_segments;
 checkpoint_segments 
---------------------
 128
(1 row

postgres=> show wal_keep_segments ;
 wal_keep_segments 
-------------------
 4096
(1 row)

--2 查看 pg_xlog 文件数量
 postgres@db> cd $PGDATA
postgres@db> ll pg_xlog/ | wc -l
4156
 备注:这比 wal_keep_segments 设置值大些,但这是正常的,因为 4156 < 4096 +128(checkpoint_segments)+1 
           至于 pg_xlog 最大文件数量的估算参考之前 blog:   How to estimate total number of WAL segments ?     

--3 修改 postgreql.conf
 wal_keep_segments = 2048  备注:将参数 wal_keep_segments 由原来的 4096 调整到 2048。

--4 reload 配置文件
 postgres@db> pg_ctl reload -D $PGDATA
server signaled
   
--4 再次查看 wal_keep_segments
 postgres=# show wal_keep_segments ;
 wal_keep_segments 
-------------------
 2048
(1 row)

postgres@db> cd $PGDATA
postgres@db> ll pg_xlog/ | wc -l
4156
 备注:此时 pg_xlog 日志文件依然没被删除,接着往下操作。
 
--5 执行 checkpoint;
 postgres=# checkpoint;
CHECKPOINT
   
--6 再次查看 pg_xlog 文件数量
 postgres@db> ll $PGDATA/pg_xlog/ | wc -l
2310
   备注:手动执行 checkpoint 后,大概一半 pg_xlog 日志已被删除,空间使用率降下去了,也可以不手动操作,因为 checkpoint 操作数据库会自动执行,执行频率由参数 checkpoint_timeout 控制。
 
--6 参考
How to estimate total number of WAL segments ?   
formula about the number of WAL files

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 景观前线 景观平台 张唐景观 景观树价格 学景观 景观平面 室内景观 景观造雾机 别墅景观树 景观素材网 旅游景观 日式景观 景观桥梁 秋凌景观 景观培训 上海景观 创意景观 工业景观 大型景观树 景观大门 溶岩景观 景观设计平面图 自然景观作文 景观设计大学排名 拾玖景观作品 金华燕尾洲景观步行桥 景观的近义词 景观设计说明 景观手绘平面图 自然景观有哪些 小庭院景观设计图片 园林景观设计平面图 自然景观四年级上册400字作文 景观设计工资一般多少 园林景观图片 景观规划设计 园林景观工程公司 市政景观工程 景观照明工程 景观雕塑价格 景观公司排名