0Pricing
Linux Server Deployment & SSH Mastery · 课时

数据库备份与恢复策略

使用可靠的备份保护数据:转储并恢复 PostgreSQL 和 MySQL 数据库,使用 cron 自动执行备份,并理解时间点恢复,从而应对磁盘故障和误操作。

数据库备份与恢复策略 是 CoddyKit 上的免费 Linux Server Deployment & SSH Mastery 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Linux Server Deployment & SSH Mastery 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Linux Server Deployment & SSH Mastery 课程共包含 4 节课。

备份是安全的一部分

您安装了数据库、限制了访问并保护了连接。但经过加固的服务器仍然容易受到磁盘故障、意外执行 DROP TABLE 或勒索软件的影响。

备份是最后一道防线。数据库的安全程度,取决于它最近一次经过测试的备份。

逻辑备份与物理备份

主要有两种方式:

  • 逻辑备份 — 导出 SQL 语句或数据(例如 pg_dump、mysqldump)。可移植、易于阅读,但恢复速度较慢。
  • 物理备份 — 复制原始数据文件。适合超大型数据库,恢复速度快,但与服务器版本绑定。

大多数设置都会从逻辑备份开始。

转储 PostgreSQL 数据库

pg_dump 可以导出单个数据库。自定义格式(-Fc)经过压缩,并支持选择性恢复。

pg_dump -U appuser -Fc mydb > mydb_$(date +%F).dump

恢复 PostgreSQL

使用 pg_restore 恢复自定义格式的转储。对于纯 SQL 转储,则应将其通过管道传入 psql。

createdb -U appuser mydb_restored
pg_restore -U appuser -d mydb_restored mydb_2026-05-30.dump

转储和恢复 MySQL

MySQL/MariaDB 使用 mysqldump 导出,并使用 mysql 导入。默认情况下,转储内容为纯 SQL。

mysqldump -u appuser -p mydb > mydb_$(date +%F).sql
mysql -u appuser -p mydb_restored < mydb_2026-05-30.sql

备份所有数据库

要完整捕获整个服务器,两个数据库引擎都提供完整集群转储功能。这在进行重大升级或迁移之前非常有用。

pg_dumpall -U postgres > all_$(date +%F).sql
mysqldump -u root -p --all-databases > all_$(date +%F).sql

使用 Cron 自动执行

需要您记得运行的备份,最终总会被遗忘。请使用 cron 安排任务。将转储命令放入脚本中,并让它每晚运行。

# crontab -e  -> run at 02:30 every day
30 2 * * * /usr/local/bin/db_backup.sh >> /var/log/db_backup.log 2>&1

简单的备份脚本

优秀的脚本会为文件添加时间戳,并清理旧文件,避免磁盘被填满。本示例会保留 14 天的转储。

#!/bin/bash
DIR=/var/backups/db
pg_dump -U appuser -Fc mydb > $DIR/mydb_$(date +%F).dump
find $DIR -name 'mydb_*.dump' -mtime +14 -delete

异地存储

存放在同一台服务器上的备份,会随服务器一起损坏。请将转储复制到其他位置 — 对象存储、另一台主机,或两者兼用。

将 rsync 或云 CLI 作为备份脚本的最后一步。

rsync -avz /var/backups/db/ backup@remote:/srv/db_backups/
# or: aws s3 cp $DIR/mydb_$(date +%F).dump s3://my-bucket/

时间点恢复

每日转储最多会丢失一天的数据。若要实现零数据丢失或将损失降至最低,请启用持续归档(PostgreSQL 中的 WAL 归档、MySQL 中的二进制日志)。结合基础备份后,您可以恢复到任意时刻。

这是生产数据库的最高标准。

最佳实践

让备份值得信赖:

  • 定期测试恢复 — 未经测试的备份只是猜测
  • 自动执行备份任务,并监控其失败情况
  • 将副本存储在异地
  • 保留多个备份代次,而不只是最新的一份

快速检查

测试您对备份的了解。

回顾

现在,您已经拥有数据库保护策略:

  • 使用 pg_dump/mysqldump 进行逻辑转储,并使用 pg_restore/mysql 进行恢复
  • 使用完整集群转储支持迁移
  • 通过 cron 自动执行并自动清理旧备份
  • 使用异地副本和时间点恢复,将数据丢失降至最低

始终测试恢复操作 — 这将完成安全的数据库运行流程。

常见问题解答

「数据库备份与恢复策略」课时是免费的吗?

是的 — 「数据库备份与恢复策略」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Linux Server Deployment & SSH Mastery 课程的其余内容,请升级到 CoddyKit PRO。 Linux Server Deployment & SSH Mastery 课程共包含 4 节课。

「数据库备份与恢复策略」这节课中我会学到什么?

使用可靠的备份保护数据:转储并恢复 PostgreSQL 和 MySQL 数据库,使用 cron 自动执行备份,并理解时间点恢复,从而应对磁盘故障和误操作。 你通过在浏览器中直接运行的动手代码来练习 Linux Server Deployment & SSH Mastery,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Linux Server Deployment & SSH Mastery 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Linux Server Deployment & SSH Mastery 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「数据库备份与恢复策略」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Linux Server Deployment & SSH Mastery 课中编写并运行代码吗?

能。每节 Linux Server Deployment & SSH Mastery 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 安装 PostgreSQL/MySQL
  2. 数据库用户与访问控制
  3. 保护数据库连接
  4. 数据库备份与恢复策略
← 返回 Linux Server Deployment & SSH Mastery