Ребята, подскажите Есть MySQL, в котором несколько баз. В одну из них

(InnoDB) копировались данные из другой базы (из таблицы в таблицу):
INSERT INTO base1.table SELECT * from base2.table

Копирование длилось ~ 12 часов, и в какой-то момент операция прервалась с ошибкой, что мол таблица повреждена и теперь (даже после перезапуска сервера)
mysqld съдает 100% CPU и не открывает подключения (Unable to connect to localhost).
Я так понимаю, что он откатывает изменения, но это продолжается уже 5 суток. В логах ничего нет.

Мне на самом деле эти конкретные базы (base1 и base2) не нужны (я могу восстановить их из резервной копии).
Как мне отменить эту операцию отката и просто запустить сервер, чтобы работали все мои другие базы?

16 ответов

4 просмотра

Это ещё надо доказать, что там что-то происходит, а не дедлок

Рома- Автор вопроса
Vladislav Sh.
Это ещё надо доказать, что там что-то происходит, ...

а как узнать? к бд подключиться не могу мб какой-то уровень детализации в логах повысить?

Рома
а как узнать? к бд подключиться не могу мб какой-т...

/var/log/mysqld.log Можно отсюда начать, дальше я не так сильно шарю к сожалению

Рома
а как узнать? к бд подключиться не могу мб какой-т...

С чего подключиться не можете? Место свободное есть?

Рома
а как узнать? к бд подключиться не могу мб какой-т...

Для начала смотреть в error log, как выше и написали, чтобы понять, что происходит при запуске. Потом, возможно, использовать innodb_force_recovery - https://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html Но не советую бежать и сразу играться с переменной, пока не понятно, что там вообще происходит. Так что в первую очередь обязательно error log смотреть. Касаемо уровня логирования, он выставляется вот этой переменной - https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_error_verbosity

Это сервер откатывает транзакции, что не удалось завершить, почти наверняка. Жди.

Отменить - просто установить сервер с нуля

Рома
а как узнать? к бд подключиться не могу мб какой-т...

Смотри в логи сервера, там всё написано

Рома- Автор вопроса
Ilya Zviagin
Отменить - просто установить сервер с нуля

а с текущими бд как быть? я их и забэкапить не могу сейчас

Рома- Автор вопроса
Рома
а с текущими бд как быть? я их и забэкапить не мог...

Никак. Либо стирай всё, либо жди когда откатится транзакции

Рома
в логах пусто

В логах что-то да должно быть

Рома- Автор вопроса
Ilya Zviagin
В логах что-то да должно быть

я подозреваю что уровень детализации низкий, но если повысить и ребутнуть, то заново начнёт откатывать. скоро 6е сутки пойдут!

Рома
я подозреваю что уровень детализации низкий, но ес...

Нет там достаточный уровень чтобы всё что надо выводить

Рома- Автор вопроса
Ilya Zviagin
Нет там достаточный уровень чтобы всё что надо выв...

# tail -f /var/log/mysql/error.log 2023-08-03T06:15:22.769281Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.26-0ubuntu0.20.04.2) starting as process 1039454 2023-08-03T06:15:22.782695Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.

Рома
а с текущими бд как быть? я их и забэкапить не мог...

Если очень не терпится, то innodb_force_recovery про который я уже писал. В ссылке выше все написано, какие значение что делают: innodb_force_recovery=3 - скипает rollback транзакций innodb_force_recovery=5 вообще не смотреть в undo, считать, что все транзакции «закоммичены» Любое значение выше 3 с высокой долей вероятности «закораптит» файлы данных, потому что данные будут не консистентны. Но сервер поднимется, можно будет сделать дамп. В вашем случае, если проблема в одной таблице, то ставить параметр в 3, поднимать и дропать эту таблицу. Такой сценарий порямо там же описан, но кто бы читал…

Похожие вопросы

Обсуждают сегодня

Приветствую всех, возникла проблема, до этого писал бота в простом формате где при выполнении условий приходило через send_message информация, сейчас решил добавить хендлер на...
Andrew
4
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Ребят, привет. У кого-то есть опыт заказа мерча в сторе? Есть успешные кейсы? Чёт у меня турецкую карту не принимает
Vladimir F.
7
Ребят, а больше никто поработать не хочет? Кто свободен?
AIZ
4
Всем привет. Есть кто разбирается в платежках? Что б принимать из других стран и выплачивать рф снг
Musa
6
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
Приветствую всех, есть вопросик. Передали проект на OctoberCms, без инсталяшки в полуразвернутом виде, нужно было залить бекап бд, после залития бд, оказалось, что части строк...
Лео
14
где собака, админ группы? нычкуется и боится проявить волю, в толерантность еще не наигрался? @yelizariev
Ognezar
61
Есть магистры regex в чате? Задача: нужно написать regex который мэтчит полные (без сокращений по типу ::1/128) ipv6 адреса кроме 2001:0df7:cef7:29f7:52f7:adf7:2cf7:4ff7, при ...
Илья
5
Подскажите, пожалуйста, где в backende, или не в нем можно дату поправить? Логирует действия не в том часовом поясе
Лео
7
Карта сайта