私のBaculaバックアップはすべて、週末に次のMySQLエラーで失敗し始めました。
致命的なエラー:sql_create.c:XXXファイルテーブルの入力クエリが失敗しました:INSERT INTO File(FileIndex、JobId、PathId、FilenameId、LStat、MD5)SELECT batch.FileIndex、batch.JobId、Path.PathId、Filename.FilenameId、batch.LStat 、batch.MD5 FROM batch JOIN Path ON(batch.Path = Path.Path)JOIN Filename ON(batch.Name = Filename.Name):ERR =キー「PRIMARY」のエントリ「375086058」が重複しています
それはかなり突然でした。今朝の午前3時5分から午前3時11分までの間に起こったようで、何が起こっているかについて他のヒントはありません。
データベースをざっと見てみると、375086058が最も大きい番号のFileIdフィールド(ファイルテーブルのプライマリインデックス)であることがわかりますが、Baculaデータベースを破損せずに修正する方法がわかりません。
何か案は?
テーブルのステータスを調べて、Fileidフィールドが自動インクリメントであり、375086058でスタックしていることを確認しました。これは、現在重複していると表示されている数値です。次の2つのコマンドでこの情報を取得しました。
mysql> describe File;
mysql> show table status where name='File';
この問題を解決するために、auto_incrementを* next(number:
mysql> ALTER TABLE File AUTO_INCREMENT=375086059;
テーブルの大きさのため、これには約10分かかりました。問題は解決したようです。