暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

pg中如何正确设置归档

pg中如何正确设置归档

作者简介:王旭,在数据库管理方面拥有10多年经验。精通主流数据库系统,在企业数据库管理、性能优化、架构设计和高可用性能解决方案方面拥有丰富得实践经验。目前拥有(ORACLE ACE、MYSQL OCP、PG ACE、PGCA、PGCE、PGCM)等数据库认证。

归档设置介绍

生产中我们需要对数据库做热备,如手工热备、pg自带热备、三方工具热备。流复制很多人以为也要开归档,实际上不需要,以前文章有些,相比oracle、mysql就方便很多;

//pg中归档设置有那些参数?

1)archive_mode = on
2)archive_command = ''
3)archive_timeout = 0

  • archive_mode,归档打开控制开关,默认off,on就是说打开归档,和oracle中startup mount后执行alter database archive log; 一个意思。只不过oracle是在一致性关库后进入mount时候设置,而pg是在参数文件或者命令行使用alter system设置,设置后,重启实例生效。

  • archive_command为归档的目的地,默认是空'',如果和oracle比较,那么就是log_archive_dest或者log_archive_dest_x或者闪回区;这个是进一步控制归档的目的地,这个参数不需要重启生效,修改后执行pg_ctl reload -D xx或者select pg_reload_conf();。

  • archive_timeout,控制归档时间,默认为0,就是禁用,如果设置了大于0 ,那么归档只要到达xx秒就会触发自动切换归档的命令;和oracle中的archive_lag_target一个意思,这个参数不需要重启生效。

//在很多时候,我们实施项目,初始化一套库,可能很容易忘记打开归档,或者一时没有计划好备份这些事情,就导致业务量增加的同时,热备无法配置,只有停机修改上述的归档参数。那么有没有一种办法,在初始化的时候不用考虑归档的目的地,然后把归档给打开呢?答案是可以,通过设置假归档处理。

  • 初始化的时候还是设置archive_mode = on
  • 在windows中,我们把archive_command设置为'echo ""'
  • 在linux中,我们把archive_command设置为'/bin/true'

具体配置演示

windows只设置archive_mode=on,archive_command=''的情况

  • 设置参数
  • 重启实例
  • 查看参数情况
  • 查看当前在用wal日志
  • 查看wal目录归档记录状态(1d是已经归档,那么上面在用的1e是没归档的)
  • 执行日志切换,看归档状态是否正常,正常为.done,不正常为.ready.
  • 通过设置,发现不正常,无法归档,那我能不能将archive_command由'' 修改为有值的呢?我们试下,通过实验是可以的。

总结

  • windows和linux在安装的时候都需要将archive_mode打开。
  • 基于不同的操作系统,我们可以使用假归档方式。为后续真归档提供不停机的条件。

文章转载自青年数据库学习互助会,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论