Tokyo Tyrant備份和恢復

2021-09-04 02:01:48 字數 1911 閱讀 8026

tokyo tyrant備份和恢復

備份

1.全量熱備份

備份命令為:

tcrmgr copy -port 1978 localhost dpath.tch.***xx
(其中***xx為備份時間)

根據業務需求及資料庫執行狀態決定備份的頻度,全量熱備時資料庫庫會寫鎖定,讀不受影響。全量備份需記錄備份時間點以提供replication恢復時所用,時間記錄點精確的微秒,可記錄到備份檔案名中,如backup.tch.1259474040630024。

示例備份指令碼:

[ -n "$1" ] || 

[ -n "$2" ] || 

backup_date=`date +%s%n`

backup_date=`expr $backup_date / 1000`

tcrmgr copy -port $ localhost $/backup_$.tch.$

echo "back up finish! $/backup_$.tch.$"

2.增量備份ulog

ttserver產生的ulog在"$basedir/ulog"目錄,設定了ulimsiz後會按檔案尺寸進行切割並按資料公升序命名,可以根據備份的頻度,按ulog檔案最後修改時間,備份到ulog最大命名數字的前乙個檔案,同時也需記錄備份時間,可將時間記錄在打包備份的檔名中,如backup_ulog.1259474040630024.tar.gz, 和全量備份一樣,精確到微秒。

注意:全量備份速度和伺服器情況有關,基本接近直接copy速度。

恢復

1.使用replication恢復

根據備份方案中資料庫全量備份方法得到的備份庫,如backup.tch.******,

echo ****** > "$basedir/rts" 寫入備份時間點,即恢復時間點。

cp backup.tch.***xx database_name.tch

啟動:./ttservctl start

恢復的庫會根據時間點去master庫同步資料。

2.使用日誌增量恢復

先使用前乙個全量備份的資料庫檔案作為基資料庫,下線要整理的ttserver。

清空原來的日誌,然後解壓,再cp 備份的ulog檔案 $basedir/ulog/,

echo ****** > "$basedir/rts" 寫入備份時間點(壓縮檔案名中包含),即恢復時間點。

單獨啟動ttserver : ttserver database_name.tch

從日誌恢復:tcrmgr restore -port port -rcc localhost ulog

ctrl+c停掉ttserver,然後使用 ./ttservctl start 啟動,master結構重新建立。

注意:日誌增量恢復環節應避免受其他ttserver的伺服器影響,如可以使用乙個不使用的埠進行恢復,這樣資料也不會影響到其他伺服器,恢復後再用原來的啟動指令碼啟動,形成原來的dual master結構。

備註

基於dual master的結構具有較高的可靠性,dual master其實就是實時的熱備方案,所以在備份頻度和廣度上是否可以適當寬鬆一些?建議每天備份全量即可,增量的日誌一直留在伺服器上,但是日誌的分割尺寸要根據業務和恢復的粒度來確定。

Tokyo Tyrant備份和恢復

備份 1.全量熱備份 備份命令為 1 tcrmgr copy port 1978 localhost dpath.tch.xx 其中 xx為備份時間 根據業務需求及資料庫執行狀態決定備份的頻度,全量熱備時資料庫庫會寫鎖定,讀不受影響。全量備份需記錄備份時間點以提供replication恢復時所用,時...

Elasticsearch的資料備份和恢復以及遷移

目錄 1.為什麼備份?2.資料備份 3.資料恢復 4.es備份資料遷移目標伺服器 5.指令碼備份恢復 常見的資料庫都會提供備份機制,以解決在資料庫無法使用的情況下通過備份來恢復資料減少損失。elasticsearch 雖然有良好的容災性,但以下原因,其依然需要備份機制 1 資料災備 在整個集群無法正...

mysql利用mysqldump備份和恢復

mysqldump使用語法 mysqldump u 使用者 h host p 密碼 dbname table 路徑 遠端備份單庫例子 mysqldump uroot pabc123456 h192.168.1.101 zabbix gzip mysql data back zabbix users....