Tokyo Tyrant的下工具的使用
1.先啟動一個測試用的ttserver
注意使用的所有路徑都是絕對路徑
ttserver -host 192.168.0.100 -port 20000 -thnum 4 -dmn -ulim 1024m -ulog $(pwd)/ulog/ -log $(pwd)/temp/test.log -pid $(pwd)/temp/test.pid -sid 9 $(pwd)/temp/test_data.tch#bnum=1000#rcnum=0#xmsiz=0m
2. 查看服務器統計信息
tcrmgr inform -port 20000 -st 192.168.0.100
3. 寫入數據
tcrmgr put -port 20000 192.168.0.100 test1 value1
4. 讀取數據
tcrmgr get -port 20000 192.168.0.100 test1
5. 刪除數據
tcrmgr out -port 20000 192.168.0.100 test1
6. 查看所有的key
tcrmgr list -port 20000 192.168.0.100
7. 備份數據
注意:路徑是服務器上的絕對路徑,否則顯示“./tcrmgr: error: 9999: miscellaneous error”
tcrmgr copy -port 20000 192.168.0.100 $(pwd)/temp/test2.tch
8. 日志導出(屏幕上打印,十六進制字符串格式)
注意:命令不同了
注意:目錄是服務器上的ulog的絕對路徑
ttulmgr export $(pwd)/ulog/
9. 同步內存數據到磁盤(沒搞懂有什么特別之處,可能是當ttserver使用-uas參數異步寫入日志的時候起作用)
tcrmgr sync -port 20000 192.168.0.100
10. 數據導入
注意:tsv格式的文件以TAB分隔,如:test2\tvalue2\n
注意:路徑是本地路徑,所以不必是絕對路徑
tcrmgr importtsv -port 20000 192.168.0.100 temp/2.tsv
11. 通過ulog日志恢復數據
注意:路徑是服務器上的絕對路徑
tcrmgr restore -port 20000 192.168.0.100 $(pwd)/old_ulog/
12.? 打印更新日志(掛起,一直顯示日志)
可能是用于實時查看ttserver有哪些操作,相當于tail -f
tcrmgr repl -port 20000 -ph 192.168.0.100
13.? 下一個實驗:啟動一個帶復制功能的ttserver,以前面啟動的ttserver為master
ttserver -host 192.168.0.100 -port 20001 -mhost 192.168.0.100 -mport 20000 -rcc -rts $(pwd)/temp_1/test_1.rts -thnum 4 -dmn -ulim 1024m -ulog $(pwd)/temp_1/ -log $(pwd)/temp_1/test_1.log -pid $(pwd)/temp_1/test_1.pid -sid 10 $(pwd)/temp_1/test_1.tch#bnum=1000#rcnum=0#xmsiz=0m
14.? 再啟動一個普通的ttserver,不與其他服務器相關
ttserver -host 192.168.0.100 -port 20002 -thnum 4 -dmn -ulim 1024m -ulog $(pwd)/ulog_2/ -log $(pwd)/temp_2/test_2.log -pid $(pwd)/temp_2/test_2.pid -sid 11 $(pwd)/temp_2/test_data_2.tch#bnum=1000#rcnum=0#xmsiz=0m
15. 修改某個ttserver的master
tcrmgr setmst -port 20001 -mport 20002 192.168.0.100 192.168.0.100
注意:只有以復制方式啟動的ttserver,修改master后才能從新的數據庫復制數據
注意:每個ttserver只能有一個master,修改后,不能再從以前的master復制數據
?
如何備份和恢復
????? 登錄到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的數據文件,啟動就可以了。
????? 這種方式適用于定期的數據備份,在出現災難故障時可以恢復到某一個時間的數據。不適合用來增加從庫時需要的數據庫文件。
如何不停機增加從庫
???? 從庫需要進行同步,那么就需要有個文件的時間版本,防止數據沖突。
???? 首先我們建立一個一個如下的腳本文件,存為"backup.sh",并賦予執行權限(chmod 755 backup.sh)。比如存在:
/data/backup/路徑下。
?
#!?/bin/shsrcpath="$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。
?
lscp?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的增加。
小結
? 推薦備份也使用2中用到的方式,上面帶上了時間戳,可以精確的知道數據的版本時間。
? 另外請注意:在使用此方法進行備份的時候,ttserver會在備份過程中一直保持同步阻塞和不修改數據。所以可以保證備份出來的版本跟時間戳的一致性。
轉載于:https://www.cnblogs.com/kudosharry/articles/2269158.html
總結
以上是生活随笔為你收集整理的Tokyo Tyrant的下工具的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: with as
- 下一篇: 习题11.6 fill_n