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

前提条件

  • 已通过DBS创建逻辑备份。具体操作请参见使用DBS备份MySQL
  • 已开通数据湖分析(Data Lake Analytics,简称DLA)服务,如何开通服务请参见开通DLA服务

场景介绍

本方案可以帮助您实现低成本快速查询备份数据集的需求。DLA可以实现全量备份数据集即时查询,节省恢复数据资源和时间,简单经济快捷。

注意事项

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

操作步骤

  1. 设置DLA数据库主账号、服务访问点以及OSS访问权限。
    • 设置服务访问点请参见创建服务访问点
    • 开通OSS访问权限。
      说明 如果已经开通过OSS访问授权,请忽略此步骤。
      1. 登录DLA控制台
      2. 单击左侧导航栏数据湖管理 > 元数据发现
      3. 单击OSS数据源分类下的进入向导
      4. 单击角色名 DLA访问OSS授权角色 AliyunOpenAnalyticsAccessingOSSRole后的点击这里进行授权
  2. 创建Schema。
    1. 登录DBS控制台
    2. 单击左侧导航栏备份计划
    3. 单击目标备份计划的备份计划ID/名称管理,打开备份任务配置页面。
    4. 单击左侧导航栏备份任务 > 全量数据备份
    5. 单击目标备份集右侧的查询备份集,在弹出的查询备份集页面单击确定
      说明 单击 确定后DLA会自动创建该备份集的Schema。
  3. 查询DBS全备数据。
    1. 登录DLA控制台
    2. 在左侧导航栏选择Serverless Presto > SQL访问点
    3. SQL访问点页面,单击登录到DMS
    4. 填写登录信息后单击登录
      说明 DMS会自动填写 数据库类型地域连接串地址,请确认以上信息无误后输入账号和密码。
    5. 在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实例中数据量
      图 2. DLA数据库中数据量
    6. 在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数据库中查询结果进行对比。

      图 4. 源RDS数据库执行多表查询关联

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

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