众所周知MongoDB的底层存储是由WiredTiger
负责的,其数据文件也是.wt
格式。既然如此,我们就有可能不通过MongoDB服务,而是直接用wt
工具从数据文件中恢复数据。虽然我们通常推荐生产环境一定要配置复制集,但是很无奈,技术社区已经数次有人因为单机运行,最后硬盘损坏等原因导致无法启动。wt
工具作为最后一根稻草,可以在放弃治疗前再尝试挽救一下。
编译
wt工具可以运行于Linux和Windows上。因为各自的操作系统和MongoDB版本不同,可能产生较多的组合。在使用时应该根据自己情况编译适合的版本。下面以CentOS 7为例演示编译过程。
1.安装操作系统依赖
sudo yum install -y epel-release libtool automake snappy snappy-devel lz4 lz4-devel zstd zstd-devel libzstd-devel zlib zlib-devel git make vim-common
2. 准备源码
git clone https://github.com/wiredtiger/wiredtiger.git
根据所使用的MongoDB版本,应该选择正确的wt
分支。例如我当前使用的MongoDB 4.4.1
,那么同样应该选择WiredTiger的相应tagmongodb-4.4.1
> git tag | grep 4.4.1
mongodb-4.4.1
mongodb-4.