Файлы Undo_000 занимают большую часть диска. Можно ли их удалить?

Файлы Undo_000 занимают большую часть диска. Можно ли их удалить?

Мой Webmin выдал сообщение об ошибке, в котором говорилось, что диск заполнен. После расследования я обнаружил, что 3 файла внутри /var/lib/mysqlстали слишком большими:

  1. mysql.ibd (8.8G)
  2. отменить_001 (8.4G)
  3. undo_003 (2.5G)

Я погуглил, чтобы проверить, можно ли удалить эти файлы, но предложение было против mysql.ibd, а четкой информации об undo_001 и undo_002 не было.

Как безопасно удалить файлы и какой из них восстановить на сервере? На данный момент свободно 0 байт, и я ничего не могу сделать на сервере.

Другой вопрос — как не допустить, чтобы эти файлы стали слишком большими.

3 файла

решение1

Как безопасно удалить файлы и какой из них восстановить на сервере? На данный момент свободно 0 байт, и я ничего не могу сделать на сервере.

Не напрямую. Вам нужно будет удалить таблицы из mysql, чтобы освободить место. Помните, что это работает только для innodb, если вы установили innodb_file_per_tableВ противном случае вам нужно будет удалить таблицы, создать дамп всей вашей базы данных и перезагрузить ее (и да... это требует места). В противном случае файл базы данных не сожмется.

Более простой путь — удалить другие файлы в вашей системе.

Относительно файла 2 UNDO:

Команды для удаления табличного пространства UNDO:

ALTER UNDO TABLESPACE tablespace_name SET INACTIVE;
DROP UNDO TABLESPACE tablespace_name;

И вы делаете это из командной строки MySQL. Вы потеряете возможность отката.


Пожалуйста, не размещайте базу данных mysql в той же системе, что и корневая система. Используйте раздел или другой диск. Если вы используете только один диск, то обычно его размещают /var/на собственном разделе. Это предотвратит заполнение корня.

Чтобы освободить место, также посмотрите на /var/log/Все, что имеет .gzв конце, можно удалить. То же самое касается файлов, заканчивающихся на цифру *[0-9]. Это все резервные копии файлов журналов, и иногда они тоже становятся большими.


Это автоматически удалит журналы отмены:

SET GLOBAL innodb_undo_log_truncate=ON;

Связанный контент