Mysql 使用企业级MEB进行数据库物理备份与恢复

本文详细介绍了如何使用MySQL Enterprise Backup(MEB)进行企业级数据库的物理备份与恢复。内容涵盖MEB的下载安装、账户创建、配置参数、备份类型(全局、增量、部分、流式、压缩和加密)及其恢复方法,重点讨论了备份过程中的关键步骤和注意事项,包括备份账户权限设置、备份目录结构、备份与恢复的实现细节,以及流式备份和加密备份的实现和恢复策略。
摘要由CSDN通过智能技术生成

     在免费下载并使用的MySQL开源社区版本中,默认并不包含MEB(MySQL Enterprise Backup,MySQL企业版备份工具)物理热备工具,因为它是一款Oracle自研的企业级软件,用户需要付费才能使用。该工具功能强大,能够为MySQL数据库全局、增量、部分、流、压缩和加密备份与恢复等场景提供优秀的解决方案。对于甲骨文公司的付费用户而言,使用MEB工具来满足企业自身的备份与恢复需求,不失为一种明智的选择。

MEB软件介绍

      MEB可用于提供在线的、非阻塞的企业级多平台热备份,包括Linux、Windows、Mac和Solaris。虽然MySQL企业备份工具可以备份非Innodb数据(如MYISAM表),但是要备份的MySQL服务器实例必须支持InnoDB。若备份任务是使用“--innodb=OFF”或“--skip-innodb”选项启动的,那么备份进程将会失败,服务器必须包含至少一个InnoDB表。MyISAM表和其他类型的文件不能像InnoDB表那样以非阻塞的方式进行备份,备份时将处于温备的模式。这就意味着在备份这些表时,与这些对象相关的DML业务将被锁定并等待。

1.下载MEB软件安装包并安装

MEB是Oracle旗下的一款企业级软件,要想下载该软件安装包,就必须开通MOS(MY ORACLE SUPPORT)账号,并且拥有相应的下载权限。在MOS站点下载MEB软件安装包的截图如图6-1所示。

 

下载并安装MEB,命令如下:

shell> unzip p29358807_410_Linux-x86-64.zip

shell> md5sum meb-4.1.3-linux-glibc2.12-x86-64bit.tar.gz

shell> tar zxvf meb-4.1.3-linux-glibc2.12-x86-64bit.tar.gz

shell> cd meb-4.1.3-linux-glibc2.12-x86-64bit

shell> ./bin/mysqlbackup --version

MySQL Enterprise Backup version 4.1.3 Linux-4.1.12-37.4.1.el6uek.x86_64-x86_64

...

注意:不同的MEB版本需要与不同的MySQL版本严格对应。

MySQL Enterprise Backup 8.0 only supports MySQL 8.0.

MySQL Enterprise Backup 4.1.3 only supports MySQL 5.7.

MySQL Enterprise Backup 3.12.4 only supports MySQL 5.6 and earlier.

2.创建MEB备份账户

通常,用户都会选择使用MySQL系统账户root@localhost来进行备份。如果企业对账户的使用设置了严格的管控和限制,就需要创建最小权限的备份账户,以执行备份任务。创建MEB备份账户的命令如下:

mysql> CREATE USER 'mysqlbackup'@'localhost' IDENTIFIED BY 'Abcd321#';

mysql> GRANT RELOAD ON *.* TO 'mysqlbackup'@'localhost';

mysql> GRANT CREATE, INSERT, DROP, UPDATE ON mysql.backup_progress TO

    'mysqlbackup'@'localhost';

mysql> GRANT CREATE, INSERT, SELECT, DROP, UPDATE, ALTER ON mysql.backup_history

    TO 'mysqlbackup'@'localhost';

mysql> GRANT REPLICATION CLIENT ON *.* TO 'mysqlbackup'@'localhost';

mysql> GRANT SUPER ON *.* TO 'mysqlbackup'@'localhost';

mysql> GRANT PROCESS ON *.* TO 'mysqlbackup'@'localhost';

mysql> GRANT SELECT ON performance_schema.replication_group_members TO

    'mysqlbackup'@'localhost';

注意:如果使用的是多主组复制设置,那么请确保所有的主节点都授予了这些权限。

3.MEB配置文件和参数

MEB既可以在命令行上指定选项,也可以在选项文件中作为配置参数指定。将数据库配置信息传递给mysqlbackup的首选方法是使用“--default-file”选项,如果使用了该选项,则它必须是MEB命令中出现的第一个选项。通常,MEB遵循以MySQL的风格来处理配置选项,即将[mysqlbackup]和[client]组作为命令行选项进行传递。运行mysqlbackup时指定的任何命令行选项都将覆盖配置文件中的值,对于重复的选项,应以最后读取的值为准。MEB还可以读取[mysqld]组中的选项,在无法连接到MySQL实例时,检测与源库相关的参数。在mysqlbackup选项名称中,连字符(-)和下划线(_)可以互换使用,类似于使用相同约定的mysqld参数。

MEB程序需要根据如下优先级读取需要备份的MySQL数据的位置。

1)正在运行的MySQL实例的连接信息。

2)在mysqlbackup命令行上指定的参数。

3)MySQL配置文件(默认情况下是指Unix上的my.cnf和Windows上的my.ini)。

MEB备份与恢复示例

全局备份与恢复

       基于MEB实现全局(实例级)的备份和恢复,通常有三个阶段,分别是备份(backup)、日志应用(apply log)和复制恢复(copy back)在备份阶段,程序首先会发起多个后台线程,最先记录备份开始时的LSN(Log Sequence Number,日志序列号),然后开始复制共享系统表空间文件、Undo和所有InnoDB类型文件,完成之后会持有短暂的全局锁,这期间会复制所有非InnoDB类型的文件并记录数据页中最新的LSN,然后将备份期间产生的数据变更信息写入ibbackup_logfile文件,同时记录二进制日志的文件名和位置(如果当前实例中已开启了二进制日志特性),以便部署和复制,此日志输出格式为MEB_<Timestamp>_backup.log。日志应用阶段,基于现有备份片(Backup Pieces),程序可根据备份时记录的最新LSN解析ibbackup_logfile文件,并批量应用日志记录,以保证数据的一致性,此日志的输出格式为MEB_<Timestamp>_apply_log.log;复制恢复阶段,程序依次将共享系统表空间文件,Undo、InnoDB类型文件,非InnoDB类型和Redo文件等复制到目标位置,此日志的输出格式为MEB_<Timestamp>_copy_back.log。当三个阶段的操作均成功完成,就可以启动该备份恢复的实例,对外提供服务了。

       MEB全局备份有两种实现方式,既可以将MySQL实例备份到指定目录,也可以将其备份到单个映像文件中。

目录备份与恢复

1)备份全局实例到指定目录。创建与备份相关的目录结构,命令如下:

shell> mkdir -p /backups/{data,tmpdata,conf}

shell> chown -R mysql:mysql /backups

mysqlbackup启动联机热备时,可以通过“--host”“--user”和“--password”选项建立与MySQL实例的连接,以便获取与备份相关的信息并记录到相关的备份文件中。并在首次执行备份时,在MySQL系统库下自动创建backup_history和backup_progress两张表,以记录备份任务执行的相关信息,包括备份的时间、类型、格式、LSN、二进制日志位置、执行状态、错误信息、锁定时间和备份执行各阶段的状态等。

注意:在选项文件[client]组中指定连接选项,若password选项值包含了特殊字符,则需要加上单引号,否则调用mysqlbackup程序时会报连接失败的错误。

执行全局备份,命令如下:

shell> ./mysqlbackup -uroot -p --socket=/mysql/product/scene1/data/mysql.sock \

       --backup-dir=/backups/data --with-timestamp backup

...

IMPORTANT: Please check that mysqlbackup run completes successfully.

           At the end of a successful 'backup' run mysqlbackup

           prints "mysqlbackup completed OK!".

...

mysqlbackup completed OK!

为了方便起见,可以使用“--with-timestamp”选项在备份目录下创建以时间戳命名的唯一子目录,以保存备份数据,该方式允许删除和归档超过一定时间的备份数据。使用目录备份时,若未指定“--with-timestamp”选项,则需要为每个备份作业指定一个唯一的目录。

2)全局备份应用日志记录,命令如下:

shell> ./mysqlbackup --backup-dir=/backups/data/2020-01-21_10-45-39 apply-log

...

IMPORTANT: Please check that mysqlbackup run completes successfully.

           At the end of a successful 'apply-log' run mysqlbackup

           prints "mysqlbackup completed OK!".

...

mysqlbackup completed OK!

3)全局备份复制恢复至目标位置(原地恢复)。首先,创建临时实例scenetmp数据目录,命令如下:

shell> mkdir -p /mysql/product/scenetmp/{data,log,binlog,relaylog,redo,undo, mysql-files}

然后,在选项文件/etc/my.cnf中添加临时实例[mysqld@scenetmp]和[mysqlbackup@scenetmp]选项组,命令如下:

shell> cp /etc/my.cnf /etc/my.cnf.bak && vi /etc/my.cnf

[mysqld@scenetmp]

datadir=/mysql/product/scenetmp/data

innodb_log_group_home_dir=/mysql/product/scenetmp/redo

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL Enterprise Backup (MEB) 是 MySQL 官方提供的一个备份工具,用于备份恢复 MySQL 数据库。它提供了全面的备份恢复功能,包括物理备份、增量备份、压缩和加密等。 MEB 支持以下几种备份类型: 1. 物理备份:将数据库的二进制文件、日志文件及其他相关文件备份到指定的目录中。这种备份方式比较快速,适用于大型数据库。 2. 增量备份:只备份最新更改的数据和日志文件,可以减少备份时间和空间需求。 3. 热备份:在数据库运行时进行备份,不需要停止数据库服务。 使用 MEB 进行备份的基本步骤如下: 1. 下载和安装 MySQL Enterprise Backup 工具。 2. 创建备份目录,并确保有足够的存储空间。 3. 编写一个备份配置文件(backup configuration file),指定要备份数据库备份参数,比如备份类型、目标路径等。 4. 运行 MEB 工具,并指定备份配置文件作为参数,执行备份命令。例如:`mysqlbackup --defaults-file=/path/to/backup.cnf backup-to-image --backup-dir=/path/to/backup` 5. 等待备份完成,可以查看备份日志检查备份结果。 MEB 还提供了恢复功能,可以根据备份文件进行数据还原和恢复操作。具体的恢复步骤和命令可以参考 MEB 的官方文档或指南。 需要注意的是,MEBMySQL Enterprise Edition 的一个组件,如果你使用的是 MySQL Community Edition,则无法使用 MEB 进行备份
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值