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 由一主兩從三個節點組成)及後設資料叢集組成(一主兩從)
備份前資料狀態:
第一步:啟動備份
備份操作:點選叢集管理介面的備份按鈕,啟動備份。
第二步:檢查備份狀態
根據執行時間, 備份成功後, 可以看到:backupcluster succeed資訊。
第三步:恢復叢集
選擇恢復的時間點,然後確定恢復。
叢集進入恢復狀態:
恢復完成後,系統會在可用的資源區內建立一個新的叢集, 並且恢復備份的資料。
恢復狀態:
恢復的叢集:
進入恢復的叢集計算節點,檢視恢復的資料:
叢集恢復後, 相應的資料也正確恢復。
END
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70011764/viewspace-2855971/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 備份和恢復
- redis 備份和恢復Redis
- SqlServer備份和恢復(二)SQLServer
- SqlServer 備份和恢復(一)SQLServer
- 【MySQL】MySQL備份和恢復MySql
- RAC備份恢復之Voting備份與恢復
- Oracle 備份和恢復介紹Oracle
- innobackupex 部分表備份和恢復
- 備份與恢復:polardb資料庫備份與恢復資料庫
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- mydumper備份恢復
- Mysql備份恢復MySql
- gitlab的資料備份和恢復Gitlab
- MySQL備份和恢復方法彙總MySql
- 九 GBase 8a備份和恢復
- MySQL日誌管理,備份和恢復MySql
- 詳解叢集級備份恢復:物理細粒度備份恢復
- MySQL備份與恢復——基於MyDumper/MyLoader 邏輯備份恢復MySql
- Mysql備份與恢復(1)---物理備份MySql
- MySQL 備份與恢復MySql
- RMAN備份恢復技巧
- Jenkins備份與恢復Jenkins
- Grafana 備份恢復教程Grafana
- rman 增量備份恢復
- Postgresql 備份與恢復SQL
- 帝國cms備份和恢復 帝國cms恢復資料
- Mongo 資料庫備份和恢復命令Go資料庫
- db2 命令列備份和恢復DB2命令列
- DBV:冷備份的校驗和恢復
- 2.6.1 CDB中備份和恢復的概述
- 12 使用RMAN備份和恢復檔案
- PostgreSql資料庫的備份和恢復SQL資料庫
- Jira/Confluence的備份、恢復和遷移
- MySQL備份與恢復——基於OUTFILE /LOAD DATA 邏輯備份恢復MySql
- 【PG備份恢復】pg_basebackup 多表空間備份恢復測試
- MySQL 非常規恢復與物理備份恢復MySql
- Mysql備份與恢復(2)---邏輯備份MySql
- GitLab的備份與恢復Gitlab