查询异地的备份数据时,一般需要先把数据恢复到新实例,并进行初始化数据库、拷贝备份、恢复数据等步骤,费时费力。本文将为您介绍如何在不恢复数据的情况下,即时查询异地的备份数据。
前提条件
已创建RDS MySQL实例,创建步骤请参见创建RDS MySQL实例 。
已开通数据湖分析(Data Lake Analytics,简称DLA)服务,如何开通服务请参见开通DLA服务 。
已购买数据库备份(Database Backup,简称DBS)服务,如何购买请参见创建备份计划 。
说明
DBS地域请选择与源RDS实例不同的地域,且该地域需要支持DLA。
数据库类型请选择MySQL。
备份方式请选择逻辑备份。
场景介绍
数据库异地备份方案基本采用本地备份压缩后上传异地的方式来实现,不便于整个备份集的管理。对于历史备份数据,随着时间间隔的增大,被查询的可能性越来越低,会浪费一定的存储资源。本方案可以帮助您实现低成本快速查询备份数据集的需求。
DBS可以实现异地备份数据自动化管理,按照数据集热度用OSS低频、归档等类型逐级存放数据集,设置数据失效事件。
说明 如需了解更多关于OSS存储类型的信息请参见
存储类型介绍 。
DLA可以实现全量备份数据集即时查询,节省恢复数据资源和时间,简单经济快捷。
技术架构
注意事项
Data Lake Analytics(DLA)目前仅支持查询MySQL数据库的DBS备份集数据。
DLA目前仅支持全量备份的即时查询,不支持增量数据的查询。
由于DLA所在的地域只能查询同地域的OSS备份文件,DLA和OSS的地域必须保持一致。
DLA目前仅支持逻辑备份集的即时查询。
操作步骤
使用DBS进行异地备份任务。
登录DBS控制台 。
单击左侧导航栏备份计划 。
在页面左上角,选择备份计划所在地域。
单击目标备份计划右侧的配置备份计划 。
配置备份源信息 和备份目标信息 。
类别
配置
说明
备份计划名称
-
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对备份数据进行加密存储。
单击测试连接 ,待显示测试通过 后,单击下一步 。
说明 单击测试连接后,RDS实例白名单会自动添加DBS所需的IP地址段。
在源数据库对象 中选择需要迁移的对象,将其移动到已选择数据库对象 ,单击下一步 。
配置备份时间,您可以选择周期备份 或单次备份 ,单击下一步 。
配置生命周期,单击预检查并启动 。
说明 配置备份时间 和
配置生命周期 详细信息请参见
配置备份计划 。
待预检查通过后单击立即启动 。
等待实例备份完成。
设置DLA数据库主账号、服务访问点以及OSS访问权限。
设置DLA数据库主账号请参见初始化DLA数据库主账号密码 。
设置服务访问点请参见设置服务访问点 。
开通OSS访问权限。
说明 如果已经开通过OSS访问授权,请忽略此步骤。
登录DLA控制台 。
单击左侧导航栏Schema管理 。
在创建Schema 页面,单击对象存储服务 分类下的使用向导创建 。
在云资源访问授权 页面单击同意授权 。
创建Schema。
登录DBS控制台 。
单击左侧导航栏备份计划 。
单击目标备份计划的备份计划ID/名称 或管理 ,打开备份任务配置 页面。
单击左侧导航栏。
单击目标备份集右侧的查询备份集 ,在弹出的查询备份集 页面单击确定 。
说明 单击确定 后DLA会自动创建该备份集的Schema。
查询DBS全备数据。
登录DLA控制台 。
单击左侧导航栏访问点管理 。
在访问点管理 页面,单击经典网络 中登录到DMS 。
在DMS 页面,填写登录信息后单击登录 。
说明 DMS会自动填写地域 、连接地址 、DLA数据库账号 ,请确认以上信息无误后输入密码。
使用DMS登录RDS数据库,操作步骤请参见通过DMS登录RDS数据库 。
在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左右,操作的复杂度也高很多。在实际业务场景中,本方案能帮助您节省数据还原的时间,快速核查误删的少量数据进行数据修复。
评论