🗣 Wd提问: MySQL备份工具
🤖 Ai回答: MySQL备份工具详解
1、内置工具
mysqldump(最常用)
bash
基本备份
mysqldump -u username -p database_name backup.sql
备份所有数据库
mysqldump -u username -p all-databases all_backup.sql
带压缩的备份
mysqldump -u username -p database_name | gzip backup.sql.gz
只备份表结构
mysqldump -u username -p no-data database_name schema.sql
只备份数据
mysqldump -u username -p no-create-info database_name data.sql
备份特定表
mysqldump -u username -p database_name table1 table2 tables_backup.sql
增量备份参数
mysqldump -u username -p single-transaction routines triggers database_name incremental_backup.sql
mysqlhotcopy(已废弃,但了解其原理)
bash
热备份(仅适用于MyISAM引擎)
mysqlhotcopy database_name /path/to/backup/directory
mysqlpump(MySQL 5.7+)
bash
并发备份多个数据库
mysqlpump -u username -p databases db1 db2 parallel-workers=4 parallel_backup.sql
按表并行备份
mysqlpump -u username -p tables table1 table2 parallel-workers=2 table_backup.sql
2、第三方工具
Percona XtraBackup(推荐)
bash
全量备份
xtrabackup user=username password=password backup target-dir=/path/to/backup
准备备份
xtrabackup prepare target-dir=/path/to/backup
恢复备份
1、停止MySQL服务
sudo systemctl stop mysql
2、删除数据目录
sudo rm -rf /var/lib/mysql/*
3、恢复数据
xtrabackup copy-back target-dir=/path/to/backup
4、设置权限
sudo chown -R mysql:mysql /var/lib/mysql
5、启动MySQL
sudo systemctl start mysql
MyDumper(高性能)
bash
安装
wget https://github.com/maxbube/mydumper/releases/download/v0.14.1/mydumper-0.14.1-linux-x86_64.tar.gz
tar xzf mydumper-0.14.1-linux-x86_64.tar.gz
备份所有数据库
mydumper -u username -p password -h hostname -P port threads=8 compress outputdir=/path/to/backup
备份单个数据库
mydumper -u username -p password -h hostname -P port database=database_name threads=4 compress outputdir=/path/to/backup
恢复
myloader -u username -p password -h hostname -P port directory=/path/to/backup threads=4
3、自动化脚本示例
基础备份脚本
bash
!/bin/bash
mysql_backup.sh
配置变量
DB_USER=backup_user
DB_PASS=password
DB_HOST=localhost
BACKUP_DIR=/backup/mysql
DATE=$(date +%Y%m%d_%H%M%S)
RETENTION_DAYS=7
创建备份目录
mkdir -p $BACKUP_DIR
执行备份
mysqldump -h $DB_HOST -u $DB_USER -p$DB_PASS all-databases \
single-transaction routines triggers \
set-gtid-purged=OFF $BACKUP_DIR/backup_$DATE.sql
压缩备份文件
gzip $BACKUP_DIR/backup_$DATE.sql
清理旧备份
find $BACKUP_DIR -name backup_*.sql.gz -mtime +$RETENTION_DAYS -delete
echo Backup completed at $(date)
增量备份脚本
bash
!/bin/bash
incremental_backup.sh
DB_USER=backup_user
DB_PASS=password
BACKUP_DIR=/backup/mysql
BASE_BACKUP_DIR=$BACKUP_DIR/base
INC_BACKUP_DIR=$BACKUP_DIR/incremental
创建基础备份
if [ ! -f $BASE_BACKUP_DIR/latest.sql.gz ]; then
mysqldump -h localhost -u $DB_USER -p$DB_PASS all-databases \
single-transaction routines triggers \
set-gtid-purged=OFF | gzip $BASE_BACKUP_DIR/latest.sql.gz
fi
创建增量备份
LAST_BACKUP=$(ls -t $INC_BACKUP_DIR/*.sql.gz 2/dev/null | head -1)
if [ -n $LAST_BACKUP ]; then
使用二进制日志进行增量备份
echo Incremental backup based on $LAST_BACKUP
else
echo No previous backup found, creating full backup
fi
4、高级配置选项
mysqldump高级选项
bash
完整备份命令
mysqldump -h localhost -u root -p \
single-transaction \
routines \
triggers \
events \
set-gtid-purged=OFF \
master-data=2 \
flush-logs \
compress \
opt \
hex-blob \
default-character-set=utf8mb4 \
database_name backup.sql
配置文件方式
ini
~/.my.cnf
[client]
user=backup_user
password=backup_password
host=localhost
[mysqldump]
single-transaction=true
routines=true
triggers=true
events=true
set-gtid-purged=OFF
5、监控和验证
备份验证脚本
bash
!/bin/bash
verify_backup.sh
BACKUP_FILE=/backup/mysql/backup_$(date +%Y%m%d).sql.gz
LOG_FILE=/var/log/mysql_backup.log
验证备份文件完整性
if [ -f $BACKUP_FILE ]; then
echo $(date): Verifying backup file..、 $LOG_FILE
gunzip -t $BACKUP_FILE 2 $LOG_FILE && echo Backup verification successful echo Backup verification failed
检查文件大小
FILE_SIZE=$(stat -c%s $BACKUP_FILE)
if [ $FILE_SIZE -gt 1024 ]; then
echo Backup size: $(($FILE_SIZE/1024)) KB $LOG_FILE
fi
else
echo $(date): Backup file not found! $LOG_FILE
fi
6、最佳实践
备份策略建议
1、全量备份:每周一次
2、增量备份:每日一次
3、二进制日志:实时备份
4、异地备份:重要数据异地存储
安全考虑
bash
设置正确的文件权限
chmod 600 /path/to/backup/*.sql
chmod 600 /path/to/backup/*.sql.gz
使用SSH隧道加密传输
ssh user@remote-server mysqldump -u user -p database | gzip backup.sql.gz
性能优化
bash
备份时限制资源使用
mysqldump -u user -p max_allowed_packet=64M net_buffer_length=16K database backup.sql
使用管道减少内存使用
mysqldump -u user -p database | pv | gzip backup.sql.gz
这些工具和方法可以根据具体需求选择使用,建议结合多种工具形成完整的备份策略。
📣 商家广告 :
👍
0
👎
IP地址: 55.240.18.135
搜索次数: 0
提问时间: 2025-11-06 02:11:27
🛒 域名购买 :
827.net.cn sjtp.cn jc9.com.cn vj.gs 67.gs 05.gold souru.com.cn rq.gs kingwarchina.com ww.fj.cn
❓️ 热门提问 :
域名注册比较 热门关键词搜索引擎优化工具效果预测 net.gl域名 360搜索首页引擎 机柜顶部毛刷 香港在哪里啊 pfizer域名 科创静音机柜 云服务器免费推荐 高端网站建设设计公司 豌豆Ai站群搜索引擎系统
🌐 域名评估 :
dgnm.cn jdwx.cn ii.qh.cn su.ln.cn ee.js.cn 65.com.hk uskm.cn 778.net.cn evfair.ltd xphone.city
⛏ 最新挖掘 :
凯里酸汤鱼 贵阳烤脑花 都匀毛尖茶 花溪牛肉粉 贵阳烤生蚝 贵阳烤豆腐 贵阳纸包鱼 贵阳特色菜
🖌 热门作画 :
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊 :
🔗 友情链接 :
全球搜索引擎
贵阳ERP软件
ai提问
🧰 站长工具 :Ai工具 whois查询 搜索
📢 温馨提示 :本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持 :本站由豌豆Ai 提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。