9.10 归档日志与持续归档

持续归档(continuous archiving) 是当WAL段文件发生切换时会自动将其拷贝至归档区域的一项功能。持续归档是由归档后台进程执行的,拷贝的文件称为归档日志(archive log) 。该功能通常用于物理备份与时间点恢复(参见 第十章 基础备份与时间点恢复 )。

归档区域的配置取决于配置参数archieve_command,例如使用下列配置时,每当发生段文件切换时,WAL段文件会被拷贝到目录/home/postgres/archives目录下:

archive_command = 'cp %p /home/postgres/archives/%f'

这里%p是被拷贝WAL段文件的路径占位符,而%f是归档日志文件名的占位符。

图9.20 持续归档图9.20 持续归档

当WAL段文件WAL_7发生切换时,该文件被拷贝至归档区域,作为归档日志7。

archive_command参数可以配置为任意的Unix命令或程序,因此你也能用scp将归档日志发送到其他主机上,或使用任意的文件备份工具来替代普通的拷贝命令。

PostgreSQL并不会 清理归档日志,所以在使用该功能时需要管理好这些日志。如果什么都不做,归档日志的数量会不断增长。

pg_archivecleanup工具是一个管理归档日志的实用工具。