查询异地的备份数据时,一般需要先把数据恢复到新实例,并进行初始化数据库、拷贝备份、恢复数据等步骤,费时费力。本文将为您介绍如何在不恢复数据的情况下,即时查询异地的备份数据。

前提条件

  • 已创建RDS MySQL实例,创建步骤请参见创建RDS MySQL实例
  • 已开通数据湖分析(Data Lake Analytics,简称DLA)服务,如何开通服务请参见开通DLA服务
  • 已购买数据库备份(Database Backup,简称DBS)服务,如何购买请参见创建备份计划
    说明
    • DBS地域请选择与源RDS实例不同的地域,且该地域需要支持DLA。
    • 数据库类型请选择MySQL。
    • 备份方式请选择逻辑备份。

场景介绍

数据库异地备份方案基本采用本地备份压缩后上传异地的方式来实现,不便于整个备份集的管理。对于历史备份数据,随着时间间隔的增大,被查询的可能性越来越低,会浪费一定的存储资源。本方案可以帮助您实现低成本快速查询备份数据集的需求。

  • DBS可以实现异地备份数据自动化管理,按照数据集热度用OSS低频、归档等类型逐级存放数据集,设置数据失效事件。
    说明 如需了解更多关于OSS存储类型的信息请参见存储类型介绍
  • DLA可以实现全量备份数据集即时查询,节省恢复数据资源和时间,简单经济快捷。

技术架构

异地备份与即时查询_备份_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第1张

注意事项

  • Data Lake Analytics(DLA)目前仅支持查询MySQL数据库的DBS备份集数据。
  • DLA目前仅支持全量备份的即时查询,不支持增量数据的查询。
  • 由于DLA所在的地域只能查询同地域的OSS备份文件,DLA和OSS的地域必须保持一致。
  • DLA目前仅支持逻辑备份集的即时查询。

操作步骤

  1. 使用DBS进行异地备份任务。
    1. 登录DBS控制台
    2. 单击左侧导航栏备份计划
    3. 在页面左上角,选择备份计划所在地域。
    4. 单击目标备份计划右侧的配置备份计划异地备份与即时查询_备份_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第2张
    5. 配置备份源信息备份目标信息异地备份与即时查询_备份_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第3张
      类别 配置 说明
      备份计划名称 -
      • DBS为每个备份任务自动生成一个任务名称,任务名称没有唯一性要求。
      • 您可以修改任务名称,建议为任务配置具有业务意义的名称,便于后续的任务识别。
      备份源信息 备份方式 默认为逻辑备份。
      数据库所在位置 选择RDS实例
      RDS实例ID 选择需要备份的RDS实例ID。
      说明 异地备份情况下,由于RDS实例和DBS不在同一地域,需要选择RDS实例所在实例地区后才能选择RDS实例ID
      实例地区 选择源RDS实例所在地域。
      数据库账号 源RDS实例的数据库账号。
      密码 源RDS实例的数据库账号对应的密码。
      连接方式 根据需求选择非加密连接SSL安全连接
      说明 选择SSL安全连接时,需要提前开启RDS实例的SSL加密功能,详情请参见设置SSL加密
      备份目标信息 对象存储OSS Bucket名称
      • DBS为每个备份任务自动生成一个OSS Bucket名称。
      • 您可以修改OSS Bucket名称,建议为具有业务意义的名称,便于后续的任务识别。
      存储方式 根据需求选择非加密存储加密存储
      说明 启用加密存储会使用AES256对备份数据进行加密存储。
    6. 单击测试连接,待显示测试通过后,单击下一步
      说明 单击测试连接后,RDS实例白名单会自动添加DBS所需的IP地址段。
    7. 源数据库对象中选择需要迁移的对象,将其移动到已选择数据库对象,单击下一步
    8. 配置备份时间,您可以选择周期备份单次备份,单击下一步
    9. 配置生命周期,单击预检查并启动
      说明 配置备份时间配置生命周期详细信息请参见配置备份计划
    10. 待预检查通过后单击立即启动
    11. 等待实例备份完成。
  2. 设置DLA数据库主账号、服务访问点以及OSS访问权限。
    • 设置DLA数据库主账号请参见初始化DLA数据库主账号密码
    • 设置服务访问点请参见设置服务访问点
    • 开通OSS访问权限。
      说明 如果已经开通过OSS访问授权,请忽略此步骤。
      1. 登录DLA控制台
      2. 单击左侧导航栏Schema管理
      3. 创建Schema页面,单击对象存储服务分类下的使用向导创建
      4. 云资源访问授权页面单击同意授权
  3. 创建Schema。
    1. 登录DBS控制台
    2. 单击左侧导航栏备份计划
    3. 单击目标备份计划的备份计划ID/名称管理,打开备份任务配置页面。
    4. 单击左侧导航栏备份任务 > 全量数据备份
    5. 单击目标备份集右侧的查询备份集,在弹出的查询备份集页面单击确定
      说明 单击确定后DLA会自动创建该备份集的Schema。
      异地备份与即时查询_备份_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第4张
  4. 查询DBS全备数据。
    1. 登录DLA控制台
    2. 单击左侧导航栏访问点管理
    3. 访问点管理页面,单击经典网络登录到DMS
    4. DMS页面,填写登录信息后单击登录
      说明 DMS会自动填写地域连接地址DLA数据库账号,请确认以上信息无误后输入密码。
      异地备份与即时查询_备份_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第5张
    5. 使用DMS登录RDS数据库,操作步骤请参见通过DMS登录RDS数据库
    6. 在DLA数据库和源RDS数据库中分别执行如下SQL语句核实数据量是否一致:
      select 'bill' as tableName ,count(id) as countNumber from `bill`
      union ALL
      select 'dim_code_desc' as tableName ,count(id) as countNumber from `dim_code_desc` ;
      图 1. 源RDS实例中数据量
      异地备份与即时查询_备份_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第6张
      图 2. DLA数据库中数据量
      异地备份与即时查询_备份_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第7张
    7. 在DLA数据库中执行如下SQL语句进行多表关联查询:
      select  t.* from dim_code_desc   as t1,  BILL t
      where   t1.id= t.id
      and t1.code_id like '9%';
      图 3. DLA数据库执行多表关联查询
      异地备份与即时查询_备份_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第8张

      与源RDS数据库中查询结果进行对比。

      图 4. 源RDS数据库执行多表查询关联
      异地备份与即时查询_备份_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第9张

      确认DLA数据库与源RDS数据库中查询结果一致,至此本方案结束。

      在本案例数据量下,如果从RDS全备创建克隆实例还原数据,到配置白名单访问RDS获取目标数据,总耗时在1h左右,操作的复杂度也高很多。在实际业务场景中,本方案能帮助您节省数据还原的时间,快速核查误删的少量数据进行数据修复。