如何不把 DBA/DBRE 工作搞砸

本页目录

以下规则非常简单 (但由于组织原因,实施起来往往不那么简单)。

这对在快速成长的初创公司中负责数据库的人会有所帮助,其中一些建议也适用于大公司的 DBA/DBRE。

1) 确保备份系统可靠

  1. 不要使用 pg_dump 作为备份工具 — 而是使用支持 PITR (例如 pgBackRest,WAL-G) 的系统。如果使用的是托管解决方案,请详细了解备份系统是如何组织的 — 不要盲目相信。

  2. 了解 RPO 和 RTO,测量实际值并定义目标值。使用监控系统覆盖这些值 (例如,archive_command 滞后应被视为最高优先级的事件)。

  3. 测试备份。这是最关键的部分。未经测试的备份是"薛定谔的备份" — 任何备份的状态在尝试恢复之前都是未知的。自动化测试。

  4. 局部恢复的自动化和加速:在某些情况下,需要恢复手动删除的数据,而不是整个数据库。在这种情况下,考虑以下选项以加快恢复速度:(a) 特殊的延迟备库;(b) 频繁的云快照 + PITR;(c) 使用 DBLab,每小时快照 + 克隆上的 PITR。

  5. 其他需要涵盖的主题:适当的加密选项、保留策略,将老的备份移动到"冷存储"以节省成本、次要存储位置,位于不同云中,并限制访问。

毫无疑问,备份是数据库管理中最重要的话题。在这个方面遇到麻烦是任何 DBA 的噩梦。请对备份保持高度关注,学习他人的经验教训,而不是自己的。

可靠的备份系统也许是一些组织选择托管 Postgres 服务的最大原因之一。但仍然:不要盲目相信 — 仔细研究所有细节,并自行测试。

2) 数据损坏控制

  1. 启用数据校验和。
  2. 谨慎进行操作系统或 glibc 升级 — 避免索引损坏。
  3. 使用 amcheck 来检测索引、堆和序列。
  4. 设置警报,快速响应 Postgres 日志中的错误代码 XX000、XX001、XX002 (PostgreSQL Error Codes)
  5. 数据损坏有很多种类型 — 覆盖基础部分,然后继续学习并实施更好的控制和预防措施。(关于该主题的一组好材料:PostgreSQL Data Corruption and Bugs – Runbook)

3) 高可用

4) 性能

5) 学习他人的错误

讨论与补充

在 GitHub 查看讨论

支持作者

感谢支持 PostgreSQL Howto 的长期维护。

微信赞赏码

读者交流群

二维码若已过期,可通过公众号 PostgreSQL 学徒或邮件联系。

PostgreSQL 学徒读者交流群二维码