【OceanBase相關】02-OceanBase數據庫NFS備份實踐

文章目錄

    • 一、前言
      • 1、概述
      • 2、備份方式
      • 3、備份流程
      • 4、恢復流程
    • 二、NFS備份
      • 1、注意事項
      • 2、服務端配置
      • 3、客戶端配置
      • 4、備份策略配置
    • 三、常用操作
    • 四、Q&A
      • 1、數據備份任務執行失敗,提示`start log archive backup when not STOP is not supported`
        • 1.1、問題說明
        • 1.2、解決措施
      • 2、數據備份任務執行失敗,提示`data backup pre-check failed, log backup not started`
        • 2.1、問題說明
        • 2.2、解決措施
    • 五、性能調優
      • 1、備份性能調優
        • 1.1、備份性能分析
        • 1.2、備份性能調優
          • 1.2.1、網絡配置調整
            • - 分析過程
            • - 解決措施
        • 1.3、備份性能復測

一、前言

1、概述

物理備份與恢復概述

OceanBase集群支持三副本冗余機制,本身已經做了一層數據保護,OceanBase數據庫提供備份恢復功能,用于增強數據庫高可用,如后期出現存儲介質損壞或者用戶誤刪數據等情況導致數據丟失,可通過恢復的方式恢復用戶數據
OceanBase數據庫支持集群級別的物理備份,集群的物理備份指的是該集群中除 sys租戶以外的其他所有租戶的物理備份,物理備份由基線數據、日志歸檔數據兩種數據組成,因此物理備份由日志歸檔數據備份兩個功能組合而成:

  • 日志歸檔是指日志數據的自動歸檔功能,OBServer 會定期將日志數據歸檔到指定的備份路徑。這個動作是全自動的,不需要外部定期觸發。
    日志定期歸檔時間的計算公式如下:
    日志的定期歸檔時間 = checkpoint_interval /2
    其中,checkpoint_interval的值可由用戶自行配置,詳細配置操作請參見配置備份參數

  • 數據備份指的是備份數據的功能,該功能分為全量備份增量備份兩種:
    全量備份是指備份所有宏塊
    增量備份是指備份上一次備份以后新增和修改過的宏塊

2、備份方式

使用S3協議對象存儲OceanBase備份 | 物理備份與恢復概述

目前支持使用NFS(文件存儲)、OSS(阿里云對象存儲)、COS(騰訊云對象存儲)、S3(兼容S3協議對象存儲,如華為云OBS、谷歌GCS)等備份介質,提供了備份、恢復、管理三大功能

  • 官方推薦使用OSS作為備份介質,OSS作為無狀態的對象存儲,比有狀態的NFS4有更高的穩定性,且NFS為保證數據庫數據強一致性需要使用同步模式(禁用系統緩存,NFS性能會更差)
  • V4.2.1 BP7以上版本方可支持S3作為備份介質

3、備份流程

OceanBase支持集群級別租戶級別的備份操作,且支持手動刪除指定的備份和自動刪除過期備份的功能

Image

備份流程大致如下:

  • 當用戶用系統租戶登錄到備份集群以后,需要先用 SQL 發起日志歸檔,等日志歸檔發起完成啟動階段以后,才可以發起基線備份
  • 日志歸檔是定期備份到備份目的端的,只需要用戶發起一次alter system archivelog,日志備份就會在后臺持續進行。日志歸檔是由每個 PG(Partition Group)的 Leader 負責定期將該 PG 的日志歸檔到備份介質指定的路徑,RS(Root Service)負責定期統計日志歸檔的進度,并更新到內部表。
  • 數據備份是需要用戶觸發的,比較常見的場景是周六觸發一次全量備份,周二和周四觸發一次增量備份。當用戶發起數據備份請求時,該請求會首先被轉發到 RS 所在的節點上;RS 會根據當前的租戶和租戶包含的 PG 生成備份數據的任務,然后把備份任務分發到 OBServer 上并行地執行備份任務;OBServer 負責備份 PG 的元信息和宏塊到指定的備份目錄,宏塊按照 PG 為單位進行管理。

備份數據目錄結構示意如下:

datatenant_data_backup_info // 記錄租戶級別基線備份的信息tenant_backup_set_file_info // 比 tenant_data_backup_info 信息更加完整backup_set_1_full_date // 一個全量 Backup Set,后綴以日期結尾,例如:backup_set_1_full_20211014,包含所有數據備份的宏塊信息,是一個單一超大文件backup_set_info // 記錄本次備份single_backup_set_info //記錄本次備份,比 backup_set_info 信息更加完整backup_1 // 1 為 backup_set_idsys_pg_listnormal_pg_listsys_meta_index_file_<task_id>// 系統表的索引,負責根據 pgkey 索引到對應的 PG Meta Filesnormal_meta_index_file_<task_id> // 普通表的索引meta_file_<task_id> // 記錄 Meta 和宏塊列表等信息data // 不區分版本pgkeymajor_data // 基線數據macro_block_1.<sub_task_id>   macro_block_index_1macro_block_2.<sub_task_id>macro_block_index_2minor_data // 轉儲數據task_id_1macro_block_1.<sub_task_id>macro_block_index_1task_id_2macro_block_2.<sub_task_id>macro_block_index_2backup_set_2_inc_date // 一個增量 Backup Set,后綴以日期結尾,例如:backup_set_2_inc_20211014backup_set_info // 記錄本次備份single_backup_set_info backup_2sys_pg_listnormal_pg_listsys_meta_index_file_<task_id>normal_meta_index_file_<task_id>meta_file_<task_id>data...clogbackup_piece_info        // Piece 相關的信息tenant_clog_backup_info roundid_pieceid_date   // 例如:1_1_20211014 single_piece_info    archive_keytableid_partition_id  // 例如:1100611139403779_0....datatableid               // 例如:1100611139403779partition_id        // 例如:01                 // 數據文件2             ...index tableid               // 例如:1100611139403779partition_id        // 例如:01                 // 索引文件2          ..

4、恢復流程

OceanBase 支持租戶級別的恢復操作,恢復是基于已有數據的備份重建新租戶的過程。用戶只需要一個 alter system restore tenant 命令,就可以完成整個恢復過程。
恢復過程包括租戶系統表和用戶表的RestoreRecover過程,Restore是將恢復需要的基線數據恢復到目標租戶的 OBServer,Recover是將基線對應的日志恢復到對應 OBServer。

Image

恢復流程大致如下:
1、在目的集群上用 CREATE RESOURCE POOL命令建立恢復租戶需要的資源池
2、通過ALTER SYSTEM RESTORE TENANT命令調度租戶恢復任務,對于備份恢復來說,RESTORE TENANT命令的內部流程如下:

  • 創建恢復用的租戶
  • 恢復租戶的系統表數據
  • 恢復租戶的系統表日志
  • 調整恢復租戶的元信息
  • 恢復租戶的用戶表數據
  • 恢復租戶的用戶表日志
  • 恢復掃尾工作
    對于單個 PG 來說,恢復的流程就是將 PG 的元信息和宏塊數據拷貝到指定的 OBServer,構建出一個只有基線數據的 PG;然后再把 PG 的日志拷貝到指定的 OBServer,回放到該 PG 的 MemTable 中。這個流程中如果日志的量比較大,可能會觸發轉儲操作。

二、NFS備份

1、注意事項

由于OceanBase數據庫備份需保證數據強一致性,在操作NFS備份過程中,需要注意以下事項

  • 添加新的機器后,在啟動 OBServer 前,需要保證新的機器掛載 NFS 成功或者可以備份到其他介質。
  • 使用 NFS 環境時,需要保證先掛載 NFS,再開啟備份。如果備份期間 NFS 出現問題,需要先停止數據備份和日志備份,再解決 NFS 的問題
  • 在重啟 OBServer 所在的服務器時,需要先啟動 NFS 服務,再啟動 OBServer 服務
  • 由于 OceanBase 數據庫備份的并發控制需依賴 NFS4 的文件鎖功能,故在掛載 NFS 時,需使用 NFS 4.1 及以上版本。
  • 在使用 NFS 作為備份介質時,必須保證所有 OBServer 都掛載了同一個服務器的 NFS。同時,為保證備份的順利進行,需要使用指定的參數掛載NFS

2、服務端配置

  • 配置nfs共享服務,修改/etc/exports配置文件,更改/cephnfs/cephfs/backup目錄所有者和屬組為nfsnobody:nfsnobody(確保客戶端nfsnobody對共享目錄有讀寫權限)
sudo yum install nfs-utils
echo '"/cephnfs/cephfs/backup" "*"(rw,sync,all_squash,no_subtree_check)' >> /etc/exports
chown nfsnobody:nfsnobody -R /cephnfs/cephfs/backup/
  • 配置nfs參數,修改/etc/sysconfig/nfs配置文件,重啟nfs服務
  • RPCNFSDCOUNT=32?

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

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

相關文章

一行命令打開iOS模擬器

要在 Mac 命令行打開 iPhone 15 Pro 模擬器&#xff0c;需滿足已安裝 Xcode 這一前提條件&#xff0c;以下是具體操作步驟&#xff1a; 步驟一&#xff1a;列出所有可用模擬器設備 打開終端&#xff08;Terminal&#xff09;&#xff0c;輸入并執行以下命令&#xff0c;用于列…

Java虛擬機(JVM)家族發展史及版本對比

Java虛擬機&#xff08;JVM&#xff09;家族發展史及版本對比 一、JVM家族發展史 1. 早期階段&#xff08;1996-2000&#xff09; Classic VM&#xff08;Java 1.0-1.1&#xff09;&#xff1a; 廠商&#xff1a;Sun Microsystems&#xff08;Oracle前身&#xff09;。特點&…

嘻游電玩三端客戶端部署實戰:PC + Android + iOS 環境全覆蓋教程

本篇文章將針對“網狐系列嘻游電玩組件”的三端客戶端&#xff08;PC端、安卓端、iOS端&#xff09;進行詳細部署實操講解。文章將以實測部署為核心&#xff0c;提供資源結構說明、平臺適配調整、打包配置、常見問題修復&#xff0c;并輔以必要的關鍵配置代碼。 一、客戶端資源…

LabVIEW實現Voronoi圖繪制功能

該 LabVIEW 虛擬儀器&#xff08;VI&#xff09;借助 MathScript 節點&#xff0c;實現基于手機信號塔位置計算 Voronoi 圖的功能。通過操作演示&#xff0c;能直觀展示 Voronoi 圖在空間劃分上的應用。 各部分功能詳細說明 隨機地形創建部分 功能&#xff1a;根據 “Maximum a…

web刷題筆記

2024isctf ezrce 禁用了一些關鍵字符&#xff0c;查詢函數&#xff0c;系統執行函數&#xff0c;執行函數都有&#xff0c;空格也和斜桿也禁用了&#xff0c;但是其他一些很大一部分字符都沒有禁用&#xff0c;屬于關鍵詞禁用的類型&#xff0c;正常的步驟是去查一下列表&#…

集結號海螺捕魚游戲源碼解析(第二篇):水滸傳捕魚模塊邏輯與服務器幀同步詳解

本篇將全面解構“水滸傳”子游戲的服務端核心邏輯、幀同步機制、魚群刷新規則、客戶端命中表現與服務器計算之間的協同方式&#xff0c;聚焦于 C 與 Unity3D 跨端同步的真實實現過程。 一、水滸傳捕魚模塊資源結構 該模塊包含三部分核心目錄&#xff1a; 子游戲/game_shuihuz…

【產品經理從0到1】原型及Axure介紹

原型分類 原型的三種分類&#xff1a; 草圖原型&#xff1a;?繪稿&#xff0c;制作?便&#xff0c;修改不?便&#xff1b;低保真原型&#xff1a;簡單交互&#xff0c;?設計圖&#xff1b; 最好的原型是??灰的&#xff1b;?保真原型&#xff1a;復雜交互&#xff0c;有…

CVE-2024-23897-Jenkins 2.441之前版本存在任意文件讀取漏洞

1.漏洞介紹 Jenkins 2.441及更早版本&#xff0c;以及LTS 2.426.2及更早版本沒有禁用其CLI命令解析器的一個功能&#xff0c;該功能會將參數中字符后跟的文件路徑替換為該文件的內容&#xff0c;允許未經身份驗證的攻擊者讀取Jenkins控制器文件系統上的任意文件。 2.poc利用 下…

PostgreSQL性能調優與內核優化怎么做?

PostgreSQL 的高級性能調優和內核優化是PGCM認證的核心能力之一&#xff0c;也是企業級數據庫場景中解決性能瓶頸的關鍵手段。以下是直白易懂的實戰解析&#xff1a; 一、性能調優&#xff1a;讓數據庫“跑得更快” 1. 執行計劃優化 問題場景&#xff1a;一個復雜查詢耗時10秒…

DeepSeek是否采用了混合專家(MoE)架構?它如何提升模型效率?

引言 最近&#xff0c;關于DeepSeek是否采用混合專家&#xff08;Mixture of Experts&#xff0c;MoE&#xff09;架構的討論越來越多。MoE技術因其高效的計算特性&#xff0c;已經成為大模型訓練的熱門選擇。那么&#xff0c;DeepSeek到底有沒有用MoE&#xff1f;如果用了&am…

HTTP 請求頭與請求體:數據存儲的底層邏輯與實踐指南

文章目錄 一、數據承載的本質差異1.1、請求頭:元數據的 "集裝箱"1.2、請求體:業務數據的 "運輸艙"二、請求方式的選擇邏輯2.1、GET 請求:無體的輕量級交互2.2、POST 請求:體數據的主力軍2.3、PUT/PATCH 請求:體數據的更新場景三、參數屬性的深度解析3…

【網工第6版】第5章 網絡互聯②

目錄 ■ IPV6 ▲ IPV6報文格式 ◎ IPV6擴展報頭&#xff08;RFC2460&#xff09; ◎ IPv6相關協議 ▲ IPV6地址分類 ◎ IPv6地址基礎 ◎ IPv6地址舉例 ◎ IPv6地址分類 ◎ 特殊地址對比IPv4 vs IPv6 ▲ 過渡技術 本章重要程度&#xff1a;☆☆☆☆☆ ■ IPV6 與IPv4…

關于 梯度下降算法、線性回歸模型、梯度下降訓練線性回歸、線性回歸的其他訓練算法 以及 回歸模型分類 的詳細說明

以下是關于 梯度下降算法、線性回歸模型、梯度下降訓練線性回歸、線性回歸的其他訓練算法 以及 回歸模型分類 的詳細說明&#xff1a; 1. 梯度下降算法詳解 核心概念 梯度下降是一種 優化算法&#xff0c;用于尋找函數的最小值。其核心思想是沿著函數梯度的反方向逐步迭代&a…

[SpringBoot]快速入門搭建springboot

默認有spring基礎&#xff0c;不會一行代碼一行代碼那么細致地講。 SpringBoot的作用 Spring Boot是為了簡化Spring應用的創建、運行、調試、部署等而出現的。就像我們整個SSM框架時&#xff0c;就常常會碰到版本導致包名對不上、Bean非法參數類型的一系列問題&#xff08;原出…

ROS-真機向虛擬機器人映射

問題描述 ROS里的虛擬機械臂可以實現和真實機械臂的位置同步&#xff0c;真實機械臂如何動&#xff0c;ROS里的虛擬機械臂就如何動 效果 步驟 確保庫卡機械臂端安裝有EthernetKRL輔助軟件和KUKAVARPROXY 6.1.101&#xff08;它是一個 TCP/IP 服務器 &#xff0c;可通過網絡實…

ubuntu--安裝雙系統

教程 BIOS設置 啟動盤生成和ubuntu安裝 boot option #1設置USB為第一啟動項 rufus下載 官網&#xff1a; 鏈接 點擊“鏈接”下面的按鈕&#xff0c;即可下載。(注意查看自己的電腦是x64還是x84) 網盤下載&#xff1a; 鏈接

Python項目--基于計算機視覺的手勢識別控制系統

1. 項目概述 1.1 項目背景 隨著人機交互技術的快速發展&#xff0c;傳統的鍵盤、鼠標等輸入設備已經不能滿足人們對自然、直觀交互的需求。手勢識別作為一種非接觸式的人機交互方式&#xff0c;具有操作自然、交互直觀的特點&#xff0c;在智能家居、游戲控制、虛擬現實等領域…

LabVIEW數據采集與傳感系統

開發了一個基于LabVIEW的智能數據采集系統&#xff0c;該系統主要通過單片機與LabVIEW軟件協同工作&#xff0c;實現對多通道低頻傳感器信號的有效采集、處理與顯示。系統的設計旨在提高數據采集的準確性和效率&#xff0c;適用于各種需要高精度和低成本解決方案的工業場合。 項…

java Springboot使用扣子Coze實現實時音頻對話智能客服

一、背景 因公司業務需求&#xff0c;需要使用智能客服實時接聽顧客電話。 現在已經完成的操作是&#xff0c;智能體已接入系統進行對練&#xff0c;所以本文章不寫對聯相關的功能。只有coze對接&#xff5e; 扣子提供了試用Realtime WebSocket&#xff0c;點擊右上角setting配…

棧和字符串,力扣.43.字符串相乘力扣1047.刪除字符串中的所有相鄰重復項力扣.844比較含退格的字符串力扣227.基本計算器II

目錄 力扣.43.字符串相乘 力扣1047.刪除字符串中的所有相鄰重復項 力扣.844比較含退格的字符串 力扣227.基本計算器II 力扣.43.字符串相乘 我們剩下的落兩個數字即可。 class Solution {public static String multiply(String num1, String num2) {int mnum1.length();int n…