Mysql数据库的备份与恢复

       日常工作生活中,提到备份与恢复,人们往往会想到,将对于电脑中比较重要的文件copy一份,系统奔溃后,再将备份数据copy回来。其实数据库的备份恢复也是这个样子。

       我常常挂在嘴边的,“人在数据在,人不在数据依然在。”

       言归正传,先谈下数据的备份方式.

1.逻辑备份

逻辑备份是备份sql语句,在恢复的时候执行备份的sql语句实现数据库数据的重现。

逻辑备份工具:

mysqldump

mydumper


2.物理备份

物理备份就是备份数据文件了,比较形象点就是cp下数据文件,但真正备份的时候自然不是的cp这么简单。

物理备份工具:

copy

xtrabackup


3.备份工具的优缺点

拿到工具之后,下一步应该就是如何使用啦,怎么用,上网找找资料看看吧,这里就谢谢工具的优缺点。

mysqldump  VS mydumper

mysqldump是mysql官方自带的备份工具,是一个很好用的mysql数据转移工具,具有兼容强强、跨版本等特点。

mydumper是一个针对MySQL的高性能多线程备份和恢复工具,它提供了并发备份功能,备份效率有很大提高,并且按照单表进行备份,表恢复更加方便。

  mydumper主要特性有:

       • 轻量级C语言写的

       • 执行速度比mysqldump快10倍

       • 事务性和非事务性表一致的快照(适用于0.2.2以上版本)

       • 快速的文件压缩

       • 支持导出binlog

       • 多线程恢复(适用于0.2.1以上版本)

       • 以守护进程的工作方式,定时快照和连续二进制日志(适用于0.5.0以上版本)

       • 开源 (GNU GPLv3)

正因为有了这么多增强的特性,所以逻辑备份大多使用mydumper。


copy VS xtrabackup

看名字xtrabackup就足以秒杀了copy。

xtrabackup是Percona公司CTO Vadim参与开发的一款基于InnoDB的在线热备工具,具有开源,免费,支持在线热备,备份恢复速度快,占用磁盘空间小等特点,并且支持不同情况下的多种备份形式。

xtrabackup的官方下载地址为http://www.percona.com/software/percona-xtrabackup。
xtrabackup包含两个主要的工具,即xtrabackup和innobackupex,二者区别如下:

(1)xtrabackup只能备份innodb和xtradb两种引擎的表,而不能备份myisam引擎的表;

(2)innobackupex是一个封装了xtrabackup的Perl脚本,支持同时备份innodb和myisam,但在对myisam备份时需要加一个全局的读锁。

顾物理备份大多使用xtrabackup。


mydumper  VS  xtrabckup

这两者的对比,其实就是说什么时候使用逻辑备用,什么时候使用物理备份。

逻辑备份:mysqldump

优点:

1、恢复简单,可以使用管道将他们输入到MySQL

2、与存储引擎无关,因为是从mysql服务器中提取数据而生成的,所以消除了底层数据存储的不同

3、有助于避免数据损坏。若磁盘驱动器有故障而要复制原始文件时,此时将得到一个损坏的备份

缺点:

1、  必须有数据库服务器完成逻辑工作,需要更多地cpu周期

2、  逻辑备份还原速度慢:需要MySQL加载和解释语句、转化存储格式、重建引擎

物理备份:xtrabackup

优点:

1、  基于文件的物理备份

2、  容易跨平台、跨操作系统和MySQL版本

3、  恢复起来会更快(不需要执行任何的mysql语句,不需要构建索引,innoDB表无需完全缓存到内存) 

缺点:

1、  文件大

2、  不总是可以跨平台、操作系统和MySQL版本


4.备份策略

具体问题具体分析,下面给出点建议:

Mysql数据库的备份与恢复