PostgreSQL教程

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

本文主要是介绍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

这篇关于postgresql学习笔记之归档堆积处理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!