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會在備份過程中一直保持同步阻塞和不修改數據。所以可以保證備份出來的版本跟時間戳的一致性。

發佈了31 篇原創文章 · 獲贊 11 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章