Mysql 常用管理SQL语句(学习笔记五)

Mysql 常用管理SQL语句(学习笔记五)
Mysql 常用管理SQL语句(学习笔记五)
Mysql 常用管理SQL语句(学习笔记五)
Mysql 常用管理SQL语句(学习笔记五)
Mysql 常用管理SQL语句(学习笔记五)
Mysql 常用管理SQL语句(学习笔记五)
Mysql 常用管理SQL语句(学习笔记五)


XTRABACKUP备份恢复

常用工具及用法 - xtrabackup

特点: 

* 开源,在线备份InnoDB表 

* 支持限速备份,避免对业务造成影响 

* 支持流备 

* 支持增量备份 

* 支持备份文件压缩与加密 

* 支持并行备份与恢复,速度快

xtrabackup备份原理

基于InnoDB的crash-recovery功能

备份期间允许用户读写,写请求产生redo日志

从磁盘上拷贝数据文件

从InnoDB redo log file实时拷贝走备份期间产生的所有redo日志

恢复的时候 数据文件 + redo日志 = 一致性数据

实用脚本innobackupex

开源Perl脚本,封装调用xtrabackup及一系列相关工具与OS操作,最终完成备份过程

支持备份InnoDB和其他引擎的表

备份一致性保证

innobackupex备份基本流程

start xtrabackup_log -> copy .ibd; ibdata1 -> FLUSH TABLE WITH READ LOCK -> copy .FRM; MYD; MYI; misc files -> Get binary log position -> UNLOCK TABLES -> stop and copy xtrabackup_log

innobackupex使用

主要示例:

全量备份

innobackupex --user=root --password=123456--defaults-file=/etc/mysql/my.cnf /dbbackup

1

增量备份

innobackupex --user=root --password=123456--defaults-file=/etc/mysql/my.cnf --incremental --incremental-dir /dbbackup/2016-4-3_13:24:32/dbbackup

1

流方式备份

innobackupex --user=root --password=123456--defaults-file=/etc/mysql/my.cnf --stream=xbstream /dbbackup/ > /dbbackup/stream.bak

1

并行备份

innobackupex --user=root --password=123456--defaults-file=/etc/mysql/my.cnf --parallel=4/dbbackup/

1

限流备份

innobackupex --user=root --password=123456--defaults-file=/etc/mysql/my.cnf --throttle=10/dbbackup/

1

压缩备份

innobackupex --user=root --password=123456--defaults-file=/etc/mysql/my.cnf --compress --compress-thread4/dbbackup/

1

如何制定备份策略

需要考虑的因素

数据库是不是都是innodb引擎表 -> 备份方式,热备or冷备

数据量大小 -> 逻辑备份or物理备份,全量or增量

数据库本地磁盘空间十分充足 -> 备份到本地or远程

需要多块恢复 -> 备份频率 小时or天