数据库引擎的备份方法取决于具体的数据库类型(如 MySQL、PostgreSQL、SQL Server、Oracle 等),但核心思路是定期备份数据文件、日志文件或逻辑数据,并确保备份可恢复。以下是常见数据库引擎的备份方式及通用原则:
备份类型
备份策略
逻辑备份(文本格式,跨版本兼容)
使用 mysqldump 工具(适合中小型数据库):
# 备份单个数据库
mysqldump -u 用户名 -p 数据库名 > backup.sql
# 备份所有数据库
mysqldump -u 用户名 -p --all-databases > all_backup.sql
# 压缩备份(节省空间)
mysqldump -u 用户名 -p 数据库名 | gzip > backup.sql.gz
物理备份(二进制文件,速度快)
使用 Percona XtraBackup(开源,支持 InnoDB 热备份)或 MySQL Enterprise Backup:
# 全量备份
xtrabackup --backup --target-dir=/path/to/backup --user=用户名 --password=密码
# 增量备份(基于上次备份)
xtrabackup --backup --target-dir=/path/to/inc_backup --incremental-basedir=/path/to/prev_backup --user=用户名 --password=密码
二进制日志备份(用于时间点恢复)
开启 binlog(my.cnf 中配置 log-bin=mysql-bin),定期备份 binlog 文件。
逻辑备份
使用 pg_dump(单数据库)或 pg_dumpall(所有数据库):
# 备份单个数据库
pg_dump -U 用户名 数据库名 > backup.sql
# 备份所有数据库
pg_dumpall -U 用户名 > all_backup.sql
# 自定义格式(压缩+并行,支持选择性恢复)
pg_dump -U 用户名 -Fc 数据库名 > backup.dump
物理备份(连续归档+基础备份)
postgresql.conf 配置 wal_level=replica、archive_mode=on、archive_command='cp %p /path/to/archive/%f')。psql -U 用户名 -c "SELECT pg_backup_start('label', false);"
# 复制数据目录(如 /var/lib/postgresql/data)到备份位置
psql -U 用户名 -c "SELECT pg_backup_stop();"
pg_basebackup(简化物理备份):pg_basebackup -U 用户名 -D /path/to/backup -Ft -z -P
图形界面(SSMS)
右键数据库 → 任务 → 备份,选择备份类型(全量/差异/事务日志),指定路径。
T-SQL 命令
-- 全量备份
BACKUP DATABASE 数据库名 TO DISK = 'C:\backup\full.bak' WITH INIT;
-- 差异备份
BACKUP DATABASE 数据库名 TO DISK = 'C:\backup\diff.bak' WITH DIFFERENTIAL;
-- 事务日志备份(需先全量备份)
BACKUP LOG 数据库名 TO DISK = 'C:\backup\log.trn';
维护计划
通过 SSMS 的“维护计划向导”自动执行定期备份。
RMAN(Recovery Manager,官方工具)
# 连接数据库
rman target /
# 全量备份
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
# 增量备份(级别0=全量,级别1=增量)
RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;
# 备份控制文件
RMAN> BACKUP CURRENT CONTROLFILE;
逻辑备份(Data Pump)
使用 expdp(导出)和 impdp(导入):
expdp 用户名/密码 DIRECTORY=备份目录 DUMPFILE=backup.dmp SCHEMAS=模式名
mongodump(逻辑备份)
# 备份所有数据库
mongodump --uri="mongodb://用户名:密码@主机:端口/" -o /path/to/backup
# 备份单个数据库
mongodump --uri="mongodb://用户名:密码@主机:端口/数据库名" -o /path/to/backup
物理备份(复制数据目录)
需先停止 MongoDB 或锁定数据库(不推荐生产环境),复制 dbPath(如 /var/lib/mongodb)目录。
SELECT、BACKUP DATABASE 等)。gpg、数据库自带加密功能)。定期执行恢复演练,验证备份有效性:
mysql -u 用户名 -p 数据库名 < backup.sqlpsql -U 用户名 数据库名 < backup.sql 或 pg_restore -U 用户名 -d 数据库名 backup.dumpRESTORE 命令。根据数据库类型、规模和业务需求选择合适的备份方式,建议结合全量+增量+日志备份,并自动化备份流程(如用 cron、Windows 任务计划或数据库自带调度工具)。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。