轻量级持久存储系统 MemcacheDB 详细介绍(3)
Java代码
[root @srv willko]# /usr/local/BerkeleyDB. 4.7 /bin/db_hotbackup -h /data/ 21201 / -b ./bak/
-h是数据的目录
-b是备份的目录
[root@srv willko]# /usr/local/BerkeleyDB.4.7/bin/db_hotbackup -h /data/21201/ -b ./bak/
-h是数据的目录
-b是备份的目录
恢复的话,启动memcacedb的数据目录设置成备份目录就可以了
2.单机模式crash恢复
bdb的事务处理和很多事物引擎相似,都是先写日志,数据先保存在内存。所以crash以后,可以通过日志来恢复。启动memcachedb的时候,可以使用-C选项来设置checkpoint的间隔时间,如果设置得太长,恢复时间越长。
/usr/local/BerkeleyDB. 4.7 /bin/db_recover -cf -h /data/ 21201 /
-h是你的数据目录
/usr/local/BerkeleyDB.4.7/bin/db_recover -cf -h /data/21201/
-h是你的数据目录
模拟crash
[root @srv willko]# memcachedb -u willko -p 21201 -d -r -H /data/ 21201 / -v >/data/ 21201 .log 2 >& 1 -P /data/ 21201 / 21201 .pid
[root@srv willko]# telnet localhost 21201
Trying 127.0 . 0.1 ...
Connected to localhost.
Escape character is '^]' .
set t 0 0 4
hhhh #设置键为t,值为hhhh的
STORED
get t
VALUE t 0 4
hhhh
END
quit
Connection closed by foreign host.
[root@srv willko]# kill - 9 `cat /data/ 21201 / 21201 .pid ` #用- 9 来模拟crash
[root@srv willko]# /usr/local/BerkeleyDB. 4.7 /bin/db_recover -cf -h /data/ 21201 /
recovery 100 % complete
[root@srv willko]# memcachedb -u willko -p 21201 -d -r -H /data/ 21201 / -v >/data/ 21201 .log 2 >& 1 -P /data/ 21201 / 21201 .pid
[root@srv willko]# telnet localhost 21201
Trying 127.0 . 0.1 ...
Connected to localhost.
Escape character is '^]' .
get t
VALUE t 0 4
hhhh #还可以获得crash前设置的值
END
quit
Connection closed by foreign host.
[root@srv willko]#
[root@srv willko]# memcachedb -u willko -p 21201 -d -r -H /data/21201/ -v >/data/21201.log 2>&1 -P /data/21201/21201.pid
[root@srv willko]# telnet localhost 21201
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
set t 0 0 4
hhhh #设置键为t,值为hhhh的
STORED
get t
VALUE t 0 4
hhhh
END
quit
Connection closed by foreign host.
[root@srv willko]# kill -9 `cat /data/21201/21201.pid ` #用-9来模拟crash
[root@srv willko]# /usr/local/BerkeleyDB.4.7/bin/db_recover -cf -h /data/21201/
recovery 100% complete
[root@srv willko]# memcachedb -u willko -p 21201 -d -r -H /data/21201/ -v >/data/21201.log 2>&1 -P /data/21201/21201.pid
[root@srv willko]# telnet localhost 21201
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
get t
VALUE t 0 4
hhhh #还可以获得crash前设置的值
END
quit
Connection closed by foreign host.
[root@srv willko]#