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

目录
23.1. 日常清理
23.1.1. 清理的基础知识
23.1.2. 恢复磁盘空间
23.1.3. 更新规划器统计信息
23.1.4. 更新可见性映射
23.1.5. 防止事务 ID 回卷失败
23.1.6. 自动清理后台进程
23.2. 日常重索引
23.3. 日志文件维护

和任何数据库软件一样,PostgreSQL需要定期执行特定的任务来达到最优的性能。这里讨论的任务是必需的,但它们本质上是重复性的并且可以很容易使用cron脚本或Windows的任务计划程序等标准工具来自动进行。建立合适的脚本并检查它们是否成功运行是数据库管理员的职责。

一个显而易见的维护任务是定期创建数据的后备拷贝。如果没有一个最近的备份,你就不可能在灾难(磁盘失败、或在、错误地删除一个关键表等)后进行恢复。PostgreSQL中的备份和恢复机制在第 24 章中有详细的介绍。

另一种主要类型的维护任务是周期性地"清理"数据库。该活动在第 23.1 节中讨论。与之相关,更新将被查询规划器使用的统计信息的活动将在第 23.1.3 节中讨论。

另一项需要周期性考虑的任务是日志文件管理。这在第 23.3 节中讨论。

check_postgres可用于检测数据库的健康并报告异常情况。check_postgres与Nagios和MRTG整合在一起,但也可以被单独运行。

相对于其他数据库管理系统,PostgreSQL的维护量较低。但是,适当对这些任务加以注意将大有助于愉快和高效地使用该系统。