mongodbのエラー:「getFile():ファイル番号の値が正しくありません(データベースが破損していますか?):修復を実行してください」

ファビオ・ブラヒト

Meteorを最後にアップグレードした後、データベースが破損しました。最初に、新しいユーザーを作成しようとしたときにこのエラーメッセージが表示されました(meteor-accountsを使用しています)。

getFile(): bad file number value (corrupt db?): run repair

次に、別の質問で実行する必要があることを確認しましたdb.repairDatabase()が、mongoシェルはデータベースに問題がないと言っていましたが、実際には機能しませんでした。上記のエラーメッセージはまだ表示されていました。

だから私は壊れたインデックスについて何かを読み、usersコレクションにインデックスを落としました、そしてこれは明らかにすべてを悪化させました。同じメールアドレスを持つ2人のユーザーがいて、Meteorが起動しなくなりました。

MongoError: E11000 duplicate key error index: meteor.users.$emails.address_1  dup key: { : "[email protected]" }

これらのユーザーの1人を削除しようとすると、元のエラーが再び表示されます。

meteor:PRIMARY> db.users.remove({ _id: "cAtu2XsEXTbqL2Wvx"})
getFile(): bad file number value (corrupt db?): run repair`

幸い、私たちはまだ開発段階にあり、データベース全体を削除して最初からやり直すことができますが、これにより、Meteorを本番環境で実行することについて本当に不安になりました。この状態でデータベースを修正する方法はありますか?

wdberkeley

実行db.repairDatabaseしてデータファイルの修復を試みることができますが、詳細と警告については、最初にリンクされたページをお読みください。以前にジャーナリングをオンにしていない場合は、ジャーナリングをオンにして実行し、少なくとも本番環境では、レプリカセットを実行してください。通常、この状況では、修復するよりも、別のレプリカセットメンバーから再同期するか、バックアップを復元することをお勧めします。データ復旧の詳細については、MongoDBマニュアルのこの記事を参照してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ