您的位置:首页 > 数据库 > MySQL

mysql备份和恢复的类型简介

2016-11-16 11:19 169 查看
7.1备份和恢复的类型
++++++++++++++++++++
1、物理备份和逻辑备份
物理备份:复制存储了数据库的目录和文件;这种类型适合大量、重要和出错后需要快速恢复的数据库;
逻辑备份:保存代表逻辑的数据库结构(CREATE DATABASE | CREATE TABLE )和内容(INSERT 语句和 delimited-text files)的信息;
这种备份适合小量数据或者想要在不同的机器架构上重建数据;

物理备份方法有这些特点:
备份是由数据库目录和文件组成的;比较典型的是mysql数据目录的部分或全部的拷贝;
物理备份方法比逻辑备份方法更快,因为只需要复制文件,不用做转换;
比逻辑备份输出更紧凑(小);
因为速度和compactness对于繁忙的重要的数据库非常重要,所以mysql企业级备份产品使用物理备份;
备份和存储粒度的范围能从整个数据目录的级别变化到单个文件的级别,视存储引擎不同,能不能提供表级别的备份是不一定的;
例如,每一个InnoDB表可以被存储在多个分离的文件中,或者和其他的InnoDB表共享存储文件;
每一个MyISAM表只使用一个独一无二的文件集合(不同的表之间不能使用同一个文件来存储);
备份不仅仅包括数据库,还包括相关的日志文件和配置文件等;
可以在服务器没有运行的时候备份;
如果在服务器运行的时候备份需要执行合适的锁机制,以防止备份的时候数据的改变,mysql的企业级备份对于那些有需要的表自动做了锁机制;
物理备份工具:
mysqlbackup - mysql 企业级备份,适用于InnoDB表和其他表;
cp scp tar rsync  - 系统级别的命令,适用于MyISAM表;

逻辑备份方法有这些特点:
通过查询mysql服务器获取数据库结构和内容信息的方式完成备份;
逻辑备份比物理备份慢:因为服务器必须获取到数据库信息然后将它转化成逻辑形式,如果输出要写到客户端这一边,服务器必须把它发送给备份程序;
输出要比物理备份大,特别是以文本格式存储的时候;
备份和存储的粒度:服务器级别-所有数据库 | 数据库级别-一个数据库的所有表 | 表级别 (不区分存储引擎)
备份不包含日志文件或者配置文件,或者其他的不属于数据库一部分但是和数据库相关的文件;
逻辑形式的备份和机器是无关的,非常轻便;
逻辑备份要求服务器在线;
逻辑备份工具:mysqldump工具 | SELECT ... INTO OUFILE 语句 (适用于任何存储引擎,甚至是MEMORY)
为了保存逻辑备份, SQL-format dump文件可以使用mysql客户端处理;
可以使用LOAD DATA INFILE 语句或者mysqlimport客户端装载delimited-text files;

2、线上备份和线下备份
线上备份在服务器运行的时候进行,这样就可以从服务器获取数据库信息;
线下备份在服务器停止的时候进行;
线上备份和线下备份也可以叫热备份和冷备份;
温备份:服务器运行着,但是被锁定了,防止从外部访问数据库问的时候数据被修改;

线上备份有下面这些特点:
这种备份对其他客户端程序的影响较小(侵入性、干扰性小),备份期间,别的程序仍然可以访问数据,不过要取决于具体操作了;
为了防止数据的修改,锁的问题要特别注意;(mysql企业级备份产品会自动处理锁的问题)

线下备份有下面这些特点:
客户端将会受到影响,因为备份的时候,服务器不可达;因为这样的原因,这种备份通常用于从服务器的复制;
备份过程更简单,因为不会受到客户端的影响;

线上和线下备份的特点也适用于恢复操作:
但是,在线上恢复的时候,客户端将会受到影响(这一点和线上备份不太一样),因为恢复需要stronger 锁;
在备份期间,客户端可以去读数据(即使要读取的数据正在备份,区别于写操作);
对于恢复数据来说,做的是写操作,所以客户端必须禁止访问(数据都没写完整,怎么访问);

3、本地备份和远程备份
本地备份-在mysql服务器运行的机器上备份;
远程备份-在远程机器上进行;
For some types of backups, the backup can be initiated from a remote host even if the output is written locally on the server. host.

mysqldump可以连接本地和远程服务器;对于SQL格式的输出来说,本地和远程的dumps可以完成并且在客户端生成输出;
对于 delimited-text(分隔文本,使用--tab),将在服务器机器上创建数据文件;

可以在本地或者远程主机发起 SELECT ... INTO OUTFILE ,但是输出文件将在服务器机器上创建;

Physical backup methods typically are initiated locally on the MySQL server host so that the server
can be taken offline, although the destination for copied files might be remote.

4、快照备份
Some file system implementations enable “snapshots” to be taken. These provide logical copies of
the file system at a given point in time, without requiring a physical copy of the entire file system. (For
example, the implementation may use copy-on-write techniques so that only parts of the file system
modified after the snapshot time need be copied.) MySQL itself does not provide the capability for
taking file system snapshots. It is available through third-party solutions such as Veritas, LVM, or ZFS.

5、完全备份和增量备份
完全备份:在一个特定的时间点一次性mysql服务器管理的所有数据
增量备份:在一个时间段内改变的数据
增量备份的实现是通过开启二进制日志进行的,服务器使用二进制日志记录数据的改变;

6、完全恢复和增量恢复
完全恢复:将数据从完全备份中恢复出来,数据库将被恢复到备份的时候的状态;
如果状态不是当前,可以结合合适的增量备份来恢复,使得恢复更靠近当前状态;

增量恢复:恢复一段时间内所做的改变;
增量恢复也被叫做pointin-time recovery;
增量恢复基于二进制日志;
通常要跟着一个完全恢复;

7、表的维护

8、定时备份、备份的压缩和加密
mysql本身是不支持这些功能的,但是mysql可以使用系统功能进行这些操作,也可以使用第三方工具;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息