首批通过分布式安全可靠测评,为关键业务系统打造
概述
更新时间:2023-06-16 10:43:21
本文为您介绍 OceanBase 迁移评估工具(OceanBase Migration Assessment,OMA)的系统架构、角色、集群特点和回放流程。
系统架构
单机版本所有功能均在一台机器上完成,无特殊的拓扑架构,直接使用即可。分布式版本的系统架构图如下。

多个 Worker 组成回放集群,可以对目标端的 OceanBase 数据库进行数据回放。
Client 发起回放,控制每台 Worker 同时进行数据回放,并且汇总回放数据,最后生成报告。
角色
进行分布式回放的过程中,整个系统有以下两种角色:
Worker
用于进行回放的节点,通常可以配置为 2~10 个节点。同一台物理机上,可以同时启动多个 Worker。多个 Worker 之间互不影响,但需要在不同的目录中,且每个 Worker 的名称是唯一的。
您需要提前启动 Worker。启动后可以进行多次回放,且无需重启 Worker。
Client
用于对 Worker 进行调度控制的机器。Client 类似单机版本的程序,每次都会从 Client 端发起回放,回放完成后,Client 会汇总每个 Worker 的信息,生成报表。
您可以启动多个 Client,每个 Client 对应一个回放任务,互相之间无影响。
集群特点
组网方式
多个 Worker 和多个 Client 共同组成 OMA 集群,它们之间需要网络连通。OMA 集群的组网方式包括组播组网和固定 IP 组网:
组播组网:该方式较为方便,无需进行特别设置,但需要部署的网络环境允许。
固定 IP 组网:该方式需要提前了解每个节点的 IP 地址。启动节点时,将 IP 地址作为参数传入 Worker 和 Client 中。固定 IP 组网方式适合较为复杂的网络环境。
数据存储
多个 Worker 组成的集群自带 Cache 和存储系统,可以使用 SQL 语句对集群中的数据进行操作。回放过程中,会存储回放的 Metrics 信息至集群中。
由于负载采集文件本身可能比较大,系统不会将负载采集文件解析出的所有 SQL 都存储至集群中。而是会通过文件分发的方式,将解析完成的数据通过 Client 发送至每个 Worker,以提升效率。
回放流程
负载采集文件解析

Client 启动一个解析任务。
Client 在本地进行数据解析。解析过程中,通过文件的形式均匀分发所有解析完成的文件至每一台 Worker 中,准备进行回放。
生成解析任务的结果集名称,用于后续进行回放。
数据回放

Client 启动 SQL_AUDIT 扫描器,扫描 OceanBase 数据库端的 SQL_AUDIT 视图,采集 SQL 和源端进行对比。
Client 启动一个回放任务,任务的数据源为上一步数据解析的结果集名称。
(可选)如果环境中存在 OCP,Client 启动 OCP 的快照机制,生成一个 OceanBase 数据库的快照点。
通知全部拥有该结果集的 Worker 进行数据回放。此时,所有 Worker 开始向 OceanBase 数据库回放流量。
回放完成后,Worker 会存储自身的回放结果至集群的 Table 中,由 Client 汇总结果。
Client 拉取集群中的 Table 数据进行汇总,并结合 SQL_AUDIT 的扫描结果,生成回放报告。
Client 新增一个 OceanBase 数据库的快照点,并且获取两个快照点之间的 OceanBase 数据库负载、系统和慢查询等状态,生成回放过程中 OceanBase 数据库的负载报告。