ITPub博客

首页 > 数据库 > > PostgreSQL 日志归档 operation

PostgreSQL 日志归档 operation

作者:liuaustin 时间:2019-05-06 07:58:58 0 删除 编辑

关于POSTGRESQL 的日志归档和日志的清理,的文档不多,如有需要可以往下看。 


postgreSQL 在日志处理上很类似于ORACLE, 在处理上PostgreSQL 也具有日志归档的功能。 类似ORACLE的 archive log.


但默认POSTGRESQL 是不开启这项功能的,具体怎么让POSTGRESQL 能使用到这个功能,并能良好的运行,  下面进行详细的说明。


首先需要打开 postgresql.conf 中的 archive_mode 


archive_mode 设置为 on 的模式

archive_command = 'test ! -f //pgdata/archive_log/%f && cp %p /pgdata/archive_log/%f'   来进行归档日志文件的拷贝


%f 代表需要进行归档的文件, %p 代表需要归档的目录 


另外还可以设置 archive_timeout 来对不繁忙的系统进行自动切换log的时间设定,保证 archive log 会的定期的被切除。

同时我们可以在系统中查到,最后一次被归档的文件以及时间。



最后我们通过 pg_archivecleanup 命令来的定期的清理已经归档的日志就可以了。


但这里通过pg_archivecleanup 来进行管理 standlone  进行自动化的处理上,还需要脚本的支持,recovery.conf  暂时是用不上(也有可能我孤陋寡闻),如果是进行复制的standy 则可以使用另外的方法进行清理。


通过脚本自动找出pg_wal 中的可以进行归档的,也可以找到

walarchivecleanup.sh 脚本来做定期的日志清理。


通过

select * from pg_catalog.pg_stat_archiver; 中的 last_archived_wal 来进行日志的整理。


例如下面的命令


psql -c "select last_archived_wal from pg_catalog.pg_stat_archiver" -t 

得到最后一次归档的 archive_log name  然后在使用  walarchivecleanup.sh -f 选项进行数据的清理。既保证数据归档的有效性,也保证数据清理的安全性

原文作者:;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2018-11-13

  • 博文量
    1980
  • 访问量
    518082