GaussDB技术解读系列:5分钟带您了解DRS录制回放

这篇具有很好参考价值的文章主要介绍了GaussDB技术解读系列:5分钟带您了解DRS录制回放。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、什么是DRS录制回放?

DRS录制回放是将源数据库发生的真实业务流量,在目标数据库模拟执行,从而观察和检验目标数据库的功能和性能表现。录制回放主要分为录制、回放两个阶段,录制过程是从源数据库上将所需时间段内的全部SQL原语句(包括增、删、改、查)通过审计日志下载、录制代理等进行采集;回放是将采集到的全部SQL语句在目标数据库上进行执行(目标数据库需有源数据库的初始数据)。

GaussDB技术解读系列:5分钟带您了解DRS录制回放,GaussDB经验总结,数据库,gaussdb,oracle,华为云,GaussDB,云原生

 二、DRS录制回放与DRS、UGO的关系

数据复制服务(Data Replication Service,简称DRS)是一种易用、稳定、高效,用于数据库实时迁移和数据库实时同步的云服务,着重于数据库毫秒级数据同步,支持同构异构数据库之间的数据传输/搬迁,降低数据库之间数据流通的复杂性,减少数据传输成本。

数据库和应用迁移 UGO(Database and Application Migration UGO,简称UGO)是专注于异构数据库结构迁移的云服务,可将源数据库中的DDL、DML和DCL一键自动转换为华为云GaussDB的SQL语法,最大化降低用户数据库的迁移成本。

录制回放是DRS提供的业务仿真特性,结合DRS+UGO,以及DRS提供的数据一致性对比能力,形成了华为云数据库迁移整体解决方案,以保障客户割接过程的平滑性以及割接后数据库的稳定可靠运行。

GaussDB技术解读系列:5分钟带您了解DRS录制回放,GaussDB经验总结,数据库,gaussdb,oracle,华为云,GaussDB,云原生

 三、技术原理 

 1.初始数据生成

 在录制回放开始前,需要为目标数据库创建初始数据,初始数据的来源是源数据库某一时刻的快照数据。一致性模式场景下需要构建两个目标数据库,以某商业数据库(以下简称X数据库)到GaussDB为例,一个是X数据库回放数据库,一个是GaussDB回放数据库,两个回放数据库的初始数据必须完全一致。X数据库回放数据库的初始数据可以通过X数据库的备份恢复机制生成,GaussDB回放库的初始数据可以通过DRS数据同步能力,把X数据库回放数据库的初始数据全量同步过来。两个回放数据库的初始数据生成之后,建议做一次数据对比,确保数据一致。

 

2.流量录制

 公有云场景主要支持自建或其他云上的MySQL生态数据库到华为云RDS for MySQL、GaussDB(for MySQL)的录制回放,流量录制以源数据库提供的全量SQL、审计日志等技术为主。

GaussDB技术解读系列:5分钟带您了解DRS录制回放,GaussDB经验总结,数据库,gaussdb,oracle,华为云,GaussDB,云原生

 具体流程如下:

1) 在源数据库上开启审计日志或者全量SQL,等待业务执行一段时间。

2) 将业务执行期间生成的审计日志或者全量SQL上传到华为云OBS。

3) 在DRS上创建录制回放任务,选择上传到OBS的审计日志或全量SQL文件,DRS录制回放任务会读取审计日志或全量SQL文件,根据任务配置的源数据库类型解析出数据文件中的SQL信息,包含SQL语句、SQL类型、SQL执行时间、Schema名称、Session ID、客户端IP等,根据SQL语句的执行时间进行分片存储在元数据库中,在目标数据库上进行回放。

HCS场景主要支持常用自建数据库到GaussDB等几条链路的录制回放能力,流量录制均基于网络旁路抓包与协议解析技术,通过部署抓包Agent,在服务器上对数据库端口进行TCP/IP网络数据包抓取,分析推测出业务执行的SQL信息,该技术对源数据库影响极小且SQL抓取率极高。具体流程如下:

GaussDB技术解读系列:5分钟带您了解DRS录制回放,GaussDB经验总结,数据库,gaussdb,oracle,华为云,GaussDB,云原生

1) 在源数据库上部署流量采集Agent包。

2) Agent采集服务器上对应数据库端口的TCP/IP网络包,通过UDP协议发给流量采集器,生成流量数据文件。

3) 流量解析模块读取流量数据文件,分析推测出业务执行的SQL信息,包含连接ID、客户端类型、SQL类型、SQL语句、绑定变量值、执行开始时间、执行结束时间、执行是否成功、存储过程参数等信息,根据SQL语句的执行时间进行分片存储在元数据库中,在目标数据库上进行回放。

3.流量回放

 将流量录制的SQL语句在目标上根据配置的回放模式进行回放,实现业务SQL的兼容性验证、执行性能评估、结果一致性验证等。具体原理如下:

GaussDB技术解读系列:5分钟带您了解DRS录制回放,GaussDB经验总结,数据库,gaussdb,oracle,华为云,GaussDB,云原生

1) 异构场景下,会对流量录制的SQL语句进行语法转换,转换成目标数据库支持的语法,避免因为SQL语法的差异导致在目标数据库回放时出现语法错误。

2) 语法转换成功后,通过流量控制器将待回放的SQL语句根据不同的回放模式进行调度控制,以便验证不同场景的回放结果。流量控制器支持三种回放模式:

仿真模式:完全模拟源数据库的流量和并发进行回放,以便验证相同压力下目标数据库的运行情况。

摸高模式:把源数据库流量等比例成倍增加压力,以便验证目标数据库可以承受的最大压力情况。

一致性模式:以单并发的方式在两个目标数据库回放,确保回放的顺序完全一致,以达到回放后的数据也是一致的目的。回放完成后可通过数据对比工具对比两个目标库的数据,在排除了幂等SQL的前提下,验证所有SQL是否在两个目标库上语义完全一致。

3) SQL回放器往目标数据库中并发回放SQL,场景不同,回放方式也不同。仿真和摸高模式,采用多并发回放,两个目标数据库是独立的,互不干扰。一致性模式,采用单并发回放,两个目标数据库回放是同步,即对于一条SQL,先回放同构目标数据库,成功之后再回放异构目标数据库,如果同构目标数据库回放失败,则该SQL就不再异构目标数据库上回放了。

4) 回放完成的SQL会经过回放分析器进行分析,将回放异常的结果以及根据配置的慢SQL标准分析得出的慢SQL结果存入回放记录表中。

四、应用场景

1. 数据库兼容性和性能验证

互联网客户将云数据库搬迁到华为云数据库RDS for MySQL或GaussDB(for MySQL),以及金融客户使用华为云GaussDB数据库替代传统数据库,可以采用录制回放验证华为云数据库的稳定性和性能。

2. 数据库重大问题复现定位

针对异构数据库搬迁,如某商业数据库搬迁到GaussDB,如内核做了该商业数据库类型的兼容性或者使用UGO进行对象迁移,可以采用录制回放验证存储过程、触发器等对象的执行成功率和结果的正确性。

3. 数据库大版本间升级验证

RDS for MySQL、GaussDB(for MySQL)及GaussDB从各自的低版本升级到高版本,可以采用录制回放验证版本升级后是否存在功能变化或性能劣化。

DRS录制回放,通过业务仿真提前感知业务稳定性和性能,保障客户割接后数据库的稳定可靠运行。

今天的分享就到这里了,欢迎小伙伴们讨论交流~文章来源地址https://www.toymoban.com/news/detail-799539.html

到了这里,关于GaussDB技术解读系列:5分钟带您了解DRS录制回放的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GaussDB技术解读系列之SQL Audit,面向应用开发的SQL审核工具

    本文分享自华为云社区《​​GaussDB技术解读系列之SQL Audit,面向应用开发的SQL审核工具》​​,作者:华为云数据库和应用迁移专家。 我们先从一个SQL语句说起(以某传统单机数据库为例)。 也许这就是我们业务代码中潜藏的一个SQL语句,对于一个普通开发者来说,这个语

    2024年02月14日
    浏览(32)
  • GaussDB OLTP云数据库配套工具DRS

    目录 一、前言 二、DRS定义与使用场景 1、DRS定义 2、DRS场景示意图 三、DRS核心功能 1、实时迁移管理 2、实时同步管理 3、备份迁移管理 4、数据订阅管理 5、实时灾备管理 四、小结 华为GaussDB云数据库提供了配套的生态工具数据复制服务DRS。 DRS围绕云数据库,降低数据库之间

    2024年02月13日
    浏览(26)
  • 带您解读DeepBook经济原理

    DeepBook是Sui上的第一个原生流动性层,通过Sui可预测且低廉的gas费,将促进DeepBook上的大规模交易活动。鉴于DeepBook的中央限价订单簿(Central Limit Order Book,CLOB)架构,交易量越大,资产价格越趋于规范,从而满足买家和卖家的双重需求。 Sui主网的前90天数据证明了其gas费模型

    2024年02月11日
    浏览(31)
  • kubernetes--技术文档--基本概念--《10分钟快速了解》

    Kubernetes 也称为 K8s,是用于自动部署、扩缩和管理容器化应用程序的开源系统。 它将组成应用程序的容器组合成逻辑单元,以便于管理和服务发现。Kubernetes 源自Google 15 年生产环境的运维经验,同时凝聚了社区的最佳创意和实践。 Kubernetes 是开源系统,可以自由地部署在企

    2024年02月12日
    浏览(40)
  • 关于ROM和Flash,一文带您清楚了解

    大家都知道存储器主要包含RAM和ROM,之前也给大家讲过两者的不同,那今天是主要带大家了解下EEPROM 和 flash,区分这两者。话不多说,通程创品直接给大家分享干货。 EEPROM的全称是“电可擦除可编程只读存储器”,即Electrically Erasable Programmable Read-Only Memory。是相对于紫外擦

    2024年02月01日
    浏览(25)
  • [FPGA IP系列] 2分钟了解FPGA中的BRAM

    FPGA设计中,BRAM是一项非常关键的内置存储资源,FPGA开发需要熟练使用BRAM,今天再复习一下BRAM的知识,包括BRAM的定义、组成、应用等等。 RAM是Random Access Memory,也就是随机访问数据存储器,RAM的内部是一个一个小内存单元(可以看成是一个小格子)组成。 每个内存单元都对应

    2024年02月12日
    浏览(37)
  • 简单了解GaussDB

    大家都已经很熟悉openGauss了,昨天我的文章中说陕西电力的用采系统用Gaussdb替代了Oracle,就有朋友问我这个Gaussdb是不是就是openGauss。这个问题还真的有点不好回答,Gaussdb和openGauss渊源很近,但是还不是一码事。华为在数据库产品这方面还是挺复杂的。这个Gaussdb实际上指的是

    2024年03月09日
    浏览(25)
  • 《万字长文带你解读AIGC》系列之技术篇

    欢迎关注『CVHub』官方微信公众号! Welcome to back! 在《万字长文带你解读AIGC入门篇》 一文中,我们详细为大家介绍了 AIGC 的相关概念、背景及其如此火爆的原因,接下来我们将进一步深入探讨AIGC背后的技术栈。 作为本系列的技术篇,将从多个角度来介绍 AIGC 的技术栈,其中

    2024年02月09日
    浏览(26)
  • 云原生技术系列:“一图一文”全面了解云原生

    导言: 至如今,云计算这个概念已经火了十年有余,我们这些相关IT从业者也经历了听闻、理解、应用、熟练这么个漫长的过程。当下,千行百业已从积极拥抱云计算向升级为云原生应用方向演进,特别在数字化时代的洪流中,云原生被视为未来社会数字化转型最有效的利器

    2024年02月16日
    浏览(31)
  • 十分钟实现 Android Camera2 视频录制

    因为工作中要使用 Android Camera2 API ,但因为 Camera2 比较复杂,网上资料也比较乱,有一定入门门槛,所以花了几天时间系统研究了下,并在 CSDN 上记录了下,希望能帮助到更多的小伙伴。 上两篇文章使用 Camera2 实现了相机预览和拍照的功能,这篇文章我们接着上文,来实现

    2024年02月11日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包