查询备份数据时,一般需要先把数据恢复到新实例,并进行初始化数据库、拷贝备份、恢复数据等步骤,费时费力。本文将为您介绍如何在不恢复数据的情况下,即时查询DBS逻辑备份数据。
场景介绍
本方案可以帮助您实现低成本快速查询备份数据集的需求。DLA可以实现全量备份数据集即时查询,节省恢复数据资源和时间,简单经济快捷。
注意事项
Data Lake Analytics(DLA)目前仅支持查询MySQL数据库的DBS备份集数据。
DLA目前仅支持全量备份的即时查询,不支持增量数据的查询。
由于DLA所在的地域只能查询同地域的OSS备份文件,DLA和OSS的地域必须保持一致。
DLA目前仅支持逻辑备份集的即时查询。
操作步骤
设置DLA数据库主账号、服务访问点以及OSS访问权限。
设置服务访问点请参见创建服务访问点 。
开通OSS访问权限。
说明 如果已经开通过OSS访问授权,请忽略此步骤。
登录DLA控制台 。
单击左侧导航栏。
单击OSS数据源 分类下的进入向导 。
单击角色名 DLA访问OSS授权角色 AliyunOpenAnalyticsAccessingOSSRole 后的点击这里进行授权 。
创建Schema。
登录DBS控制台 。
单击左侧导航栏备份计划 。
单击目标备份计划的备份计划ID/名称 或管理 ,打开备份任务配置 页面。
单击左侧导航栏。
单击目标备份集右侧的查询备份集 ,在弹出的查询备份集 页面单击确定 。
说明 单击确定 后DLA会自动创建该备份集的Schema。
查询DBS全备数据。
登录DLA控制台 。
在左侧导航栏选择。
在SQL访问点 页面,单击登录到DMS 。
填写登录信息后单击登录 。
说明 DMS会自动填写数据库类型 、地域 、连接串地址 ,请确认以上信息无误后输入账号和密码。
在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数据库中数据量
在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左右,操作的复杂度也高很多。在实际业务场景中,本方案能帮助您节省数据还原的时间,快速核查误删的少量数据进行数据修复。