web-dev-qa-db-ja.com

重複した主キーエラーで失敗するBaculaバックアップ

私の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データベースを破損せずに修正する方法がわかりません。

何か案は?

1
Shannon A.

テーブルのステータスを調べて、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分かかりました。問題は解決したようです。

1
Shannon A.