kyototycoon ホットバックアップ テスト
バックアップ用のシェルスクリプトの準備
/ktbin/dbbackupを以下の内容で作成、実行権限を与える
#! /bin/sh srcfile="$1" destfile="$1.$2" cp -f "$srcfile" "$destfile"
ktserver起動
/ktbinにpathを通してktserverを起動 -cmd オプションでパスが通るらしい
ktserver -cmd /ktbin -pid ktserver.pid test.kch &
ホットバックアップ&リカバリテスト
テストデータをいれてホットバックアップしてみる
ktremotemgr set key1 value1 ktremotemgr sync -cmd dbbackup
実行するとtest.kctと同じディレクトリにtest.kch.01314275386043000000というファイルが生成された
復旧できるか確認するために現状のtest.kctに新規にデータを追加した後バックアップしたファイルで上げ直してロールバックするか確認
ktremotemgr set key2 value2 kill -TERM `cat ktserver.pid` mv test.kch.01314275386043000000 test2.kct ※ 拡張子でDBの構造が決まるのでリネームしとかないと上げ直せない ktserver -cmd /ktbin -pid ktserver.pid test2.kch & ktremotemgr get key1 -> value1 ktremotemgr get key2 -> ktremotemgr: DB::get failed: :1978: 3: logical inconsistency: DB: 7: no record: no record
ということで復旧できてそう。