在Linux怎么备份数据库
在Linux怎么备份数据库详细介绍
在 Linux 系统中备份数据库的方法取决于你使用的数据库类型,以下是主流数据库的常见备份方式及操作示例:
一、MySQL / MariaDB 备份
MySQL 通常使用 mysqldump 工具进行逻辑备份(导出 SQL 脚本),支持全库、单库或单表备份。
1. 基础全库备份
bash
mysqldump root 数据库名1 数据库名2 /备份路径/all_dbs_ +%F.sql
-u root:指定数据库用户(需有备份权限)。-p:提示输入密码(建议不在命令行明文写密码)。--databases:指定要备份的多个数据库(若省略则备份当前用户默认数据库)。$(date +%F):生成当前日期(如2024-10-01),避免覆盖旧备份。
2. 单表备份
bash
mysqldump root 数据库名 表名1 表名2 /备份路径/table_backup.sql
3. 压缩备份(节省空间)
bash
mysqldump root 数据库名 /备份路径/db_backup_ +%F.sql.gz
注意事项
- 备份文件本质是 SQL 脚本,可通过
mysql -u root -p 数据库名 < 备份文件.sql恢复。 - 生产环境建议在业务低峰期执行备份,避免锁表影响性能(可添加
--single-transaction选项支持 InnoDB 无锁备份)。
二、PostgreSQL 备份
PostgreSQL 使用 pg_dump 工具(逻辑备份)或 pg_basebackup(物理备份,适用于流复制)。
1. 逻辑备份(单库)
bash
pg_dump postgres 数据库名 /备份路径/pg_backup_ +%F.sql
-U postgres:指定数据库用户(默认超级用户)。-d 数据库名:要备份的数据库(必填)。- 若需压缩,可添加
| gzip > 备份文件.sql.gz。
2. 物理备份(全实例,需启用归档)
bash
pg_basebackup /备份路径/pg_physical_backup postgres stream
-D:指定备份存储路径。-X stream:生成 WAL 日志流(用于恢复到任意时间点)。- 恢复时需将备份文件复制到
data目录,并配置recovery.conf。
三、MongoDB 备份
MongoDB 使用 mongodump 工具(逻辑备份,导出 BSON 格式文件)。
1. 全库备份
bash
mongodump /备份路径/mongo_backup_ +%F
--uri:指定连接字符串(包含认证信息)。--out:备份文件存储路径(会生成以数据库名命名的子目录)。
2. 单集合备份
bash
mongodump 集合名 /备份路径
恢复方法
使用 mongorestore 命令导入备份:
bash
mongorestore /备份路径/数据库名
四、通用建议
- 定期自动化:通过
cron定时任务实现每日 / 每周备份(例如0 2 * * * /usr/bin/mysqldump ...)。 - 异地存储:备份文件应复制到独立存储(如 NAS、云存储),避免本地磁盘损坏导致数据丢失。
- 验证备份:定期测试恢复流程,确保备份文件可用。
- 权限控制:备份工具需使用专用数据库用户(仅授予备份权限),避免权限过大。
根据你的数据库类型选择对应方法,实际操作中可结合业务需求调整参数(如压缩、增量备份等)。