持续归档(continuous archiving) 是当WAL段文件发生切换时会自动将其拷贝至归档区域的一项功能。持续归档是由归档后台进程执行的,拷贝的文件称为归档日志(archive log) 。该功能通常用于物理备份与时间点恢复(参见 第十章 基础备份与时间点恢复 )。
归档区域的配置取决于配置参数archieve_command
,例如使用下列配置时,每当发生段文件切换时,WAL段文件会被拷贝到目录/home/postgres/archives
目录下:
archive_command = 'cp %p /home/postgres/archives/%f'
这里%p
是被拷贝WAL段文件的路径占位符,而%f
是归档日志文件名的占位符。
图9.20 持续归档
当WAL段文件WAL_7
发生切换时,该文件被拷贝至归档区域,作为归档日志7。
archive_command
参数可以配置为任意的Unix命令或程序,因此你也能用scp
将归档日志发送到其他主机上,或使用任意的文件备份工具来替代普通的拷贝命令。
PostgreSQL并不会 清理归档日志,所以在使用该功能时需要管理好这些日志。如果什么都不做,归档日志的数量会不断增长。
pg_archivecleanup
工具是一个管理归档日志的实用工具。