是逻辑备份工具,备份的是SQL语句。
备份方式:
备份参数:
备份单表或多表:mysqldump database_name table1 table2 > /backup/tab.sql
加不加-B参数的区别:
备份高级参数:
--master-data,功能:
备份时自动记录binlog信息
自动锁表和解锁
配合--single-transaction可以减少锁表时间
--master-data=1会将change master语句写入dump文件中,--master-data=2会将change master 语句写入dump文件中,但是会被注释掉
-R:备份存储过程和函数
-E:备份事件
--triggers:备份触发器
--max_allowed_packet=128M:控制备份时传输数据包大小
每天全备:
mysqldump -A --master-data=2 --single-transaction -R -E --triggers --max_allowed_packet=64M > /backup/full_`date +%F`.sql
mysqldump小结:
从mysqldump全备中获取库和表备份:
# 获得表结构 sed -e'/./{H;$!d;}' -e 'x;/CREATE TABLE `city`/!d;q' full.sql >createtable.sql # 获得INSERT INTO语句 grep -i 'INSERT INTO `city`' full.sqll >data.sql & # 获取单库备份 sed -n '/^-- Current Database: `world`/,/^-- Current Database: `/p' all.sql >world.sql
是物理备份工具,支持全备和增量备份。有两个主要的工具:xtrabackup、innobackupex
InnoDB表: 热备份:业务正常发生时,影响较小的备份方式
非InnoDB表: 温备份:锁表备份
再次统计LSN,写入到专用文件,记录二进制日志位置,所有备份文件统一存放在一个目录下。
命令:
innobackupex --no-timestamp /data/xbk/full_`date +%F`
--no-timestamp:表示不创建时间戳目录来存储备份,而是指定备份文件夹
全备恢复:
innobackupex --apply-log /data/xbk/full_*/,redo前滚,undo回滚,模拟CSR过程cp -a /data/xbk/full_*/* /data/3306/,前提是被恢复目录/data/3306/为空,被恢复数据库实例是关闭增量备份无法单独恢复,必须依赖于全备进行恢复,所有增量必须要按顺序合并到全备中。
增量备份命令:innobackupex --no-timestamp --incremental --incremental-basedir=/backup/full /backup/inc1
--incremental-basedir:增量备份基目录(上次全量备份路径)
恢复过程,备份整理(apply-log)+ 合并备份(full+inc1+inc2):
截取binlog并恢复:
source命令执行sql脚本优点:可支持大文件。
恢复全备:source /backup/full.sql
截取binlog:
grep "\-- CHANGE MASTER TO" /backup/tab.sql恢复binlog:
本文作者:a
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!