众所周知数据库的保护面临着诸多问题,其中之一就是维护数据底层文件的一致性。除了与数据库应用的深度集成的备份方案(如SAP HANA Backint等),松耦合的通用备份软件较难做到完美的数据库的一致性保护。

为了解决该项痛点,混合云备份实现了备份前后的Workflow脚本支持。依赖于为特定数据库定制的备份脚本,我们可以得到强一致的数据库备份点,这会大大提升数据库备份的价值。

下面我们就来以MySQL数据库的全量和增量备份为例子,进行混合云备份Workflow功能的实战演练。

全量备份

在全量备份中,我们使用mysqldump命令在备份开始之前来为数据库创建备份归档,使用的备份前脚本如下所示:

#**************************************************************
#* Copyright 2018 Ali Corporation, All Rights Reserved
#**************************************************************# configurations
$BackupDir = "D:\DBBackup"
$MySQLInstallDir = "C:\Program Files\MySQL\MySQL Server 8.0"$id = (Get-Date -Format yyyyMMdd-HHmmss)
& $MySQLInstallDir/bin/mysqldump.exe -A -Y -F -u $Env:USERNAME -p"$Env:PASSWORD" > $BackupDir/mysql-$id.bak
if ($LastExitCode -ne 0) {throw "mysqldump exited with error $LastExitCode"
}

然后利用如下的简单脚本在备份成功结束后清理已经被成功备份的文档以节省磁盘空间:

#**************************************************************
#* Copyright 2018 Ali Corporation, All Rights Reserved
#**************************************************************$BackupDir = "D:/DBBackup"Remove-Item $BackupDir/*

准备好数据库备份及清理脚本后,我们接下来打开混合云备份的客户端UI,并创建一个新的备份工作流:

上图中我们可以看到新工作流UI中提供了设置备份前/后脚本的能力,点击备份前脚本,在弹出的UI中输入MySQL归档备份脚本的路径,并点击预览确认脚本选择正确:

点击备份后脚本,输入并预览备份后脚本:

最后在备份数据源中填写脚本里指向的数据库备份目的地路径(D:/DBBackup),点击提交,并等待备份完成:

在备份成功完成后,我们可以确认备份路径下的数据库备份文件已经被备份后脚本清除,而同时在恢复UI上我们可以浏览到该文件的云端备份:

增量备份

对于增量备份,我们将依托于MySQL提供的Binlog功能。在上面的全量备份脚本中我们利用参数‘-F’在每次备份数据之前将所有Binlog刷入数据库,故而在增量备份中我们每次只需将当前的Binlog文件备份即可。使用的备份后脚本不变,备份前脚本如下所示:

#**************************************************************
#* Copyright 2018 Ali Corporation, All Rights Reserved
#**************************************************************# configurations
$BackupDir = "D:\DBBackup"
$MySQLInstallDir = "C:\Program Files\MySQL\MySQL Server 8.0"$id = (Get-Date -Format yyyyMMdd-HHmmss)
$binlogname = & $MySQLInstallDir/bin/mysql.exe -u $Env:USERNAME -p"$Env:PASSWORD" -sN -e "select @@log_bin_basename"
if ($LastExitCode -ne 0) {throw "mysqldump exited with error $LastExitCode"
}
copy-item "$binlogname.*" "$BackupDir"

将备份前脚本替换之后利用同样的流程提交备份作业,在备份成功后我们可以验证所需要的备份的数据已经存在云端备份库中:

设置备份策略
在验证上述备份脚本之后,我们还可以将这两种备份分别指定相应的备份策略,例如每月进行一次数据库全量备份,而在全量备份之间每天都可以进行数据库的增量备份。
例如每月做一次数据库的完整备份,首先我们在“策略”中创建一个每月运行的备份计划:

然后在之前创建工作流备份的过程中在下图所示部分指定刚刚创建的备份策略:


其他设置如前所述不变,点击提交即可创建一个按月运行的备份计划。
使用同样的步骤我们也创建一个每天运行的增量备份,最终完整备份计划如下所示:

以上就是利用全新发布的Workflow功能保护MySQL数据库归档,并进行全量以及增量备份的全过程。在需要恢复数据时我们可以根据MySQL这篇文档利用我们备份的数据进行恢复: Point-in-Time (Incremental) Recovery Using the Binary Log。
该功能不仅仅可以应用于MySQL数据库,利用自定义脚本我们还可以完成SQL Server,MongoDB,SAP HANA等数据库乃至Hyper-V等虚拟机的备份,更多详细功能请参考文档或直接联系我们,期待您的使用及反馈!

混合云备份利用自定义Workflow保护MySQL的实践相关推荐

  1. 混合云备份服务 > 产品简介 > 什么是混合云备份

    什么是混合云备份 更新时间:2020-05-26 16:56:32 编辑我的收藏 本页目录 混合云备份架构图 为什么选择混合云备份 混合云备份支持备份哪些数据源 相关概念 混合云备份定价 混合云备份服 ...

  2. 华为云混合云备份解决方案、云南华为云数据备份存储、备份软件解决方案

    标题 一.数据是企业的生命线,备份系统应作为IT基础设施进行建设 标题 二. 数据爆炸性增长带给数据备份的挑战 标题 三.混合云备份:优化企业运营成本的重要手段 1.按需预定 备份软件按需使用与付费 ...

  3. 混合云存储开启企业上云新路径--阿里云混合云备份容灾方案发布

    摘要:当前,数据已经成为了企业的核心资产.而如果数据中心发生故障不仅会给企业带来巨大损失,甚至会直接迫使企业走向倒闭.对于企业而言,每一字节业务数据的丢失都是一场重大的灾难!那么,如何保证企业的核心数 ...

  4. 混合云存储开启企业上云新路径--阿里云混合云备份容灾方案发布 1

    摘要: 当前,数据已经成为了企业的核心资产.而如果数据中心发生故障不仅会给企业带来巨大损失,甚至会直接迫使企业走向倒闭.对于企业而言,每一字节业务数据的丢失都是一场重大的灾难!那么,如何保证企业的核心 ...

  5. 混合云存储组合拳:基于云存储网关与混合云备份的OSS数据备份方案

    前言 阿里云对象存储(OSS)用户众多.很多用户因为业务或者合规性需求,需要对OSS内的数据做备份,无论是线上备份,还是线下备份.用户可以选择使用OSS的开放API,按照业务需求,做数据的备份,也可以 ...

  6. 混合云备份服务 > 数据迁移 > 文件同步 > ECS同步到NAS教程 > 文件同步

    文件同步 更新时间:2020-04-22 17:06:26 本页目录 步骤一:创建源数据地址 步骤二:创建目的数据地址 步骤三:创建同步任务 文件同步会占用源地址和目的地址的网络资源.若您的业务比较重 ...

  7. 【阿里云】 混合云备份服务(HBR)的本地备份配置流程简述

    混合云备份服务 1 混合云备份服务 混合云备份服务(Hybrid Backup Recovery,简称HBR) 是一种全托管式云备份存储服务.通过使用混合云备份可以将本地或云上资源备份到混合云备份的云 ...

  8. 备份域控制器AD 保护的最佳实践(第 1 部分)

    备份域控制器AD 保护的最佳实践(第 1 部分) Andrew Zhelezko 在需要身份验证和集中用户管理的企业环境中,Microsoft Active Directory 是一项标准组件.很难想 ...

  9. 精灵混合加密系统_数据安全——混合云的数据备份

    组织在使用混合云进行备份时,可以利用云计算的可扩展性和安全性,而不会影响其内部部署的控制. 混合云是一种复杂的生态系统,可以利用来自公共云和私有云的组件以及内部部署资源.组织出于各种原因实施混合云策略 ...

最新文章

  1. 机器学习(13)岭回归(线性回归的改进)
  2. oracle 查询字段除了as,Oracle中怎样查询数据表的哪个字段是主键
  3. Linux pg数据库导出数据,linux下 postgres实现导出和导入
  4. VTK:Shaders之SpatterShader
  5. Hibernate中使用Criteria查询及注解——(HibernateUtil)
  6. Windows 如何通过命令启动和关闭 Tomcat
  7. php mysql5.7.110安装教程_MYSQL教程mysql5.7.19 winx64安装配置方法图文教程(win10)
  8. 来来来!java页面导出数据到excel
  9. 【转】Elasticsearch+Django搜索引擎(二)
  10. ENVI Landsat8 裁剪 辐射校正 大气校正 CSU
  11. 身份证校验码计算:根据身份证前17位计算第18位校验码-c++实现
  12. EXCEL柱状图制作(三)
  13. 视频基本知识  AD转换和YUV,cb cr基本知识
  14. 计算机连上wifi无法上网了,电脑已连接wifi但无法上网 已连接wifi但电脑无法上网-192路由网...
  15. macOs 静默安装dmg文件
  16. 在hb中html怎么插图片,WKWebView加载HTML文本(图片自适应)
  17. 数据挖掘入门必看的几个问题
  18. ThinkPHP3.0主入口配置,注册、登录案例
  19. 气象接口返回图标_中国天气网API接口
  20. 步骤条的实现原理及AliceUI中步骤条Step的应用

热门文章

  1. 技术详解 | 如何用GAN实现阴影检测和阴影去除?
  2. 一次性搞定权限树遍历(通用解决方案)
  3. 手工模拟实现 Docker 容器网络!
  4. Java笔试面试总结—try、catch、finally语句中有return 的各类情况
  5. 第 3 次读 Effective Java,这 58 个技巧最值!
  6. SpringBoot项目优化和Jvm调优(亲测,真实有效)
  7. 你还在使用 try-catch-finally 关闭资源?
  8. 分布式锁用 Redis 还是 Zookeeper?
  9. MySQL:数据库优化,看这篇就够了
  10. GNN教程:DGL框架中的采样模型!