kyototycoon ホットバックアップ + ulog 適用テスト
ulogを有効にして起動して値を入れる
kyoto tycoonはMySQLみたいにデータの更新ログをulogというファイルに吐き出すらしいので、ホットバックアップした最新のファイルで起動 + ulogの適用で最新状態までデータを戻す事ができる模様。ということでulogを出力するようにしてホットバックアップしてulogを適用してみる。
ktserver -pid ktserver.pid -ulog ulog -sid 1 -cmd /ktbin test.kct & ※ -ulog dir でulog出力先のディレクトリ指定 ktremotemgr set key1 value1 ktremotemgr sync -cmd dbbackup ktremotemgr set key2 value2 kill -TERM `cat ktserver.pid`
test.kct.01314340134863000000というファイルができた。test.kct.01314340134863000000にはkey2の値は存在していないはずなのでulog適用後key2にvalue2が入ってればOK
バックアップしたファイルで起動してulogを適用する
バックアップファイルで起動して状態を確認
rm test.kct cp test.kct.01314340134863000000 test.kct ktserver -pid ktserver.pid -ulog ulog -sid 1 -cmd /ktbin test.kct & ktremotemgr get key1 -> value1 ktremotemgr get key2 -> DB::get failed: :1978: 3: logical inconsistency: DB: 7: no record: no record
ulogを適用して状態を確認
kill -TERM `cat ktserver.pid` ※ プロセスを上げた状態ではulogは適用できないっぽい kttimedmgr recover -ts 01314340134863000000 test.kct ulog ※ -tsの値はバックアップしたファイルについてる数字 ktserver -pid ktserver.pid -ulog ulog -sid 1 -cmd /ktbin test.kct & ktremotemgr get key1 -> value1 ktremotemgr get key2 -> value2
いけてるみたい。