1
lookhi 2013-07-22 19:35:15 +08:00
真悲惨,操作前你备份了吗?
|
2
pubby OP 无备份 -_-
其它几个库有异地备份,这个库不是重要数据就没备份,但是重新生成这些数据的话也需要好几天时间,所以如果能修复就最好 大致看了一下.sst中的数据都在的。能修复大部分数据也行 |
4
Chewbacca 2013-07-23 08:41:25 +08:00 2
遇到过,那个修复的确不好用,修复后还是所有数据都丢了,好在当时用的 https://github.com/KDr2/redis-leveldb 这个,能分成好多个 DB,按时间分每月一个库,只丢了当月数据。
|
6
soli 2013-07-23 10:43:01 +08:00
LevelDB 的这个坑好大啊。
我们也在这上面吃过亏。 |
7
pubby OP |
11
pubby OP @soli
@clowwindy 我用的是redis-storage 用了redis接口加leveldb后端 https://github.com/rchunping/redis-storage 我又加了一些实用命令进去 |
12
clowwindy 2013-07-23 13:58:34 +08:00
|
13
pubby OP |
14
LazyZhu 2013-07-23 15:34:58 +08:00
|
16
pubby OP leveldbutil dump *.sst
全是 Corruption: corrupted compressed block contents 看来是没戏了 |
17
pubby OP @lookhi
@Chewbacca @soli @clowwindy @LazyZhu 感谢,数据已经修复。 leveldb没坑我,是自己把自己坑了 :( 数据都是snappy压缩的,那个redis-storage我为了部署方便是直接把leveldb和snappy静态编译好然后从其他机器copy过来的。 而当时为了修复数据,直接在数据库所在机器安装了leveldb。但是坑爹的是没有连接上snappy库,我记得确实选择了SNPPY的。 后来发现在freebsd ports里面反复安装leveldb,虽然有SNAPPY选项,但是确实没法链snappy进来,于是手动修改了一些编译配置,终于把snappy编译进来了。 重新用那段python脚本,修复后基本上数据都在。 |