修改postgresql.conf
archive_mode =on
%p = path of file to archive
%f = file name only
archive_command ='cp %p /u01/pgsql/archive/pg_%f'
重启postgresql
pg_ctl stop
pg_ctl start
查看归档
[postgres@redis01 archive]$ ls -lrt
total 32772
-rw------- 1 postgres postgres 16777216 Sep 22 18:49 pg_000000010000000000000001
-rw------- 1 postgres postgres 16777216 Sep 22 18:50 pg_000000010000000000000002
-rw------- 1 postgres postgres 329 Sep 22 18:50 pg_000000010000000000000002.00000060.backup
[postgres@redis01 archive]$ pwd
/u01/pgsql/archive
command 使用逻辑运算符
1. 命令1 && 命令2 命令1执行成功后才会执行命令2
2. 命令1 || 命令2 命令1执行失败后才会执行命令2
每天生成一个归档目录
archive_command = 'DIR=/u01/pgsql/archive/`date +%F`; sudo test ! -d $DIR && sudo mkdir $DIR; sudo test ! -f $DIR/%f && sudo cp %p $DIR/%f'
查看归档设置
postgres=# select name,setting from pg_settings where name like 'archive%' or name = 'wal_level'; name | setting -----------------+-------------------------------- archive_command | cp %p /u01/pgsql/archive/pg_%f archive_mode | on archive_timeout | 0 wal_level | replica (4 rows)