本文目录导读:

备份数据库的方法取决于你使用的数据库类型(如 MySQL、PostgreSQL、MongoDB 等)以及你的具体需求(如全量备份、增量备份、实时同步),以下是针对主流数据库的常见备份工具和操作步骤。
MySQL 备份
使用官方工具 mysqldump(逻辑备份)
-
适用场景:中小规模数据库、需要跨版本迁移、备份表结构。
-
命令示例:
# 备份单个数据库到文件 mysqldump -u root -p your_database_name > backup.sql # 压缩备份 mysqldump -u root -p your_database_name | gzip > backup.sql.gz # 备份所有数据库 mysqldump -u root -p --all-databases > all_databases.sql # 恢复数据库 mysql -u root -p your_database_name < backup.sql
使用物理备份工具 XtraBackup(Percona)
-
适用场景:大数据量、需要在备份期间不锁表、支持增量备份。
-
安装:
apt install percona-xtrabackup(Ubuntu)。 -
命令示例:
# 全量备份 xtrabackup --backup --target-dir=/backup/mysql/full # 准备备份(使备份可恢复) xtrabackup --prepare --target-dir=/backup/mysql/full # 增量备份(基于上一全量) xtrabackup --backup --target-dir=/backup/mysql/inc1 --incremental-basedir=/backup/mysql/full
使用云服务或控制面板
- 如果使用 AWS RDS,可直接在 AWS 控制台创建手动快照,或启用自动备份。
- 如果是通过 phpMyAdmin、MySQL Workbench 等图形界面,点击“导出”按钮即可。
PostgreSQL 备份
使用 pg_dump(逻辑备份)
# 备份单个数据库(自定义格式,压缩且灵活) pg_dump -U postgres -F c your_db > backup.dump # 恢复(使用 pg_restore) pg_restore -U postgres -d your_db backup.dump # 备份为纯文本 SQL pg_dump -U postgres your_db > backup.sql
使用 pg_basebackup(物理备份,适合流复制)
pg_basebackup -D /backup/pgsql -Fp -Xs -P -U replicator -h localhost
使用 pg_dumpall 备份所有数据库
pg_dumpall -U postgres > all_dbs.sql
MongoDB 备份
使用 mongodump(逻辑备份,BSON 格式)
# 备份所有数据库 mongodump --out /backup/mongo/ # 备份特定数据库 mongodump --db your_db --out /backup/mongo/ # 恢复 mongorestore /backup/mongo/
使用 mongosh 直接导出 JSON(适合部分数据)
// 在 mongosh 中 use your_db db.your_collection.find().toArray() // 然后用 shell 重导向至文件
使用 Atlas(云服务)
在 MongoDB Atlas 中,直接启用“Cloud Backup”即可,支持时间点恢复。
通用工具与方案
使用 pgdump(Linux 下通用压缩打包)
# 对 MySQL 的 .sql 文件或 PostgreSQL 的 .dump 文件进行压缩 tar -czvf db_backup_$(date +%Y%m%d).tar.gz /path/to/backup/directory
使用 rsync 或 scp 远程备份
# 本地备份后远程同步 rsync -avz /backup/ user@remote_host:/remote_backup/
使用自动化工具(cron + 脚本)
创建 /usr/local/bin/backup_db.sh:
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
mysqldump -u root -p'yourpassword' your_db | gzip > /backup/${DATE}_backup.sql.gz
# 可选:删除7天前的备份
find /backup -name "*.sql.gz" -mtime +7 -delete
然后设置 cron 任务:
crontab -e # 每天凌晨2点执行 0 2 * * * /usr/local/bin/backup_db.sh
备份注意事项
- 权限控制:确保备份文件只对
root或backup用户可读。 - 存储位置:不要和数据库放在同一台机器或磁盘,最好上传到对象存储(如 AWS S3、阿里云 OSS)。
- 校验完整性:恢复操作前先测试备份文件是否可用(使用
--verify或手动恢复到一个测试库)。 - 备份频率:核心业务考虑每小时一次增量 + 每日一次全量。
常见场景推荐
| 数据库类型 | 推荐工具 | 说明 |
|---|---|---|
| MySQL 小型 | mysqldump |
简单、通用 |
| MySQL 大型 | XtraBackup |
不锁表、支持增量 |
| PostgreSQL | pg_dump + cron |
灵活、支持压缩 |
| MongoDB | mongodump |
BSON 格式,恢复快 |
| 所有数据库 | 云服务提供的自动备份 | 无需维护,但需付费 |
如果你具体使用某种数据库,可以告诉我,我可以提供更精确的备份脚本或配置。
标签: 数据库备份
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播