KunlunDB備份和恢復

KunlunDB發表於2022-02-16

全域性一致性物理備份&恢復基本概念


物理備份:資料庫的物理檔案(資料檔案,交易日誌檔案,引數檔案)的備份。物理備份又可以分為離線備份(冷備份)和聯機備份(熱備份)。


KunlunDB叢集支援聯機備份,備份過程中,資料庫處於執行狀態,應用程式讀寫不會阻塞,由於備份操作發生在主從節點的從節點上,對應用程式的效能基本沒有影響。

KunlunDB備份和恢復



一、備份恢復架構


備份恢復目標:儲存叢集和後設資料叢集

備份恢復排程中心:Cluster manager

備份資料儲存:備份儲存池

叢集備份執行單元:Node Manager



二、基本原理


KunlunDB 叢集備份&恢復工作原理

 

2.1 備份資料目標


在kunlunDB 分散式資料庫叢集中的後設資料叢集存放整個叢集的節點資訊、表結構資訊、事務資訊、備份恢復資訊等,是叢集正常執行的基礎, 後設資料叢集採用一主兩從的高可用架構。


儲存叢集負責存放業務資料,資料分佈在資料分片中(shards),儲存叢集由多個分片組成,每個分片有多個副本。


計算節點的資料是後設資料叢集資料的子集,計算節點本身無狀態,不需要單獨備份。

 

全域性一致性備份可以對整個叢集的資料全部備份(備份全部的後設資料和儲存叢集資料),  也可以只備份部分資料,如只備份某個儲存分片。

 

2.2 全域性一致性備份和恢復

 

備份:在執行備份的開始階段,備份恢復管理器從後設資料庫獲取整個叢集的全域性事務資訊,然後啟動備份,對每個備份目標,同時需要備份目標資料的資料檔案和交易日誌。資料庫檔案和備份期間的交易日誌被集中存放到備份資源池(儲存),所有檔案複製完成後,備份結束。備份資訊記錄在後設資料庫中。備份期間叢集正常執行,不需要停業務。

 

恢復:在執行恢復的開始階段,備份恢復管理器從後設資料庫獲取當前可用的備份資訊,然後從備份資源池複製資料到恢復的目標,資料複製完成後,根據交易日誌執行事務的回滾或前滾,從而將整個叢集恢復到一致狀態。


2.3 備份型別

 

完全備份:備份備份目標的全部資料(資料檔案及交易日誌),是增量備份的基礎。

增量備份:備份上次備份以來的增量資料及交易日誌。

全部備份:備份整個叢集的資料(後設資料及全部的儲存叢集資料)。

部分備份:只備份某個分片的資料。


2.4 恢復型別


全部恢復:恢復整個叢集

部分恢復:只恢復某個分片

基於時間的恢復:恢復到某個時間點

基於事務的恢復:基於某個事務編號的恢復



三、執行步驟


備份


3.1 設定備份策略


確定備份物件, 備份型別,備份目標儲存準備。


3.2 執行備份

 

通過命令列或UI(kunlunDB 提供Web 介面)排程備份

[kunlun@kunlun-test6 util]$ backup --help

Usage of backup:
 -HdfsNameNodeService string
       specify the hdfs name node service, hdf s://ip:port
 -backuptype string
       back up storage node or 'compute' node,default is 'storage' (default "storage")
 -clustername string
       name of the cluster to be backuped
 -coldstoragetype string
       specify the coldback storage type: hdfs .. (default "hdfs")
 -etcfile string
       path to the etc file of the mysql instance to be backuped,
        if port is specified and the related instance is running,
       the tool will determine the etcfile path
 -port string
       the port of mysql or postgresql instance which to be backuped
 -shardname string
       name of the current shard
 -workdir string
       where store the backup data locally for temp use (default "./data")


 

3.3 檢查備份結果,確認備份成功

 

恢復

 

3.4 設定恢復策略


確定恢復物件, 備份型別,備份目標儲存準備


3.5 執行恢復

 

恢復操作指令:

    
    [kunlun@kunlun-test6 util]$ 
    restore 
    --help
    
    Usage of 
    restore:
    
      -HdfsNameNodeService 
    string
    
            specify the hdfs name node service, hdfs:
    //ip:port
    
      -
    enable-globalconsistent
    
            whether 
    restore the 
    new mysql 
    under 
    global 
    consistent restrict
    
      -metaclusterconnstr 
    string
    
            
    current 
    meta 
    cluster 
    connection 
    string 
    e
    .g. 
    user
    :pass@
    tcp(
    ip:port)/
    mysql
    
      -mysqletcfile 
    string
    
            etc 
    file of the mysql which 
    to 
    be restored, 
    if port 
    is provied 
    and mysqld 
    is alive ,
    no need
    
      -origclustername 
    string
    
            
    source cluster name 
    to 
    be restored 
    or backuped
    
      -origmetaclusterconnstr 
    string
    
            
    orig 
    meta 
    cluster 
    connection 
    string 
    e
    .g. 
    user
    :pass@
    tcp(
    ip:port)/
    mysql
    
      -origshardname 
    string
    
            
    source shard name 
    to 
    be restored
    
      -port 
    string
    
            the port of mysql/postgresql instance which 
    to 
    be restored 
    and needed 
    to 
    be running state
    
      -restoretime 
    string
    
            time point the new mysql 
    restore 
    to
    
      -restoretype 
    string
    
            
    restore 
    storage node 
    or 
    'compute' node,
    default 
    is 
    'storage' (
    default 
    "storage")
    
      -workdir 
    string
    
            temporary work path 
    to store the coldback 
    or other 
    type 
    files 
    if needed (default 
    "./data")
    
    
    

    3.6 檢查恢復結果,確認恢復成功



    四、叢集備份恢復演示


    演示如何在kunlunDB  UI 介面做叢集的備份和恢復

     

    環境資訊:


    需要備份的叢集由一個計算節點,一個shard (每個shard 由一主兩從三個節點組成)及後設資料叢集組成(一主兩從)

    KunlunDB備份和恢復


    備份前資料狀態:

     


    KunlunDB備份和恢復

    第一步:啟動備份

    備份操作:點選叢集管理介面的備份按鈕,啟動備份。


    KunlunDB備份和恢復


    第二步:檢查備份狀態

    根據執行時間, 備份成功後, 可以看到:backupcluster succeed資訊。


    KunlunDB備份和恢復


    第三步:恢復叢集

    選擇恢復的時間點,然後確定恢復。


    叢集進入恢復狀態:


     


    KunlunDB備份和恢復

    恢復完成後,系統會在可用的資源區內建立一個新的叢集, 並且恢復備份的資料。

     

    恢復狀態:

    KunlunDB備份和恢復


    恢復的叢集:

    KunlunDB備份和恢復


    進入恢復的叢集計算節點,檢視恢復的資料:

    KunlunDB備份和恢復


    叢集恢復後, 相應的資料也正確恢復。


    END


    來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70011764/viewspace-2855971/,如需轉載,請註明出處,否則將追究法律責任。

    相關文章