Chapter 23. 日常数据库维护工作

Table of Contents
23.1. Routine Vacuuming日常清理
23.1.1. 清理基础
23.1.2. 恢复磁盘空间
23.1.3. 更新规划器统计
23.1.4. 避免事务ID重叠造成的问题
23.1.5. autovacuum 守护进程
23.2. 经常重建索引
23.3. 日志文件维护

像其它数据库一样,PostgreSQL 也需要周期性的运行某些任务以实现性能优化。 这里讨论的任务是required经常重复的事情, 可以很容易的使用标准的 Unix 工具(比如 cron 脚本)或 Windows 的 Task Scheduler来完成。不过,设置合适 的脚本以及检查它们是否成功执行则是数据库管理员的责任。

一件很明显的维护任务就是经常性地创建数据的备份拷贝。如果没有最近的 备份,那么你就没有从灾难中恢复的机会(磁盘坏、失火、误删表)。可以在 PostgreSQL 里面使用的备份和恢复机制 在章Chapter 24.里面有比较详细的讨论。

其它主要的维护工作包括周期性的"vacuuming"(清理)数据库。 这个工作我们在节Section 23.1里讨论。与此紧密相关的是 更新规划器使用的统计信息,这个在Section 23.1.3里讨论。

可能需要定期关注的另一项任务是日志文件的管理。我们在Section 23.3 里讨论了这个问题。

check_postgres 可用于监测数据库的健康和报告不寻常的条件。 check_postgres 集成了Nagios和MRTG,但可以独立运行。

PostgreSQL 和其它数据库产品比较起来是低维护量的。但是,适当在这些任务上放一些注意将 更加能够确保我们的愉快工作和获取对这个系统富有成效的经验。