浅谈mysql的备份与恢复

1 逻辑备份

常用的逻辑备份主要就是两种,

(1)一种是将数据生成可以完全重现当前数据库中数据的INSERT 语句

   生成INSERT 语句备份

在MySQL 数据库中,通过MySQL 数据库软件自带工具程序中的mysqldump

来实现声称INSERT 语句的逻辑备份文件。其使用方法基本如下:

Dumping definition and data mysql database or table

Usage: mysqldump [OPTIONS] database [tables]     OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]   OR mysqldump [OPTIONS] --all-databases [OPTIONS]


详细的可以参考 mysqldump --help

wKioL1TUXI6A1SV9AALOEOx9yA0132.jpg


(2)另外一种就是将数据通过逻辑备份软件,将我们数据库表数据以特定分隔符进行分隔后记录在文本文件中。

生成特定格式的纯文本备份数据文件备份

在MySQL 中一般都使用以下两种方法来获得可以自定义分隔符的纯文本备份文件。

1、通过执行SELECT ... TO OUTFILE FROM ...命令来实现

该命令有几个需要注意的参数如下:

实现字符转义功能的“FIELDS ESCAPED BY ['name']” 将SQL 语句中需要转义的字符

进行转义;

可以将字段的内容“包装”起来的“FIELDS [OPTIONALLY] ENCLOSED BY 'name'”


2 物理备份

MySQL 自己提供了一个使用程序mysqlhotcopy,这个程序就是专门用来备份MyISAM 存

储引擎的

本用法如下:

mysqlhotcopy db_name[./table_regex/] [new_db_name | directory]


Innodb 存储引擎

Innodb 存储引擎的开发者(Innobase 公司)开发了一款名为ibbackup 的商业备份软件,专门实现Innodb 存储引擎数据的在线物理备份功能。


NDB Cluster 存储引擎

NDB Cluster 存储引擎也是一款事务性存储引擎

Cluter 存储引擎自己提供了备份功能,可以通过相关的命令实现。

在线联机备份步骤如下:

1、连接上管理服务器;

2、在管理节点上面执行“START BACKUP” 命令;

3、在管理节点上发出备份指令之后,管理节点会通知所有数据节点开始进行备份,并反馈通知结果。

4、管理节点在通知发出备份指令之前会生成一个备份号来唯一定位这次备份所产生的备份集。当各数据节点收到备份指令之后,就会开始进行备份操作。

5、当所有数据节点都完成备份之后,管理节点才会反馈“备份完成”的信息给客户端。