tokyo tyrant備份和恢復
備份
1.全量熱備份
備份命令為:
tcrmgr copy -port 1978 localhost dpath.tch.***xx(其中***xx為備份時間)
根據業務需求及資料庫執行狀態決定備份的頻度,全量熱備時資料庫庫會寫鎖定,讀不受影響。全量備份需記錄備份時間點以提供replication恢復時所用,時間記錄點精確的微秒,可記錄到備份檔案名中,如backup.tch.1259474040630024。
示例備份指令碼:
[ -n "$1" ] ||2.增量備份ulog[ -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.$"
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....