wal_level
决定多少信息写入到 WAL 中
wal_level 参数默认值为 replica ,每个层次包括所有更低层次记录的信息。(级别:minimal<replica<logical)
archive
和hot_standby
。现在仍然接受这些值,但是它们会被映射到replica
控制数据库归档模式:off, on, or always。当wal_level
被设置为minimal
时,archive_mode
不能被启用
always
模式下,所有从归档中恢复的或者用流复制传来的文件将被(再次)归档调用服务器上本地shell或工具命令,用于归档一个完成的WAL文件。该参数仅在启用了archive_mode时生效,否则它将会被忽略。
如果archive_mode
被启用时,archive_command
是一个空字符串(默认),WAL 归档的操作会被临时禁用,但仍会继续累计WAL文件链。
%p
:指定的参数字符串值中的任何%p
被替换成要被归档的文件的路径名%f
:指定的参数字符串值中的任何%f
只被文件名替换(路径名是相对于数据目录)如果要在命令里嵌入一个真正的%
字符,可以使用%%
指定一个shell命令,用于清理不需要的已归档WAL文件。通常使用pg_archivecleanup模块清理过时的已归档文件。
archive_cleanup_command = ‘pg_archivecleanup /mnt/archivedir %r‘
SHOW data_directory;
show archive_mode;
任何数据的修改首先写入WAL日志,然后才对数据文件进行修改。PostgreSQL在数据集簇目录的$PGDATA/pg_wal/
子目录下存储预写式日志(WAL)。
启用WAL归档,需设置wal_level配置参数为replica或更高(级别:minimal<replica<logical),设置archive_mode为on,并且使用archive_command配置参数指定一个shell命令。在archive_command
中,%p
会被将要归档的文件路径所替代,而%f
只会被文件名所替代(路径名是相对于当前工作目录而言的,即集簇的数据目录)
mkdir -p /ups/data/pgdata/12/arch_wal
chown postgres:postgres /ups/data/pgdata/12/arch_wal
# 1.1 vi postgresql.conf
wal_level = ‘replica‘
# 1.2 SQL命令方式修改
psql -c "ALTER SYSTEM SET wal_level = ‘replica‘;"
# 1.1 vi postgresql.conf
archive_mode = ‘on‘
# 1.2 SQL命令方式修改
psql -c "ALTER SYSTEM SET archive_mode = ‘on‘;"
# 1.1 vi postgresql.conf
archive_command = ‘cp %p /ups/data/pgdata/12/arch_wal/%f‘
# 1.2 SQL命令方式修改
psql -c "ALTER SYSTEM SET archive_command = ‘cp %p /ups/data/pgdata/12/arch_wal/%f‘;"
vi $PGDATA/postgresql.conf
archive_command = ‘test ! -f %p && /bin/lz4 -q -z %p /ups/data/pgdata/12/archive_wals/%f.lz4‘
# 1.2 SQL命令方式修改
psql -c "ALTER SYSTEM SET archive_command = ‘test ! -f %p && /bin/lz4 -q -z %p /ups/data/pgdata/12/archive_wals/%f.lz4‘;"
适用压缩归档wal日志文件
-- 使用gzip来压缩归档文件
archive_command = ‘gzip < %p > /var/lib/pgsql/archive/%f‘
-- 使用gunzip恢复
restore_command = ‘gunzip < /mnt/archivedir/%f > %p‘
sudo systemctl restart postgresql12
sudo systemctl status -l postgresql12
select pg_switch_wal();
ls -l /ups/data/pgdata/12/archive_wals/*
原文:https://www.cnblogs.com/binliubiao/p/15308263.html