MYSQL-6.1. Backup and Recovery Types部分译文

这个部分讨论分析各种备份方法的特点。

逻辑备份对比物理备份

逻辑备份保存的信息是数据库逻辑结构方面的(CREATE DATABASE, CREATE TABLE statements)和内容(INSERT statements or delimited-text files). 物理备份是由存储数据库内容的目录文件的备份组成的。

逻辑备份的方法有以下的特点:

·         逻辑备份是由查询MySQL服务器得到的数据库的结构和内容方面的信息。

·         它比物理备份要慢因为它必须访问数据库然后转换成逻辑形式。如果要输出到客户端上的话,服务器还需要传输到客户端,这也是新增的开销。

·         输出要大于物理备份,特别是当保存为文本格式时。

·         备份和还原的粒度是在服务器级别(所有的数据库)的,数据库级别(特定数据库中的所有的表),或者表级别。忽略存储引擎这层。

·         备份不包括日志和配置信息的文件,或者其他数据库相关的但不是数据库组成部分的文件。

·         逻辑备份有很强的独立性和portable

·         逻辑备份是在数据库运行时工作的,服务器不用offline

·         逻辑备份包括mysqldump programSELECT ... INTO OUTFILE statement. 这些方法适用于所有的存储引擎,甚至是MEMORY

·         还原逻辑备份时,mysql客户端可以使用SQL-format dump files。加载 delimited-text 文件时, 使用LOAD DATA INFILE statement或者mysqlimport client.

物理备份有以下的特点:

·         备份文件包括了准确的数据库目录文件的备份。其中典型的是所有或者部分的MySql数据目录。MEMORY 存储引擎的数据不能物理备份因为它没有存储在硬盘上。

·         物理备份的方法比逻辑备份更快因为前者只是对数据文件的拷贝而不用转换(成逻辑备份的格式)。

·         备份和还原的粒度从整个的数据目录(服务器层面)到单独的文件(存储引擎层面)。是否提供表级的粒度取决于存储引擎。(MyISAM 的表使用单独唯一的文件集,而InnoDB的表和其他InnoDB的表共享文件存储。)

·         除了数据库外,备份文件还包括相应的文件如日志和配置文件。

·         备份文件只对于其他具有相同的或者类似的硬件特点有portable

·         备份时Mysql服务器可以是没有在运行的。如果服务器在运行,适当的锁定是很必须的,这也是为了保证备份时内容不会变动。

·         物理备份的工具包括file system-level commands (such as cp, scp, tar, rsync),针对MyISAM表的mysqlhotcopy, 针对InnoDB表的ibbackup, 或者NDB 表的START BACKUP.

·         还原时,文件系统层面的拷贝或者用mysqlhotcopy 工具的能使用文件系统的命令拷贝回原来的位置; ibbackup 还原 InnoDB , ndb_restore 还原 NDB .

Online备份对比Offline备份

在线备份是在MySQL服务器运行时对数据库的信息进行获取的。Offline backups 则是在服务器停止时工作的. 这个区别就是俗称的冷备份和热备份; 一个warm备份是指服务器依旧在运行但是当访问数据库需要修改数据时要进行锁定。

Online备份的方法有以下的特点:

·        这种方法对其他的客户端而言影响较小, 其他的客户端连接到服务器时只要是读取数据的都能在备份的同时进行。

·        必须要注意进行适当的锁定来保证备份时数据的完整性。

Offline备份的方法有以下的特点:

·        备份时其他的客户端不能再连接,因为服务器已经停止。

·        备份的过程相对于OnLine备份而言更加简单,因为没有其他客户端的干扰。

在还原方面onlineoffline有类似的区别。Online的还原相对于online的备份而言需要更强的锁定。在备份期间,其他客户端起码可以读数据。但是还原更多的是修改写数据,其他的客户端必须在同一时间停止访问数据库。

本地备份对比远程备份

本地备份是在MySQL服务器的本机上进行备份,而远程备份是从别的主机发起的。对于一些类型的备份,可以从远程主机发起即使输出是在MySQL服务器上的。

·         mysqldump 可以连接到本地或者是远程服务器。而SQLoutput (CREATE and INSERT statements), local or remote dumps can be done and generate output on the client. For delimited-text output (with the --tab option), data files are created on the server host.

·         mysqlhotcopy 只能用于本地备份: 它连接到服务器锁定对数据的修改然后拷贝本地的表文件。

·         SELECT ... INTO OUTFILE 可以从远程或者是本地客户端发起,但是output file 只能在数据库服务器上。

·        尽管拷贝文件是给远程的客户端的,但是物理备份还是能在本地发起,MySQL服务器can be taken offline

快照备份

一些文件系统支持快照备份。这种方法提供了特定时间点的对于文件系统的逻辑备份,不需要物理的对整个文件系统的拷贝。 (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本身不提供这样的系统快照复制功能。这需要一些第三方的工具如Veritas, LVM, or ZFS

全备份对比增量备份

全备份是包含MySQL服务器特定时间点的所有的数据。增量备份顾名思义。Incremental backups are made possible by enabling the server’s binary log, which the server uses to record data changes. SQLServer的区别,增量(差异)是基于数据文件的变动部分,这儿是对日志的解析。

全备份还原对比时间点还原

A full recovery restores all data from a full backup. This restores the server instance to the state that it had when the backup was made. If that state is not sufficiently current, a full recovery can be followed by recovery of incremental backups made since the full backup, to bring the server to a more up-to-date state.

Incremental recovery is recovery of changes made during a given time span. This is also called point-in-time recovery because it makes a server’s state current up to a given time. Point-in-time recovery is based on the binary log and typically follows a full recovery from the backup files that restores the server to its state when the backup was made. Then the data changes written in the binary log files are applied as incremental recovery to redo data modifications and bring the server up to the desired point in time. 增量实现了SQLServer中日志备份的能力。

 

 

 

标签: ,

留下回复