Tokyo Tyrant - part 1. (備份/還原)
|
由 Anonymous 於 8月 3, 2010 - 12:18 發表
|
|
|
Tokyo Tyrant 是一個為底層資料庫 (Tokyo Cabinet) 所提供的高並發網路接口。
目前在許多網路相關的場景都可以看到它被廣泛地應用。
本文將簡介 Tokyo Tyrant 備份與還原的功能。
Backup (備份)
.png)
figure 1.
接下來的例子示範了如何備份一個 ttserver,與如何從先前備份的資料庫來還原 ttserver,如圖一所示。
- 首先,啟動一個 ttserver
ttserver /tmp/ex1.tch
- 開啟另外一個終端,並寫入一些資料
tcrmgr put localhost "foo" "bar"
- 檢查資料是否寫入成功
tcrmgr get localhost "foo"
- 備份資料庫
tcrmgr copy localhost /tmp/backup.tch
- 接著模擬 ttserver crash,在第一個終端按下ctrl-c
- 模擬資料庫檔案毀壞
rm /tmp/ex1.tch
- 從備份資料庫檔案還原 ttserver,只需要拷貝資料庫檔案並重啟 ttserver
cp /tmp/backup.tch /tmp/ex1.tch
ttserver /tmp/ex1.tch
- 檢查資料是否已還原
tcrmgr get localhost "foo"
定期地執行備份動作可以避免資料遺失(每天一次或數分鐘一次,取決於寫入操作有多頻繁)。但是我們仍然會失去介於上次備份與下次備份之間的所有修改操作。Tokyo Tyrant 也提供了另外的方法來還原這些修改操作。
Restore (還原)
.png)
figure 2.
接下來的例子示範了如何從 update log 來還原對資料庫的修改動作,如圖二所示。
- 建立一個資料夾以存放 update log
mkdir /tmp/ulog
- 啟動一個 ttserver 並開啟 update log 功能
ttserver -ulog /tmp/ulog /tmp/ex2.tch
- 開啟另外一個終端,並寫入一些資料
tcrmgr put localhost "foo2" "bar2"
- 檢查資料是否寫入成功
tcrmgr get localhost "foo2"
- 接著模擬 ttserver crash,在第一個終端按下ctrl-c
- 模擬資料庫檔案毀壞
rm /tmp/ex2.tch
- 除了從備份資料庫檔案還原,我們還可以藉由重新執行紀錄在 update log 中的修改操作來還原資料庫
- 如果需要的話,可以先將 update log 備份到別處
mv /tmp/ulog /tmp/ulog-back
- 重新啟動 ttserver
ttserver /tmp/ex2.tch
- 從 update log 還原
tcrmgr restore localhost /tmp/ulog-back
- 檢查資料是否已還原
tcrmgr get localhost "foo2"

列印此頁