三毛笔记

MySQL备份与恢复

备份

mysqldump

是逻辑备份工具,备份的是SQL语句。

备份方式:

备份参数:

备份单表或多表:mysqldump database_name table1 table2 > /backup/tab.sql

加不加-B参数的区别:

备份高级参数:

每天全备:

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

Percona Xtrabackup(XBK)

是物理备份工具,支持全备和增量备份。有两个主要的工具:xtrabackup、innobackupex

InnoDB表:
热备份:业务正常发生时,影响较小的备份方式

非InnoDB表:
温备份:锁表备份

再次统计LSN,写入到专用文件,记录二进制日志位置,所有备份文件统一存放在一个目录下。

全量备份

命令:

innobackupex --no-timestamp /data/xbk/full_`date +%F`

--no-timestamp:表示不创建时间戳目录来存储备份,而是指定备份文件夹

全备恢复:

增量备份

增量备份无法单独恢复,必须依赖于全备进行恢复,所有增量必须要按顺序合并到全备中。

增量备份命令: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:

恢复binlog:

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »