微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

postgresql学习笔记之归档堆积处理

一,跟归档相关的参数
1 查看是否开启归档模式
show archive_mode; ----仅在已完成的wal段进行归档,如果强制归档,归档段文件大小也是16M
2 查看归档相关参数
show archive_timeout;----超过这个时长就必须归档一次,设置为0表示认不启用
show archive_command;----归档方式的shell命令(定义怎么去归档)
二 archive_command设置
1 常规设置

test ! -f /data/arch/%f && cp %p /data/arch/%f

如果/data/arch/%f不存在,就把wal即将被归档的日志文件复制到/data/arch/%f

归档命令,注意 %p %f %% 格式化的含义。
%p 是被归档的redo文件的路径,
%f 是被归档的redo文档的文件
%% 是百分号
test
Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。
&& 就执行
|| 就不执行

2 优化设置
1)在postgresql.conf中设置
archive_command=‘arch.sh %f %p’
2)在上级目录下设置脚本arch.sh以在每次归档时执行。

test ! -f /data/arch/%f && cp preserve=timestamps %p /data/arch/%f; 
find /data/arch -type f -mtime +7 -exec rm -f {} \;

如果/data/arch/%f不存在,就把wal即将被归档的日志文件复制到/data/arch/%f,复制时保留时间
找到/data/arch目录下所有的文件,并且把七天前修改文件找出来,执行rm -f命令

find 命令
-type 在某个目录下所有的文件
-mtime 按照更改时间来找文件
-exec 找到后执行这个命令

cp 命令
-p preserve 保留源文件或目录的属性包括所有者、所属组、权限与时间
3)重新加载参数文件

select pg_reload_conf();

4)看参数是否生效

select * from pg_file_settings where name like '%arch%';---applied='t'表示已生效

三 设置归档的一般过程
1 创建归档目录

mkdir -p /data/arch

2 编辑归档脚本
3 配置归档参数
4 重启数据库(archive_mode变化需要重启数据库,只有这个参数设置了,其他两个参数才会起作用。而archive_command变化不用重启数据库,只需要重新加载参数文件就行)

参考文章
https://blog.csdn.net/iwantyou741/article/details/72638988?
https://www.jb51.net/article/203830.htm

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐