系统运行中 增量备份 与整体备份
例:每周日整体备份一次,周一到周六备份当天
如果周五出了问题 可以使用周日的整体加上 周一周二周三周四来恢复
备份工具
第三方的收费备份工作
目前我们所学的是系统自带的备份功能
1导出一个库下面的某些表
mysqldump -u用户名 -p密码 库名 表1 表2 表3 >地址/备份文件名称
导出的是 建表语句以及 insert语句
2 导出一个库下面的所有表
mysqldump -u用户名 -p密码 库名 > 地址/备份文件名称
3.如何 以库 为单位导出
mysqldump -u用户名 -p密码 -B 库1 库2 库3 > 地址/备份文件名称 (相比于2多了建库的操作)
4.如何导出所有库
mysqldump -u用户名 -p密码 -A >地址/备份文件名称
恢复:
1.登录到mysql命令行
对于库级别的备份文件
MYSQL>source 备份文件地址
对于表级别的备份文件
Mysql> use 库名
Mysql> source 备份文件地址
2.不登录到mysql命令行
库级别的恢复
mysql -u用户名 -p密码 < 备份文件地址
表级别的恢复
mysql -u用户名 -p密码 库名 <备份文件地址
---------------------------------------------------------------------------------------------------------
线上环境
每周日执行一次全量备份,然后每天下午1点执行MySQLdump增量备份.
详细说明
1.mysqldump 增量备份配置
执行增量备份的前提条件是MYSQL 打开binlog 日志功能,在my.cnf 中加入
log-bin=/opt/Data/Mysql-bin (打开并且记录binlog日志的位置) 一般建议放在不同于MYSQL数据目录的磁盘上
mysqldump > 导出数据
mysql < 导入或者恢复数据 (或者使用source 命令导入数据,导入前要先切换到对应库下)
注意一个细节:
若是mysqldump导出一个库的数据,导出文件为a.sql,然后mysql导入这个数据到新的空库下。
如果新库名和老库名不一致,那么需要将a.sql文件里的老库名改为新库名,
这样才能顺利使用mysql命令导入数据(如果使用
source
命令导入就不需要修改a.sql文件了)。
2.mysqldump 增量备份
假定星期日下午1点执行全量备份,适用于MyISAM 存储引擎
mysqldump --lock-all-tables --flush-logs --master-data=2 -uroot -p test > backup.sql
INNODB 存储引擎将 --lock-all-tables 替换为 --single-transaction
--flush-logs 为结束当前日志,生成新日志文件
--master-data=2 选项将会在输出sql中记录下完全备份后新日志文件的名称
用于日后恢复时参考,例如输出的备份SQL文件中含有
CHANGE MASTER TO MASTER_LOG_FILE=’MySQL-bin.000002′, MASTER_LOG_POS=106;
3.mysqldump 增量备份其他说明
如果mysqldump加上 --delete-master-logs