OceanBase数据库迁移工具介绍和部署

OceanBase数据库迁移工具介绍和部署

OceanBase 迁移服务(OceanBase Migration Service, OMS)是OceanBase数据库提供的一种支持同构或异构数据源与OceanBase数据库之间进行数据交互的服务,具备在线迁移存量数据和实时同步增量数据的能力。

核心组件

OMS社区版内部主要包含:

  • 管理控制台:进行一站式迁移调度。
  • DBCat:数据对象采集和转换组件。
  • 增量拉取组件Store、增量同步组件Incr-Sync、全量导入组件Full-Import和全量校验组件Full-Verification
  • 基础服务组件:集群管理、资源池管理、高可用组件和元数据管理等多个组件,以保证迁移模块的高效调度和稳定运行。

OMS社区版核心组件如下:

分类名词解释
管控组件- Ghana:OMS社区版控制台。
- CM:OMS社区版的集群管理服务。
- Supervisor:OMS社区版的代理服务,负责接收集群管理服务下发的指令并执行。
增量解析组件- Store:用于对数据库事务日志进行拉取解析,并对解析后的日志记录按统一格式存储。下游可以从Store中以一致的方式消费增量数据,无需关心不同数据库间日志格式差异。
- LogProxy:OceanBase数据库日志代理。
框架组件- Incr-Sync:增量同步组件:从增量拉取组件中请求增量数据,并根据用户配置的同步对象进行数据过滤,然后在保证事务时序性及事务一致性的前提下,将日志记录同步至目标实例。
- Full-Import:全量导入组件:负责源库表对象中存量数据的迁移和部分增量数据的同步。
- Full-Verification:全量校验组件:负责迁移表中的行记录进行全字段校验,并针对不一致的数据生成订正语句。
其它- MetaDB:基于容器部署的OceanBase数据库服务,并内置了OceanBase数据库代理,便于外部直接访问。MetaDB可以用于OCP、ODC和OMS等产品的元数据存储。
- InfluxDB:基于容器部署的时间序列数据库服务,用于存储OMS社区版的数据居传输项目的监控数据。

迁移支持

OMS社区版V4.2.9支持从以下异构数据库迁移到OceanBase:

  • MySQL:V5.5、V5.6、V5.7、V8.0
  • MariaDB:V10.2
  • TiDB:V2.x、V3.x、V4.x、V5.x、V6.x、V7.x、V8.x
  • PostgreSQL:V10.x、V11.x、V12.x、V13.x、V14.x、V15.x、V16.x
  • GreenPlum:V4、V5.1
  • HBase:V1.2.0-cdh5.15.2、社区版 V2.x
  • Redis:V2.8.0 及之后版本
  • Hive:V2.1.1、V3.1.3

OMS社区版V4.2.9支持到以下消息组件的数据同步:

  • Kafka V0.9、V1.0、V2.x
  • RocketMQ V4.7.1

部署要求

OMS部署前提:

  • 需要安装docker环境,版本不低于V1.13
  • 需要安装一个存储OMS元数据的数据库(MySQL或OceanBase),服务器配置为2C4G即可。
  • 如果需要收集和展示OMS历史监控数据,还需要部署InfluxDB时序数据库。

数据库到数据库的同步场景下,各组件部署所需要的资源:

CPU内存磁盘
基础服务1C1G100G
管控组件4C7G100G
Store4C8G取决于数据库端日志生成速度和OMS中增量数据的保存时间
Incr-Sync2C8G5G
Full-Import2C4G5G
总计13C28G>210G

数据库到大数据的同步场景下,各组件部署所需要的资源:

CPU内存磁盘
基础服务1C1G100G
管控组件4C7G100G
Store4C8G取决于数据库端日志生成速度和OMS中增量数据的保存时间
Incr-Sync2C4G5G
Full-Import2C4G5G
总计13C24G>210G

单节点部署

⭐️ OMS下载地址:https://www.oceanbase.com/softwarecenter
⭐️ 迁移同步工具 => OceanBase迁移服务 V4.2.9_CE

  1. 部署存储OMS元数据的数据库(MySQL或OceanBase)。

  2. 加载OMS镜像文件到docker环境:

sudo docker load -i oms_4.2.9-ce.tar.gz

加载完成后,检查镜像唯一标识符:

$ sudo docker images
REPOSITORY                                   TAG                 IMAGE ID          
work.oceanbase-dev.com/obartifact-store/oms  feature_4.0.0-ce    2786e8a6eccd        

这里<OMS_IMAGE>可以是2786e8a6eccd或者work.oceanbase-dev.com/obartifact-store/oms:feature_4.0.0-ce

  1. (可选)部署时序数据库。

如果需要能够收集和展示监控数据库,可以部署时序数据库InfluxDB。目前时序数据库仅支持单节点部署,不具备高可用能力,可以将时序数据库和OMS社区版混合部署在同一台宿主机上。

📖 部署InfluxDB参考:https://www.oceanbase.com/docs/community-oms-cn-1000000002947306

  1. 从加载的镜像中获取部署脚本docker_remote_deploy.sh
sudo docker run -d --net host --name oms-config-tool <OMS_IMAGE> bash && sudo docker cp oms-config-tool:/root/docker_remote_deploy.sh . && sudo docker rm -f oms-config-tool

# 替换<OMS_IMAGE>为镜像唯一标识符
sudo docker run -d --net host --name oms-config-tool work.oceanbase-dev.com/obartifact-store/oms:feature_4.0.0-ce bash && sudo docker cp oms-config-tool:/root/docker_remote_deploy.sh . && sudo docker rm -f oms-config-tool
  1. 准备配置文件。

配置文件config.yaml格式如下。

# OMS社区版元数据库信息(MySQL或OceanBase)
oms_meta_host: ${oms_meta_host}
oms_meta_port: ${oms_meta_port}
oms_meta_user: ${oms_meta_user}
oms_meta_password: ${oms_meta_password}
     
# 用户可以自定义以下三个数据库的名称,OMS 社区版部署时会在元信息库中创建出这三个数据库
drc_rm_db: ${drc_rm_db}
drc_cm_db: ${drc_cm_db}
drc_cm_heartbeat_db: ${drc_cm_heartbeat_db}
     
# OMS 社区版配置
# 单节点部署时,通常配置为当前OMS社区版机器IP(建议使用内网 IP)
cm_url: ${cm_url}
cm_location: ${cm_location}

# 单节点部署时,无需设置 cm_region
# cm_region: ${cm_region}
# 单节点部署时,无需设置 cm_region_cn
# cm_region_cn: ${cm_region_cn}
cm_is_default: true
cm_nodes:
 - ${cm_nodes}
     
# 时序数据库配置
# 默认值为 false。如果您需要开启指标汇报功能,请设置为 true
# tsdb_enabled: false 
# 当 tsdb_enabled 为 true 时,请取消下述参数的注释并根据实际情况填写
# tsdb_service: 'INFLUXDB'
# tsdb_url: '${tsdb_url}'
# tsdb_username: ${tsdb_user}
# tsdb_password: ${tsdb_password}

# 用户自定义组件端口号
# 指定 GHANA 服务的端口号
ghana_server_port: xxxxx

# 指定 Nginx 服务的端口号
nginx_server_port: xxxxx

# 指定 CM 服务的端口号
cm_server_port: xxxxx

# 指定 Supervisor 服务的端口号
supervisor_server_port: xxxxx

# 指定 sshd 服务的端口号
sshd_server_port: xxxxx

示例如下:

oms_meta_host: xxx.xxx.xxx.1
oms_meta_port: 2883
oms_meta_user: oms_meta_user
oms_meta_password: ********
drc_rm_db: oms_rm
drc_cm_db: oms_cm
drc_cm_heartbeat_db: oms_cm_heartbeat
cm_url: http://xxx.xxx.xxx.2:8088
cm_location: 100
cm_region: cn-beijing
cm_region_cn: 北京
cm_is_default: true
cm_nodes:
  - xxx.xxx.xxx.2
tsdb_service: 'INFLUXDB'
tsdb_enabled: true
tsdb_url: 'xxx.xxx.xxx.4:8086'
tsdb_username: username
tsdb_password: *******
ghana_server_port: xxxxx
nginx_server_port: xxxxx
cm_server_port: xxxxx
supervisor_server_port: xxxxx
sshd_server_port: xxxxx
  1. 通过部署脚本启动部署工具。
bash docker_remote_deploy.sh -o <OMS容器挂载目录> -c <config.yaml配置文件地址> -i <本机IP地址> -d <OMS_IMAGE>

如果部署失败,可以登录至运行的OMS容器中,查看/home/admin/logs目录下以docker_init为前缀的.log文件,获取日志信息。如果OMS容器未成功启动,则无法获取日志。

  1. 部署完成后,登录Web页面,设置admin和root初次登录密码。

OMS社区版控制台的访问地址:部署OMS社区版的宿主机的IP地址:8089

检查OMS状态:

supervisorctl status

如果nginx、oms_console、oms_drc_cm、oms_drc_supervisor、sshd服务都处于RUNNING状态即为正常。

📖部署完成后,如果需要修改配置,请进行以下操作:

  1. 登录至运行的OMS社区版容器。
  2. 根据业务需求,修改/home/admin/conf/config.yaml文件。
  3. 执行命令python -m omsflow.scripts.units.oms_init_manager --init-config-file
  4. 执行命令supervisorctl restart oms_console oms_drc_supervisor

查看日志

  • Console组件日志的默认目录为/home/admin/logs/ghana/Ghana
  • CM组件日志的默认目录为/home/admin/logs/cm/log
  • Store组件日志的默认目录为/home/ds/store/store{storeport}/log。也可以在OMS社区版控制台查看Store组件日志。
  • Full-Import/Incr-Sync组件日志的默认目录为/home/ds/run/{组件ID}/logs。也可以在OMS社区版控制台查看Full-Import/Incr-Sync组件日志。
  • Full-Verification组件日志的目录为/home/ds/run/{name}/logs。也可以在OMS社区版控制台查看Full-Verification组件日志。
  • Supervisor组件日志:根据/home/ds/supervisor/config/drc.properties文件中logging.path项找到Supervisor组件日志所在位置。

References
【1】https://www.oceanbase.com/docs/community-oms-cn-1000000002947331

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GottdesKrieges

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值