使用Microsoft Azure的MySQL云备份和还原方案

Moon 2019-10-15
1581

在灾难来临时必须保护业务,所以备份是数据库操作中非常重要的一部分。当灾难到来(并且将会到来)时,应该预定义恢复点目标(RPO)和恢复时间目标(RTO),因为这样可以保证灾难来临时恢复的速度。

大多数人会改变其备份方法,试图将服务器映像备份(快照),逻辑和物理备份结合在一起。然后将这些备份存储在多个位置,以避免任何本地或区域灾难。这也意味着可以在最短的时间内恢复数据,避免了可能影响公司业务的重大停机时间。 

使用云服务提供商(例如Microsoft Azure)托管数据库也不例外,仍然需要准备并定义灾难恢复策略。

与其他公共云产品一样,Microsoft Azure(Azure)提供了一种实用,经济高效的备份方法,旨在提供恢复选项。Microsoft Azure备份解决方案可以配置和操作,并且可以使用其Azure备份或通过Restore Services Vault轻松处理(如果您使用虚拟机来操作数据库)。 

如果要在云中托管数据库,Azure提供了适用于MySQL的Azure数据库。当不想自己操作和管理MySQL数据库时,可以使用此选项。这项服务提供了丰富的备份解决方案,可以从本地区域或地理位置冗余位置创建数据库实例的备份。这对于数据恢复很有用。甚至可以从特定时间段恢复节点,这对于实现时间点恢复很有用。只需单击一下即可完成。



在Azure上的虚拟机上执行备份


Microsoft Azure不提供特定于MySQL的备份类型解决方案(例如MySQL Enterprise Backup,Percona XtraBackup或MariaDB的Mariabackup)。 

创建虚拟机(使用门户)后,可以设置一个过程以使用Restore Services保管库备份VM。这将保护您免受任何事件,灾难或灾难的影响,默认情况下,存储的数据是加密的。添加加密是可选的,尽管Azure推荐,但要付出一定的代价。您可以查看其Azure备份定价页面以了解更多详细信息。

要创建和设置备份,请转到左侧面板,然后单击所有资源→计算→虚拟机。现在,在文本字段中设置所需的参数。进入该页面后,转到“管理”标签并在下面向下滚动。能够看到如何设置或创建备份。请参见下面的屏幕截图:


image.png


然后根据备份要求设置备份策略。只需点击“备份策略”文本字段中的“ 创建新”链接即可创建新策略。见下文:


image.png


可以按每周,每月和每年配置保留时间的备份策略。 

配置了备份后,可以检查是否在刚刚创建的特定虚拟机上启用了备份。请参见下面的屏幕截图:


image.png


在Azure上还原和恢复虚拟机


在Azure中设计恢复取决于应用程序需要哪种策略和要求,还取决于RTO和RPO在事件或维护期间对于用户而言必须较低还是不可见。可以使用可用性集或在其他可用性区域上设置虚拟机,以实现更高的恢复率。 

为VM设置灾难恢复,以将虚拟机复制到另一个Azure区域,以满足业务连续性和灾难恢复的需求。但是,带来了高昂的成本。如果有,Azure提供了一个选项,可以从创建的备份还原或创建虚拟机。 

例如,在创建虚拟机期间,您可以转到“ 磁盘”选项卡,然后转到“ 数据磁盘”。您可以创建或附加现有磁盘,可以在其中附加可用的快照。请参见下面的屏幕快照,您可以从中选择快照或存储Blob:


image.png


可以在特定的时间点进行恢复,如下面的屏幕截图所示:


image.png


在Azure中还原可以通过不同的方式完成,但是它使用的是已经创建的资源。

例如,如果创建了存储在Azure存储blob中的快照或磁盘映像,则如果创建了一个新的VM,则只要该资源兼容并且可以使用,就可以使用该资源。此外,除了还原虚拟机外,甚至还可以进行一些文件恢复,如下面的屏幕截图所示:


image.png


在文件恢复过程中,可以从特定的恢复点中进行选择,也可以下载脚本来浏览和恢复文件。当只需要特定文件而不需要整个系统或磁盘卷时,这将非常有用。

从现有VM上的备份还原大约需要三分钟。但是,从备份还原到生成新VM需花费十二分钟。但是,这可能取决于VM的大小以及Azure中可用的网络带宽。好处是,还原时,它将提供已完成内容和剩余时间的详细信息。例如,请参见下面的屏幕截图:


image.png


适用于MySQL的Azure数据库备份


Azure MySQL数据库是Microsoft Azure的完全托管数据库服务。此服务提供了一种非常灵活方便的方式来设置备份和还原功能。

创建MySQL服务器实例后,可以设置备份保留并创建备份冗余选项。本地冗余(本地区域)或地理冗余(在不同区域)。Azure将提供一个月的估计费用。请参阅下面的示例屏幕截图:


image.png


请记住,地理冗余备份选项仅在“通用”和“内存优化”类型的计算节点上可用。它在基本计算节点上不可用,但是可以在本地区域(即在可用的可用区域内)保留冗余。

进行主设置后,可以轻松地通过以下步骤来创建副本:MySQL服务器的Azure数据库→选择MyQL实例→复制→并单击添加副本。副本可以在需要时用作源或还原目标。 

请记住,在Azure中,当停止主副本与副本之间的复制时,这将是永久且不可逆的,因为它会使副本成为独立服务器。理想情况下,使用Microsoft Azure创建的副本是托管实例,可以像在普通的主从复制中一样停止和启动复制线程,可以重新启动,仅此而已。如果通过从主数据库或备份进行还原(例如,通过时间点恢复)手动创建了副本,则可以在需要时停止/启动复制线程或设置从属滞后。


从备份还原MySQL的Azure数据库


使用Azure门户可以非常轻松快捷地进行还原。可以使用您的MySQL实例节点点击“恢复”按钮,然后按照下面的屏幕快照中所示的UI进行操作:


image.png


然后,可以选择一个时间段并根据捕获的备份创建/产生新实例:


image.png


一旦节点可用,该节点将不再是主节点的副本。需要使用可用的存储过程通过简单的步骤手动进行设置:


  CALL mysql.az_replication_change_master('<master_host>', '<master_user>', '<master_password>', 3306, '<master_log_file>', <master_log_pos>, '<master_ssl_ca>');

   


master_host:主服务器的主机名

master_user:主服务器的用户名

master_password:主服务器的密码

master_log_file:运行show master状态下的二进制日志文件名

master_log_pos:运行show master状态下的二进制日志位置

master_ssl_ca:CA证书的上下文。如果不使用SSL,请传入空字符串。


启动MySQL线程如下:

 CALL mysql.az_replication_start;

   


或者可以按以下方式停止复制线程,

 CALL mysql.az_replication_stop;

   


或者也可以删除母版,

 CALL mysql.az_replication_remove_master;

   


或跳过SQL线程错误,

 CALL mysql.az_replication_skip_counter;

   


如前所述,当使用Microsoft Azure在 MySQL实例下的“ 添加副本”功能下创建副本时,这些特定的存储过程不可用。但是,mysql.az_replication_restart过程将可用,因为Azure不允许停止或启动托管副本的复制线程。因此,我们上面的示例是从一个主服务器还原的,该主服务器获取了该主服务器的完整副本,但充当单个节点,需要手动设置才能复制现有主服务器。

另外,当具有手动设置的副本时,由于手动创建或设置了复制,因此将无法在MySQL服务器的Azure数据库下看到此副本→选择MyQL实例→复制。


替代云和还原备份解决方案


在某些情况下,在云中对MySQL数据库进行完整备份时,希望具有完全访问权限。为此,可以创建自己的脚本或使用开源技术。建立完成 ,就可以控制如何备份MySQL数据库中的数据以及如何精确地存储它们。 

利用Azure命令行界面(CLI)创建自定义自动化。例如,您可以在Azure CLI中使用以下命令创建快照:

az snapshot create  -g myResourceGroup -source "$osDiskId" --name osDisk-backup

   


或使用以下命令创建MySQL服务器副本:

az mysql server replica create --name mydemoreplicaserver --source-server mydemoserver --resource-group myresourcegroup


工具具有通过还原选项进行备份的功能。使用开源技术或第三方工具需要知识和技能来利用和创建自己的实现。工具列表:

 · ClusterControl-ClusterControl提供了使用经过考验的开放源代码技术(PXB,Mariabackup和mydumper)管理MySQL数据库的物理和逻辑备份的功能。它支持MySQL,Percona,MariaDB,Galera数据库。可以创建我们的备份策略,并将数据库备份存储在任何云(AWS,GCP或Azure)上。请注意,免费版本的ClusterControl不包含备份功能。

 · LVM快照 -因为它需要访问块级存储,所以这仅适用于VM,使用此工具需要警告,因为在备份运行时,它会使数据库节点无响应。

 · Percona XtraBackup(PXB)-Percona的开源技术。使用PXB,可以创建MySQL数据库的物理备份副本;也可以使用InnoDB存储引擎的PXB进行热备份,但是使用建议在从属或非繁忙的MySQL数据库服务器上运行此备份。因为它需要对数据库服务器本身进行二进制或文件访问,这仅适用于VM实例

 · Mariabackup-与PXB一样,它是一种由PXB派生的开源技术,但由MariaDB维护。具体来说,如果使用的数据库是MariaDB,则应使用Mariabackup以避免表空间的不兼容性问题。

 · mydumper / myloader-这些备份工具创建MySQL数据库的逻辑备份副本。可以将其与MySQL的Azure数据库一起使用。

 · mysqldump-这是一个逻辑备份工具,在需要将特定表或数据库备份和转储(或还原)到另一个实例时非常有用。这是DBA常用的方法。因为逻辑备份副本与物理备份相比非常庞大。所以需要注意磁盘空间,

 · MySQL Enterprise Backup-它在多个平台(包括Linux,Windows,Mac和Solaris)上提供热的,在线的,无阻塞的备份。它不是免费的备份工具,但提供了许多功能。

 · rsync-这是一种快速且用途广泛的文件复制工具。它可以通过任何远程Shell在本地复制到另一个主机,或从另一个远程复制到另一个rsync守护程序。它提供了许多选项来控制其行为的各个方面,并允许非常灵活地指定要复制的文件集。通常在Linux系统中,rsync是作为OS软件包的一部分安装的。


「喜欢文章,快来给作者赞赏墨值吧」
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论