1. 介绍
MySQL企业备份是一个MySQL服务器工具。它是一个多平台,高性能的工具,具有供像是‘热备份’,增量备份,差异备份,选择备份和恢复,支持云备份,备份加密和压缩等,还有其他有价值的功能。
当优化innodb表的时候,MySQL企业备份工具有能力备份和恢复任意一个mysql支持的存储引擎创建的表。他读写过程的并行性(执行在独立,多个线程)和块儿级并行性(在一个文件中不同线程可读 处理或者写不同块)使得让它备份和恢复数据变得非常快,并且相比像mysqldump之类的工具可以得到显著的性能提高。
MySQL企业备份是一个维护和保护你的MySQL数据的宝贵工具,并在事故或灾难发生时可以迅速可靠的恢复你的数据。这个MySQL企业版的一部分,可以通过商业许可给订购者提供。
除此之外,本手册解释
·不同类型的备份可以被MySQL企业备份执行,如何执行,以及为你的系统选择正确类型的备份的一些技巧。
·如何由MySQL企业备份创建的备份恢复。
·如何在特殊情况或着为了特殊目的(比如为了配置数据库主从,使用媒体管理软件MMS,使用分布式文件系统)
使用 MySQL 企业备份。
·mysqlbackup客户端的命令和命令选项。
1.1mysqlbackup客户端(mysql备份客户端)
所MySQL企业备份的函数都在mysqlbackup工具中运行。它是用来执行不同类型的备份和恢复操作,同时涉及到像压缩,解压,验证的的任务。
在这个手册中mysqlbackup的用法和相关命令都被解释并且说明。为了详细的mysqlbackup命令和命令选项查看第三部分‘mysqlbackup命令参考’。
1.2备份类型的概述
当要制定备份策略时,性能和存存储空间首要考虑的因素。你想要数据库服务器少部分CPU资源快速完成备份。你还想要备份的数据紧凑的,多保留几份备份,在某一刻恢复。传送备份到不同的系统应该是 快速和方便。
考虑到这么多,各种备份你数据库的策略通常有着不同的优势。为了选择适合你的策略,你需要理解每个备份策略的性质,下面讲解简单的概述。
根据中断级别的备份类型
根据数据库操作在备份期间如何被中断,备份分类为“热备份”“温备份”“冷备份”:
·非常低水平的中断:热备份 即数据库在运行时执行备份。这种类型的备份不会中断正常的数据库操作。它甚至会捕捉备份过程中发生的变化。相比其他备份,它会导致数据库服务器最少的中断,并它是你不想让你的 应用,网站停止时的最理想的备份选择。然而,在热备份恢复之前,需要准备额外的备份来让它一致(准确的体现备份时的数据库状态)。更详细的解释看5.1.6部分。
当连接到正在运行的数据库服务器,MySQL企业备份为innodb表执行‘热备份’。
·中到高级别的中断:温备份的执行会让数据库处于只读状态。这种类型备份会在备份期间会阻止任何写操作,但是允许读操作。
当连接到正在运行的数据库服务器,‘MySQL企业备份’会备份会使热备份备份完所有的innoDB表后,用温备份备份所有的MyISAM表。所以,为了热备份期间备份尽量更多的数据,你应该为新表设计innoDB为默认存 储引擎 (innoDB存储引擎在 mysq5.6后的版本已经被设置默认),或者让现有的表的存储引擎转换成innoDB。
·高级别的中断:冷备份是在数据库停止时进行创建备份的。它不只是最高级别的中断,而且它会导致许多‘MySQL企业备份’特征都失效(例如,通过数据库连接自动获取数据库结构的能力,所以这些功能不应该通过 配置文件或者命令行选项在‘MySQL 企业备份’中应用)。
为了避免服务中断,你应该在数据库同步的‘从库’上执行冷备份,‘从库’的停止不会让你的整个应用或者网站停止运行。
根据是否所有的数据,或者只备份最近变化的数据的备份类型
根据你时候想要包含所有数据在你的备份或者只要最近的变化,和根据自从上次备份后的变化,你可以执行完全备份,差异备份,或者增量备份。这三种类型的备份对于CPU开销和存储空间有着不同级别的要求,因此适 用于不同的场景。
·一个完全备份包含完整的数据(除非一些表用‘部分备份选项’来祛除的)
·一个差异备份包含从上次完全备份后的所有数据的变化。它比完全备份快速,节省数据库服务器的存储空间,并备份传送到其他服务器的时候节省网络传输资源。然而他需要额外的处理来让备份为恢复数据做准备,这 个准备可以在其他系统上执行以减少数据库服务器CPU开销。
·增量备份包含自从上次备份开始所有在数据上的变化。它可以提供同样的优势,优于完全备份,和差异备份一样。通常是为了更好的大小进一步的减少备份空间。但是在恢复数据前,它在更长系列的备份上需要更多准 备。
压缩的VS 非压缩的 备份
备份压缩可以节省你的存储空间及传递备份数据到其他服务器的网络开销。压缩增加一些CPU开销,但是开销是依赖于算法的并且‘MySQL企业备份’提供的算法需要几乎很少的开销。还有,压缩通很大程度上减少IO 开销,这样可以减少数据恢复时间,尤其是在IO效率低的设备上。然而,在恢复处理中你需要解压时间和压缩的备份和即将要解压数据的存储空间。所以你创建压缩备份市要把额外的存储空间和解压时间都要考虑进去
当备份数据要传递到其他服务器时,你应该会想要在原始的服务器上或者远程服务器上压缩备份数据,这个要根据哪个服务器有更多闲置的CPU容量和网络传输上节省的量来衡量。
更多技术和涉及备份和恢复处理上的性能事项见第十章‘MySQL企业备份性能注意事项’。
1.3备份文件
这章节解释各种各样包含在备份中的文件
下面的表格显示了包含在‘单文件’备份映像或者备份目录中的不同类型的文件。在单文件备份的情况下,用‘extrat’解压文件到备份目录或者用‘image-to-backup-dir’命令查看他们。
表格1.1 备份文件类型
文件名,模式和扩展名 | 和原始数据文件的关系 | 注 |
ibdata* | innoDB数据库系统表空间,包含多个innoDB表和关联的索引 | 当备份正在进行时原始文件可能会变化,apply_log步骤会把相同的变化应用于对应的备份文件 |
*.ibd | 一个innoDB表空间可以是一个文件对应一张表,包含单个innoDB表和关联的索引。或者被放置在服务器数据目录外的 一个文件对应一张表的外部表空间。或者是个一般的表空间,包含一个或多个表和他们的索引。 | 当备份正在进行时原始文件可能会变化,apply_log步骤会把相同的变化应用于对应的备份文件 |
*.ibz | MySQL数据目录压缩形式的文件 | 压缩备份生产代替.ibd的文件。代表innoDB系统表空间的ibdata*文件也接受这个扩展名。.ibz文件在apply-log, copy-back, or copy-back-and-apply-log 步骤中都会被解压。 |
*.frm | 持有所有MySQL表的元数据 | 复制这些文件的时候数据库被置于只读状态,这些文件复制过程不会被修改。 |
*.MYD | MyISAM表数据 | 复制这些文件的时候数据库被置于只读状态,这些文件复制过程不会被修改。 |
*.CSM | CVS表的元数据 | 复制这些文件的时候数据库被置于只读状态,这些文件复制过程不会被修改。 |
*.CSV |
|
|
*.MRG |
|
|
*.TRG |
|
|
*.TRN |
|
|
*.opt |
|
|
*.par |
|
|
*.ARM |
|
|
*.ARZ |
|
|
backup-my.cnf |
|
|
ibbackup_ibd_files |
|
|
ibbackup_logfile |
|
|
ibbackup_redo_log_only |
|
|
ib_logfile* |
|
|
*.bl |
|
|
Timestamped directory, such as 2011-05-26_13-42-02 |
|
|
datadir directory |
|
|
binary log files |
|
|
relay log files |
|
|
*.bz |
|
|
*.bkt |
|
|
slave status log files |
|
|
Backup image file |
|
|
Any other files in subdirectories under thedatadir directory (that is, under backup-dir/datadir/subdir) |
|
|
meta directory |
|
|
backup_variables.txt |
|
|
image_files.xml |
|
|
backup_create.xml |
|
|
backup_content.xml |
|
|
comments.txt |
|
|
gtid_executed.sql |
|
|
server-my.cnf |
|
|
server-all.cnf |
|
|
ib_buffer_pool |
|
|
2.安装MySQL企业备份
你想要备份的数据库服务器上安装MySQL企业备份。通常通过和MySQL实例同一台服务器上运行mysqlbackup执行完全备份和恢复操作。
MySQL企业备份被打包成一个存档文件(.tgz,用tar存档并用gzip压缩)或者平台专用安装器。
在Unix和Linux系统上安装
为了所有的unix和linux系统,这个产品可以.tgz文件形式得到。用下面的命令解压
tar xvzf package.tgz
Mmysqlbackup会被解压到一个子目录中。你可以复制他们到系统目录中(保留他们的执行权限位),或者把你解压的目录添加到$paht射中里。
对某些linux发行版,这个产品可作为RPM档案库。当你要用 sudo rpm -i package_name.rpm 安装RPM,mysqlbackup客户端安装在/opt/mysql/meb-4.1。你必须把这个目录添加到$path中。
Debian和ubuntu的安装包也可以通过 sudo dpkg -i package_name.deb 得到。