Назад | Перейти на главную страницу

Сбой резервного копирования Bacula из-за ошибки повторяющегося первичного ключа

Все мои резервные копии Bacula за выходные начали давать сбой из-за следующей ошибки MySQL:

Неустранимая ошибка: sql_create.c: XXX Fill File table Query failed: 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 = Повторяющаяся запись '375086058' для ключа 'PRIMARY'

Это было довольно внезапно: похоже, это произошло между 3.05 и 3.11 утра, и никаких других намеков на то, что произошло, не было.

Беглый взгляд на базу данных показывает, что 375086058 - это поле с самым высоким номером FileId (которое является первичным индексом для таблицы файлов), но я не знаю, что делать, чтобы исправить это, не повредив мою базу данных Bacula.

Любые идеи?

Я посмотрел на статус таблицы и убедился, что поле Fileid было автоинкрементом и что оно застряло на 375086058, а это число, которое теперь считается дублированным. Я получил эту информацию с помощью следующих двух команд:

mysql> describe File;
mysql> show table status where name='File';

Чтобы решить эту проблему, я обновил auto_increment до * next (number:

mysql> ALTER TABLE File AUTO_INCREMENT=375086059;

Это заняло около 10 минут из-за размера стола. Кажется, проблема устранилась.