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

postgresql wal日志设置、归档切换、删除

原创 szrsu 2022-11-30
1768

pg_control文件包含检查点的基本信息,因此它对于数据库恢复必不可少。如果损坏或者无法读取,则无法启动恢复过程,从而无法获得起点。

pg_controldata D:\PGDATA

##切换WAL日志
postgres=# select pg_switch_wal();
 pg_switch_wal
---------------
 0/12000000
(1 行记录)

postgres=# select pg_current_wal_insert_lsn();
 pg_current_wal_insert_lsn
---------------------------
 0/12000148

postgres=# select pg_walfile_name('0/12000000');
     pg_walfile_name
--------------------------
 000000010000000000000011
(1 行记录)



复制

WAL段切换条件:
(1)WAL段文件已经被写满
(2)函数pg_switch_wal()被调用
(3)启用了archive_mode,且已经超过archive_timeout配置的超时时间
切换过的文件会被重命令或者重用以供未来使用。

打开归档
----对postgresql.conf文件编辑,如下设置:
wal_level = replica
archive_mode = on
archive_command = ‘DIR=/opt/pg_arch/date +%F; test ! -d DIR && mkdir -p DIR; chmod 755 DIR; test ! -f DIR/%f && cp %p DIR/%f; chmod 755 DIR/%f’ ####对归档进行按天分类

非主库清理归档配置
archive_cleanup_command = ‘pg_archivecleanup -d /opt/pg_arch/date +%F%r 2>>cleanup.log’

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

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’

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论