centos虚拟机如何备份数据库
在CentOS虚拟机上备份数据库,可根据数据库类型选择工具,以下是常用方法及步骤:
一、备份MySQL数据库
1. 使用mysqldump工具(推荐)
-
安装工具:
确保已安装MySQL(含mysqldump
),若未安装可执行:
sudo yum install mysql-server
。 -
手动备份:
执行命令生成SQL备份文件(替换用户名
、密码
、数据库名
及路径):
mysqldump -u 用户名 -p密码 数据库名 > /路径/备份文件.sql
示例:备份所有数据库:
mysqldump -u root -p --all-databases > /home/backup/all_dbs.sql
。 -
压缩备份:
结合gzip
节省空间:
mysqldump -u 用户名 -p密码 数据库名 | gzip > /路径/备份文件.sql.gz
。 -
自动化备份:
编写脚本(如/home/backup/mysql_backup.sh
)并添加定时任务:#!/bin/bash BACKUP_DIR="/home/backup/mysql" TIMESTAMP=$(date +%Y%m%d%H%M%S) mysqldump -u root -p密码 数据库名 > $BACKUP_DIR/db_$TIMESTAMP.sql gzip $BACKUP_DIR/db_$TIMESTAMP.sql find $BACKUP_DIR -type f -name "*.sql" -mtime +7 -exec rm {} \; # 删除7天前备份
添加到
crontab
(每天凌晨2点执行):
0 2 * * * /bin/bash /home/backup/mysql_backup.sh
。
2. 使用xtrabackup(热备份,适合大型数据库)
- 适用于InnoDB引擎,支持在线备份,需安装
xtrabackup
工具,命令示例:
xtrabackup --backup --user=root --password=密码 --target-dir=/路径/backup
。
二、备份MongoDB数据库
1. 使用mongodump工具
-
安装工具:
sudo yum install -y mongodb-org-tools
。 -
手动备份:
执行命令生成BSON格式备份(替换路径和认证信息):
mongodump --out /路径/备份目录 --host=主机地址 --port=端口 --username=用户名 --password=密码
示例:备份到指定目录:
mongodump --out /home/backup/mongodb/$(date +%Y%m%d%H%M%S)
。 -
自动化备份:
编写脚本并添加crontab
定时任务(如每天凌晨2点执行):#!/bin/bash BACKUP_DIR="/home/backup/mongodb/$(date +%Y%m%d%H%M%S)" mongodump --out $BACKUP_DIR --username=用户名 --password=密码 tar -zcvf $BACKUP_DIR.tar.gz $BACKUP_DIR find /home/backup/mongodb -type f -name "*.tar.gz" -mtime +7 -exec rm {} \; ```。
三、通用注意事项
-
权限与安全:
- 确保备份用户有足够权限(如MySQL的
SELECT
权限、MongoDB的read
权限)。 - 敏感信息(如密码)可通过配置文件或环境变量管理,避免硬编码在脚本中。
- 确保备份用户有足够权限(如MySQL的
-
存储与验证:
- 定期将备份文件传输到远程服务器或云存储(如
scp
/rsync
)。 - 测试备份文件的可恢复性,确保数据完整。
- 定期将备份文件传输到远程服务器或云存储(如
-
清理过期备份:
在脚本中添加逻辑,删除超过保留期限(如7天)的备份文件,避免占用磁盘空间。
根据实际需求选择工具,优先使用官方推荐的mysqldump
(MySQL)和mongodump
(MongoDB),并务必通过crontab
实现自动化备份。