我有一个包含许多数据库的服务器......它包含大约 20 个数据库。其中一些有 1600 万行,但没有那么多。晚上通常很少或没有活动,但白天不会那么忙(除非有活动,例如新注册或会员更新)。虽然不忙,但数据库包含关键数据。没有一个数据库已经备份了一年多!
我怎样才能安全地备份它们而不使服务器崩溃?我需要什么作为早期要求?我已经阅读了许多备份策略,但我只是过于谨慎,因为我不想做愚蠢的事情。我想开发最安全的备份方法并“轻松”恢复。
目前,我已经激活存档并且它已经很好地工作了。
欢迎任何建议,或者也许有我应该阅读的文章。
我的环境:在 Ubuntu 20 上运行的 Postgres 12
谢谢
当数据库损坏、损坏或变得不可用时,根本没有备份会导致更多的挫败感。
这是一个非常简单的计算:
无备份
备份
pg_basebackup
pg_basebackup
以下是PostgreSQL 附带的工具的摘录:(强调我的)
pg_basebackup (PostgreSQL 12 文档
进行基本备份
配置完所有内容后(阅读整个文档),您可以使用以下命令执行基本备份:
这可以在交互式 bash 提示符下使用。设置 crontab 作业时,您必须创建一个
.pgpass
文件。这将允许您将命令作为 crontab 作业运行,而无需输入密码。请阅读33.15。密码文件(PostgreSQL 文档)了解更多详细信息。
持续 WAL 归档
第25.3 条。连续存档和时间点恢复 (PITR)包含有关如何存档 PostgreSQL 创建的 WAL(预写日志)文件的信息。将 PostgreSQL 集群恢复到某个时间点需要这些文件。
然后,您只需将
WAL
目录的内容复制到您选择的目标位置或备份这些文件,并在旧文件备份到安全位置后删除旧文件。一般建议
阅读官方 PostgreSQL 文档中的第 25 章备份和恢复部分。如果您无法理解如何实施备份策略,请联系可以支持您实施解决方案的顾问。没有什么比没有数据库备份更糟糕的了。
拥有基本备份将部分覆盖您。如果您可以每天运行它,那么您就成功了一半。但如果这不可行,那么您至少必须设置 WAL 归档。