我正在尝试从崩溃的磁盘中恢复 (MySQL) 数据库。有许多最近的转储,它们是损坏的 bz2 文件。由于数据库不经常更改,转储应该几乎相同。bzip2recover从文件中恢复了大约 70-80% 的块,因此通过查找文件中的重叠并将它们连接在一起,可以恢复大部分(如果不是全部)数据。例如:
dump1: |-----------------|xxxxxxxxxxxxxxxx|------------------|
dump2: |-------------|----------------|xxxxxxxxxxxxxxxxxxxxxx|
dump3: |xxxxxxxxxxxxxxxxxxxxxx|---------------|xxxxxxxxxxxxxx|
Run Code Online (Sandbox Code Playgroud)
在这里我可以检测到 dump1 中的第一个块是由 dump2 中的第二个块继续的,由 dump3 中的第二个块继续,在 dump1 中由第三个块继续。通过加入这四个文件,我已经恢复了数据。
问题是有数千个文件(我有 10 个转储,每个转储大约 400 个 1M 块)。是否有一种工具可以自动化这个过程,或者至少是它的一部分(比如检查一个文件结尾和另一个文件开头之间最长重叠的 linux 命令)?