OB導數工具使用經驗分享

来源:https://www.cnblogs.com/coygfly/p/18130672
-Advertisement-
Play Games

本次按照目前最新版本Sqlserver2022進行記錄 先決條件 任何受支持的 Linux 發行版上的 Docker 引擎 1.8 及更高版本。 有關詳細信息,請參閱 Install Docker(安裝 Docker)。 有關硬體要求和處理器支持的詳細信息,請參閱SQL Server 2022:硬體 ...


一、前言

OBDUMPER/OBLOADER是OceanBase官方推出的數據導出導入工具,可以用於OB租戶間的數據遷移,對OB租戶進行邏輯備份。不同於MySQL的MyDumper是C語言開發,OBDUMPER/OBLOADER是由java語言開發,因此它具備跨平臺相容性(x86/arm)。關於OBDUMPER/OBLOADER是一個功能非常豐富的工具,其使用方法在官方文檔上面描述的已經很詳細了,包括命令行選項、使用示例、參數調優等。如何使用該工具本文就不再贅述了,可以參考官方文檔,本文主要想分享一些我使用這個工具的一些經驗和踩過的坑。

二、旁路導入

旁路導入的原理就是使用LOAD DATA /*+ direct */而非INSERT導入數據,所以需要設置用戶file許可權,開啟secure_file_priv參數,具體可以參考OCEANBASE官方文檔的load data部分:https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000218027。加--direct 代表開啟旁路導入,旁路導入可以繞過 SQL 層的介面,直接在 data 文件中直接分配空間並插入數據,從而提高數據導入的效率。這個和MySQL的load data有點相似,但又不太一樣,OB的load的其實是轉換為insert插入,只有加上hint語法/*+ direct */ 才會開啟旁路導入。

導入時遇到一個報錯:'no files are available',需要檢查目錄是否掛載在每個observer下,以及目錄的許可權。

三、表結構導出

對於obdumper428之前的版本,在對oracle租戶下大量表的表結構進行導出時,需要查詢系統視圖反拼語句,而對於ob的系統視圖的性能一直是一個問題,所以這種場景下很容易出現卡死或導出慢等性能問題。從obdumper428版本開始,支持使用show create table導出,解決了之前版本需要進行複雜的系統視圖查詢而帶來的性能問題。對於oceanbase oracle 4.0.0之前的版本,使用--no-sys 選項將開啟使用show create table方式導出;對於oceanbase oracle 4.0.0 及之後的版本,使用新增選項--compact-schema 開啟show create table方式導出。但需要註意的是使用show create table方式導出,對於oceanbase oracle 2.2.7~4.0.0版本,無法導出分區表的唯一索引定義。雖然ob的oracle租戶也支持show create table語法,但只能導出表結構,對於創建索引的語句還是需要通過查詢系統視圖反拼語句。

四、其他註意事項

1. 對於大數據量的表如果要先清除,使用--truncate-table而不用--delete-from-table,避免造成大事務刪除緩慢。生產環境建議手動清空;

2. 導入導出時報錯timeout,可以在配置文件conf里修改sql執行超時參數:{ob-loader-dumper}/conf/session.config.json ;

3. --all與--table '*'的區別,--all表示所有對象、包括視圖等,--table表示僅導出表;

4. --thread參數用於設置導出時的併發數,預設會使用本機的CPU 乘以 2,所以如果是在observer上進行導出,那一定要設置這個參數在一個合理的值,避免打爆observer的cpu;

下麵是在數據遷移時常用的幾個命令:

表結構導出與導入
./obdumper -h xx.x.x.x -P 2883 -u test@mysql#cluster_a -p ****** --no-sys -D USERA --ddl --table '*' --thread=8 -f /output
./obloader -h xx.x.x.x -P 2883 -u test@mysql#cluster_a -p ****** --no-sys -D USERA --ddl --table '*' --thread=8 -f /output

數據導出與導入
./obdumper -h xx.x.x.x -P 2883 -u test@mysql#cluster_a -p ****** --no-sys -D USERA --csv --table '*' --thread=8 -f /output
./obloader -h xx.x.x.x -P 2883 -u test@mysql#cluster_a -p ****** --no-sys -D USERA --csv --table '*' --thread=8 -f /output

表結構與數據導出導入
./obdumper -h xx.x.x.x -P 2883 -u test@mysql#cluster_a -p ****** -D USERA --ddl --csv --no-sys --table '*' --thread=8 -f /output
./obloader -h xx.x.x.x -P 2883 -u test@mysql#cluster_a -p ****** -D USERA --ddl --csv --no-sys --table '*' --thread=8 -f /output

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 目錄 目錄目錄購買伺服器環境要求硬體配置CPU記憶體磁碟網路軟體環境JRE(Java Runtime Environment)MySQL(可選)Web 伺服器(可選)Wget(可選)VIM(可選)瀏覽器支持名詞解釋~(符號)運行包工作目錄購買功能變數名稱伺服器安裝配置遠程連接阿裡雲網頁連接Xshell程式連接 ...
  • 以Flink為主的計算引擎配合OLAP查詢分析引擎組合進而構建實時數倉**,其技術方案的選擇是我們在技術選型過程中最常見的問題之一。也是很多公司和業務支持過程中會實實在在遇到的問題。 很多人一提起實時數倉,就直接大談特談Hudi,Flink的流批一體等,但實際上,**實時數倉包括任何架構體系的構建如... ...
  • 在實際項目中,從Kafka到HDFS的數據是每天自動生成一個文件,按日期區分。而且Kafka在不斷生產數據,因此看看kettle是不是需要時刻運行?能不能按照每日自動生成數據文件? 為了測試實際項目中的海豚定時調度從Kafka到HDFS的Kettle任務情況,特地提前跑一下海豚定時調度這個任務,看看 ...
  • 在Centos7中使用的包管理工具是yum,當然使用包管理工具安裝也是最方便的。 本文操作內容需要在root用戶下,否則有些步驟無法成功執行。 系統環境信息展示 安裝 MySQL 提供的 RPM wget https://dev.mysql.com/get/mysql80-community-rel ...
  • 本文介紹瞭如何結合LFU淘汰策略與訪問頻率優化,實現在電商平臺等業務場景下,精準管理Redis中20萬熱點數據。 ...
  • 主從延遲調優思路 1、什麼是主從延遲? 本質是從庫的回放跟不上主庫,回放階段的延遲 2、主從延遲常見的原因有哪些? 1、大事務,從庫回放時間較長,導致主從延遲 2、主庫寫入過於頻繁,從庫回放跟不上 3、參數配置不合理 4、主從硬體差異 5、網路延遲 6、表沒有主鍵或者索引大量頻繁的更新 7、一些讀寫 ...
  • 我們討論面試中各大廠的SQL演算法面試題,往往核心考點就在於視窗函數,所以掌握好了視窗函數,面對SQL演算法面試往往事半功倍。 ...
  • MySQL安裝 官方: https://www.mysql.com/ MySQL官方提供了兩種不同的版本: 社區版本(MySQL Community Server) 免費, MySQL不提供任何技術支持 商業版本(MySQL Enterprise Edition) 收費,可以使用30天,官方提供技術 ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...