m6米乐安卓版下载-米乐app官网下载
暂无图片
3

postgresql运维—归档配置 -m6米乐安卓版下载

原创 李先生 2022-02-16
3145

postgresql运维—归档配置


背景

在postgresql中,wal日志记录了数据库重要数据文件的所有变化,你对数据的操作都会被记录到其中,wal日志是保证数据完整性的一种标准方法,wal的中心概念是数据文件(存储着表和索引)的修改必须在这些动作被日志记录之后才被写入,即在描述这些改变的日志记录被刷到持久存储以后。

由于postgresql的正常运行,有着一些参数,控制这wal日志的数量及大小,使其覆盖掉老的历史的wal日志。

所以我们就可以利用postgresql中的归档来对wal日志进行归档备份,以应付数据丢失情况的不时之需。

相关参数

#wal_level = replica # minimal, replica, or logical # (change requires restart) #archive_mode = off # enables archiving; off, on, or always # (change requires restart) #archive_command = '' # command to use to archive a logfile segment # placeholders: %p = path of file to archive # %f = file name only # e.g. 'test ! -f /mnt/server/archivedir/%f && cp %p mnt/server/archivedir/%f' #archive_cleanup_command = '' # command to execute at every restartpoint

wal_level

wal_level 参数默认值为 replica ,每个层次包括所有更低层次记录的信息。(级别:minimal

  • minimal —— 不能通过基础备份和wal日志恢复数据库。
  • replica —— 该级别支持wal归档和复制。
  • logical —— 在replica级别的基础上添加了支持逻辑解码所需的信息。

archive_mode

  • off —— 默认值,不开启归档wal
  • on —— 启用归档wal,通过设置 archive_command 命令将完成的wal 段发送到归档目录。
  • always —— 从归档中恢复的或者用流复制传来的文件将被(再次)归档

archive_command

调用服务器上本地shell或工具命令,用于归档一个完成的wal文件。该参数仅在启用了archive_mode时生效,否则它将会被忽略。

当 archive_mode 被启用时,archive_command为设置值时,wal 归档的操作会被临时禁用。

  • %p:指定的参数字符串值中的任何%p被替换成要被归档的文件的路径名
  • %f:指定的参数字符串值中的任何%f只被文件名替换(路径名是相对于数据目录)

archive_cleanup_command

指定一个shell命令,用于清理不需要的已归档wal文件。通常使用pg_archivecleanup模块清理过时的已归档文件。

archive_cleanup_command = 'pg_archivecleanup /mnt/archivedir %r'

配置示例

对postgresql.conf文件编辑,针对以上参数进行如下设置:

wal_level = replica --启用replica级别 archive_mode = on --启用归档 archive_command = 'dir=/pgsql/data/archive/`date %f`; test ! -d $dir && mkdir $dir; test ! -f $dir/%f && cp %p $dir/%f' --对归档进行按天分类

对于archive_cleanup_command,根据实战经验来看,不建议依赖特性类的清理归档,个人喜欢脚本话,可控。

效果展示

[postgres@lyp ~]$ cd $pgdata [postgres@lyp data]$ ls -lrt pg_wal total 81920 -rw-------. 1 postgres postgres 16777216 jan 9 17:34 000000010000000300000029 -rw-------. 1 postgres postgres 16777216 jan 9 17:35 00000001000000030000002a -rw-------. 1 postgres postgres 16777216 jan 9 18:04 00000001000000030000002b -rw-------. 1 postgres postgres 16777216 jan 9 18:05 00000001000000030000002c drwxrwxr-x. 2 postgres postgres 6 jan 9 18:09 archive_status -rw-------. 1 postgres postgres 16777216 jan 9 18:09 000000010000000300000028 [postgres@lyp data]$ ll archive/ total 4 drwx------. 2 postgres postgres 4096 jan 9 18:05 2022-01-09 [postgres@lyp data]$ ll archive/2022-01-09/ total 212992 -rw-------. 1 postgres postgres 16777216 jan 9 17:06 00000001000000030000001b -rw-------. 1 postgres postgres 16777216 jan 9 17:10 00000001000000030000001c -rw-------. 1 postgres postgres 16777216 jan 9 17:12 00000001000000030000001d -rw-------. 1 postgres postgres 16777216 jan 9 17:24 00000001000000030000001e -rw-------. 1 postgres postgres 16777216 jan 9 17:25 00000001000000030000001f -rw-------. 1 postgres postgres 16777216 jan 9 17:29 000000010000000300000020 -rw-------. 1 postgres postgres 16777216 jan 9 17:29 000000010000000300000021 -rw-------. 1 postgres postgres 16777216 jan 9 17:30 000000010000000300000022 -rw-------. 1 postgres postgres 16777216 jan 9 17:31 000000010000000300000023 -rw-------. 1 postgres postgres 16777216 jan 9 17:34 000000010000000300000024 -rw-------. 1 postgres postgres 16777216 jan 9 17:35 000000010000000300000025 -rw-------. 1 postgres postgres 16777216 jan 9 18:04 000000010000000300000026 -rw-------. 1 postgres p
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【米乐app官网下载的版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

网站地图