下面是一个tokyo tyrant的故障转移的实例,现看实现原理图
在同一台机器上打开3个窗口。
在终端A中创建主DB更新log文件夹
mkdir /tmp/ulog-a
在终端A中启动服务
ttserver -port 1978 -ulog /tmp/ulog-a -sid 1 -mhost localhost -mport 1979 -rts /tmp/a.rts /tmp/casket-a.tch
在终端B中创建辅DB更新log文件夹
mkdir /tmp/ulog-b
在终端B中启动辅DB
ttserver -port 1979 -ulog /tmp/ulog-b -sid 2 -mhost localhost -mport 1978 -rts /tmp/b.rts /tmp/casket-b.tch
在终端C中对主DB插入测试数据
tcrmgr put -port 1978 localhost TTTest TestByZLJ
在终端C中查询主DB
tcrmgr get -port 1978 localhost TTTest
在终端C中查询辅DB
tcrmgr get -port 1979 localhost TTTest
模拟主DB down掉,在终端A中按下Ctrl+C
在终端C中对辅db进行数据插入操作
tcrmgr put -port 1979 localhost test TTTest
在终端C中对辅DB进行数据检索操作
tcrmgr get -port 1979 localhost test
在终端A中重新启动主DB
ttserver -port 1978 -ulog /tmp/ulog-a -sid 1 -mhost localhost -mport 1979 -rts /tmp/a.rts /tmp/casket-a.tch
在终端C中对主DB进行数据检索
tcrmgr get -port 1978 localhost test
最后查询得到的结果还是TTTest,在对辅DB进行插入操作的时候主DB已经down掉了,而当主DB重新起来后,对主DB再次进行查询得到了我们想要的结果。也就是说主DB重新起来后自动的从辅DB进行数据同步操作,保证数据的完整性,同时也为SA有时间去处理这类故障。
0 评论:
发表评论