Tokyo Tyrant(TTServer)系列-備份恢復和增加從庫

Tokyo Tyrant(TTServer)系列-備份恢復和增加從庫

      TTServer在使用中它非常高效和可靠,那麼如果我們的服務運行一段時間後,需要增加一個從庫(ttserver)來分擔壓力或者用於負載均衡和HA,因爲是線上系統,那麼就不應該停機,那麼我們應該怎麼對數據進行備份和拷貝,然後啓動一個slave從庫呢?  

1.如何備份和恢復

      登錄到ttserver服務器,執行如下命令

      ]# tcrmgr copy -port 11211 localhost  /data/backup.tch

       localhost :ttserver主機名

       /data/backup.tch  備份文件保存的路徑,請注意,這裏指ttserver所在機器的路徑。

     同樣,也可以備份遠程機器,

      ]# tcrmgr copy -port 11211 remotehost  /data/backup.tch

     備份文件將保存在remotehost的/data/backup.tch

      接下來恢復數據就比較簡單,直接替換掉原有ttserver的數據文件,啓動就可以了。

      這種方式適用於定期的數據備份,在出現災難故障時可以恢復到某一個時間的數據。不適合用來增加從庫時需要的數據庫文件。

2.如何不停機增加從庫

     從庫需要進行同步,那麼就需要有個文件的時間版本,防止數據衝突。

     首先我們建立一個一個如下的腳本文件,存爲"backup.sh",並賦予執行權限(chmod 755 backup.sh)。比如存在:

/data/backup/路徑下。

#! /bin/sh
srcpath="$1"
destpath
="$1.$2"
rm 
-f "$destpath"
cp 
-f "$srcpath" "$destpath"
     接下執行如下命令,執行的時間會根據你的磁盤性能和數據大小而定。
tcrmgr copy -port 11211 masterhost '@/data/backup/backup.sh'  

materthost:主庫主機名,請注意:backup.sh存放的路徑是在materthost機器上。

'@/data/backup/backup.sh'  :如果tcrmgr copy命令中,參數以@開始,那麼後面的字符串作爲命令行執行。

 

執行完成後,我們進入ttserver的數據目錄,執行ls -lh會發現類似下面的文件名,

-rw-r--r--  1 root root 9.2G Aug 25 14:31 casket.tch.1251181588942889

請確認產生casket.tch.xxxxx類似的文件名,xxxxx代表時間戳。

接下來在從庫salve上以我們備份的文件來運行ttserver,把時間錯寫入到一個時間戳文件ttserver.rts。

 

]$ ls
]
$ cp casket.tch.xxxxx casket.tch
]
$ echo xxxxx >ttserver.rts
]
$ mkdir ulog
]
$ ttserver -mhost masterhost -mport mport -port 11211 -ulog ulog -sid 2 -rts ttserver.rts  casket.tch

運行後,ttserver將會以此時間戳進行同步。

masterhost :主庫主機名

mport :  主庫端口號

到此我們就完成了一個salve從庫ttserver的增加。

3.小結

  推薦備份也使用2中用到的方式,上面帶上了時間戳,可以精確的知道數據的版本時間。

  另外請注意:在使用此方法進行備份的時候,ttserver會在備份過程中一直保持同步阻塞和不修改數據。所以可以保證備份出來的版本跟時間戳的一致性。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章