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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/87818.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/87818.shtml
英文地址,請注明出處:http://en.pswp.cn/web/87818.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

棧與隊列:算法基礎的核心差異

理解棧和隊列的異同對打好算法基礎太重要了&#xff01;它們都是編程和算法中無處不在的線性數據結構&#xff0c;核心區別在于操作數據的順序。下面我來幫大家清晰梳理它們的異同點&#xff1a;一、相同點都是線性數據結構&#xff1a;數據元素之間邏輯上呈現“一個接一個”的…

HCIA-生成數協議(STP)

前言&#xff1a;本博客僅作記錄學習使用&#xff0c;部分圖片出自網絡&#xff0c;如有侵犯您的權益&#xff0c;請聯系刪除 ? 本篇筆記是根據B站上的視頻教程整理而成&#xff0c;感謝UP主的精彩講解&#xff01;如果需要了解更多細節&#xff0c;可以參考以下視頻&#xf…

基于內網穿透技術的Stable+Diffusion+3.5本地化部署與遠程圖像生成架構

文章目錄 前言1. 本地部署ComfyUI2. 下載 Stable Diffusion3.5 模型3. 演示文生圖4. 公網使用Stable Diffusion 3.5 大模型4.1 創建遠程連接公網地址 5. 固定遠程訪問公網地址 前言 在數字內容創作行業中&#xff0c;利用本地化服務器進行人工智能部署的策略正逐步成為優化制作…

私有云平臺實戰-OpenStack入門體驗

目錄 #1.1云計算概述 1.1.1什么是云計算 1.1.2云計算的服務模型 1.1.3OpenStack概述 #2.1OpenStack一鍵部署 2.1.1在線安裝 2.1.2使用本地倉庫離線安裝 2.1.3創建云主機 1.1云計算概述 云計算是一種基于互聯網的計算方式&#xff0c;通過網絡將共享的軟硬件資源和信息按需提供…

專題:2025即時零售與各類人群消費行為洞察報告|附400+份報告PDF、原數據表匯總下載

原文鏈接&#xff1a;https://tecdat.cn/?p42808 即時零售的崛起正在重塑消費市場的時間與空間邊界。從清晨的第一杯咖啡到深夜的應急零食&#xff0c;消費者的需求不再受限于傳統營業時間。與此同時&#xff0c;不同人群的消費習慣呈現出鮮明差異&#xff0c;Z世代沉迷線上娛…

【一起來學AI大模型】算法核心:數組/哈希表/樹/排序/動態規劃(LeetCode精練)

以下是五大核心算法的重點解析和LeetCode經典題解&#xff0c;包含最優解法和模板代碼&#xff1a;一、數組操作&#xff08;雙指針/滑動窗口&#xff09;核心思想&#xff1a;通過索引指針高效遍歷與操作數組1. 移動零&#xff08;No.283&#xff09;def moveZeroes(nums):slo…

CSS之基礎語法一文全解析

CSS之基礎語法一文全解析 一、CSS語法核心結構&#xff1a;選擇器聲明塊1.1 基礎語法模板1.2 關鍵組成部分 二、選擇器全解析&#xff1a;精準定位目標元素2.1 基礎選擇器&#xff08;必掌握&#xff09;2.1.1 標簽選擇器&#xff08;類型選擇器&#xff09;2.1.2 類選擇器&…

vue 前端動態導入文件 import.meta.glob 導入圖片

背景&#xff1a; 在開發過程中&#xff0c;前端會引入資源文件&#xff0c;這里主要是引入圖片。在開發環境&#xff0c;導入的圖片顯示正常&#xff0c;但是打包部署后&#xff0c;導入的圖片就不能正常顯示。 原因分析&#xff0c;可能有如下幾點&#xff1a; 1.圖片不能顯示…

RocketMQ-Dashboard頁面報Failed to fetch ops home page data錯誤

今天安裝RocketMQ-Dashboard&#xff0c;訪問主頁&#xff0c;頁面彈框提示Failed to fetch ops home page data&#xff0c;F12發現控制臺輸出網絡請求跨域。解決&#xff1a;不要用127.0.0.1訪問&#xff0c;用localhost就不報錯了

0704-0706上海,又聚上了

上次&#xff0c;還是0413&#xff0c;當時寫了一篇&#xff0c;下次相見是何時&#xff1f;也鼓勵自己下次相見是找到工作&#xff08;實習也算&#xff09;&#xff0c;沒想到真找到了&#xff0c;DW App 說到實習&#xff0c;其實沒認真投遞很多&#xff0c;互聯網公司除了阿…

【win電腦-程序CMD自啟動問題-開機就自啟動-查找原因-解決方式】

【win電腦-程序CMD自啟動問題-開機就自啟動-查找原因-解決方式】 1&#xff0c;情況說明&#xff1a;2&#xff0c;問題描述1-這是什么窗口 2-原因分析&#xff1a;3-我的努力-嘗試解決&#xff1a;1&#xff0c;任務管理器中查看狀態2&#xff0c;查看啟動文件夾3&#xff0c;…

Go語言實現雙Token登錄的思路與實現

Go語言實現雙Token登錄的思路與實現 引言 在現代Web應用中&#xff0c;身份認證是保障系統安全的重要環節。傳統的單Token認證方式存在一些安全隱患&#xff0c;如Token泄露可能導致長期風險。雙Token機制&#xff08;Access Token Refresh Token&#xff09;提供了更好的安全…

映射阿里云OSS(對象存儲服務)

參考&#xff1a;使用阿里云進行OSS對象存儲&#xff08;超詳細&#xff09; 一文掌握SpringBoot注解之Component 知識文集(1) ConfigurationProperties注解原理與實戰 1.配置屬性類 AliOssProperties package com.sky.properties;import lombok.Data; import org.springframe…

Java操作word實戰

文章目錄簡介段落頁頭與頁腳頁碼表格圖片批注文本框目錄圖表簡介 Word編程最重要的類是org.apache.poi.xwpf.usermodel.XWPFDocument。涉及的東西十分復雜。而且Apache poi操作word的技術非常不成熟。代碼中本身有很多bug。 ??Maven的依賴為 <dependency><groupId&…

【Flask】flask中get方法和post方法區別

對于post和get在我以前的認知下一直認為是&#xff1a; 前端發送給后端就稱為post 前端需要從后端返回就用get 但是在開發過程中發現了不僅僅如此 區別 GET 意圖&#xff1a;獲取&#xff08;GET&#xff09; 信息。你只是想讀取服務器上已經存在的資源&#xff0c;你不打算改變…

Linux sudo升級

應對 Linux sudo 本地提權漏洞&#xff1a;離線升級 Sudo 到安全版本 一、引言 在 Linux 系統中&#xff0c;sudo&#xff08;superuser do&#xff09;是一個非常重要的工具&#xff0c;它允許授權用戶以超級用戶&#xff08;root&#xff09;的權限執行命令。然而&#xff0c…

ubuntu 6.8.0 安裝xenomai3.3

通過以下步驟來獲取和準備 Linux 內核 6.8.0 的源碼&#xff0c;并應用 Xenomai 補丁&#xff1a; 1. 下載 Linux 內核 6.8.0 源碼 你可以從 The Linux Kernel Archives 下載 Linux 內核 6.8.0 的源碼。以下是具體步驟&#xff1a; 訪問內核官方網站&#xff1a; 打開 The Li…

drawRect 觸發時機

在 iOS 開發中&#xff0c;UIView 的 drawRect: 方法&#xff08;或其底層 CALayer 的繪制&#xff09;的觸發時機是由系統控制的&#xff0c;開發者不能直接調用這些方法。以下是觸發視圖繪制的完整機制&#xff1a;一、核心觸發時機 1. 視圖首次顯示 當視圖被添加到視圖層級時…

1.1_4 計算機網絡的分類

在這個視頻中我們會探討計算機網絡的分類&#xff0c;從不同的角度可以對計算機網絡進行不同的分類&#xff0c;我們會從分布范圍、傳輸技術、拓撲結構、使用者和傳輸介質這樣的幾個維度進行討論&#xff0c;在這門課當中需要注意的是標紅色的幾個分類&#xff0c;其他的類別簡…

03每日簡報20250705

每日簡報 新聞簡報&#xff1a;AI行業信任危機浮現 標題&#xff1a;知名科技作者Alberto Romero發文《我對AI行業正在失去所有信任》 來源&#xff1a;The Algorithmic Bridge&#xff08;算法之橋&#xff09; 核心內容&#xff1a; 作者立場&#xff1a;長期支持AI技術…