mysql备份策略
2015-09-25 13:03
573 查看
1.备份的种类
完全备份,就是备份整个数据库对象事务日志备份, 备份事务日志记录上一次的数据库改变
增量备份,也叫差异备份
文件备份
2.备份方式
逻辑备份, 既备份sql语句,使用mysql自带的mysqldump工具进行备份。备份成sql文件形式物理备份, 备份数据库文件
两种备份方式的比较:参考MYSQL自动备份策略的选择与实践
3.备份工具
1.mysqldump
mysqldump是mysql自带的备份工具,属于逻辑备份支持innodb的热备份,备份速度慢,适用于备份数据量小的场景。
对myisam存储引擎的表,只能使用温备份,这个时候要防止数据的写入,所以先加上读锁, --lock-all-tables
mysqldump --databases test --lock-all-tables --flush-logs > /tmp/backup_test_`date+%F-%H-%M`.sql
innodb存储引擎表,可以热备,不必对数据库进行加锁的操作,加一个选项可以进行热备份,--single-transaction
mysqldump --databases test --single-transaction --flush-logs--master-data=2> /tmp/backup_test_`date +%F-%H-%M`.sql
更多mysqldump命令,参考MySQL备份命令mysqldump参数说明与示例
2.基于LVM快照备份
物理备份方式基于文件系统的物理备份(LVM的快照)
tar之类的命令对整个数据库目录进行打包备份
备份的流程都是遵循以下:
开启窗口1,临时锁所有表, mysql> flush tables with read lock; 可以在mysql中使用 show master status; 查看状态, 注意这个窗口不能关闭,直到所有备份完成之后才能关闭
开启窗口2,tar备份数据库文件, tar -zcvf mysqla1.tar.gz mydata
备份完成,切换窗口1进行解锁, mysql> unlocktables;
更多参考:MySQL 数据库备份种类以及常用备份工具汇总
4.个人方案
每晚凌晨3点mysqldump备份数据库#加入定时计划 * 03 * * * /root/mytools/mysqlback.sh
脚本如下:
DB_NAME="res" DB_USER="root" DB_PASS="****" BIN_DIR="/usr/bin/" # mysqldump命令所在路径 BACK_DIR="/data/backdata" # 备份工具的路径 DATE="mysql-`date +'%Y%m%d-%H:%M:%S'`" LogFile="$BACK_DIR"/dbbakup.log # 日志记录保存的目录 BackNewFile=$DATE.sql $BIN_DIR/mysqldump --opt --force -u$DB_USER -p$DB_PASS $DB_NAME > $BACK_DIR/$DATE.sql echo -----------------------"$(date +"%y-%m-%d %H:%M:%S")"----------------------- >> $LogFile echo createFile:"$BackNewFile" >> $LogFile #-ctime表示创建时间,这里表示删除创建时间为多少天之前的文件,也就是结果只保留多少天的数据 find "/data/backdata/" -ctime +7 -type f -name "*.sql" -print > deleted.txt echo -e "delete files:\n" >> $LogFile #循环删除匹配到的文件 cat deleted.txt | while read LINE do rm -rf $LINE echo $LINE>> $LogFile done echo "---------------------------------------------------------------" >> $LogFile
相关文章推荐
- MySQL索引原理及慢查询优化
- 100%成功 mysql高版本导入低版本数据库
- 我的mysql学习心得
- 高性能mysql(二) 高性能索引
- mysql-模拟全连接处理
- lnmp下如何关闭Mysql日志保护磁盘空间
- mysql 事物小测试
- mysql合理配置连接池数量
- mysql触发器实践
- RMySQL
- MySQL去除列行首空格的方法
- mysql 常用配置
- wamp修改mysql密码
- mysql行列转换示例
- MySQLdb安装
- MySQL的btree索引和hash索引的区别
- mysqldump之不老将
- MySQL Count()函数
- 同机安装多个MySQL版本-MySQL 5.7源码安装流程详解
- C#连接MySql