Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Повреждена база данных / 16 сообщений из 16, страница 1 из 1
04.12.2018, 12:02
    #39742321
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повреждена база данных
После аварийного отключения света перестала запускаться БД.
При запуске в логах пишет:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Dec  4 11:55:04 srv-svc03 mysqld: 181204 11:55:04 InnoDB: The InnoDB memory heap is disabled
Dec  4 11:55:04 srv-svc03 mysqld: 181204 11:55:04 InnoDB: Mutexes and rw_locks use GCC atomic builtins
Dec  4 11:55:04 srv-svc03 mysqld: 181204 11:55:04 InnoDB: Compressed tables use zlib 1.2.7
Dec  4 11:55:04 srv-svc03 mysqld: 181204 11:55:04 InnoDB: Using Linux native AIO
Dec  4 11:55:04 srv-svc03 mysqld: 181204 11:55:04 InnoDB: Initializing buffer pool, size = 128.0M
Dec  4 11:55:04 srv-svc03 mysqld: 181204 11:55:04 InnoDB: Completed initialization of buffer pool
Dec  4 11:55:04 srv-svc03 mysqld: 181204 11:55:04 InnoDB: highest supported file format is Barracuda.
Dec  4 11:55:04 srv-svc03 mysqld: InnoDB: Log scan progressed past the checkpoint lsn 9850189128906
Dec  4 11:55:04 srv-svc03 mysqld: 181204 11:55:04  InnoDB: Database was not shut down normally!
Dec  4 11:55:04 srv-svc03 mysqld: InnoDB: Starting crash recovery.
Dec  4 11:55:04 srv-svc03 mysqld: InnoDB: Reading tablespace information from the .ibd files...
Dec  4 11:55:04 srv-svc03 mysqld: InnoDB: Restoring possible half-written data pages from the doublewrite
Dec  4 11:55:04 srv-svc03 mysqld: InnoDB: buffer...
Dec  4 11:55:04 srv-svc03 mysqld: InnoDB: Doing recovery: scanned up to log sequence number 9850190919680
Dec  4 11:55:04 srv-svc03 mysqld: 181204 11:55:04  InnoDB: Error: page 1 log sequence number 9850196018772
Dec  4 11:55:04 srv-svc03 mysqld: InnoDB: is in the future! Current system log sequence number 9850190919646.
Dec  4 11:55:04 srv-svc03 mysqld: InnoDB: Your database may be corrupt or you may have copied the InnoDB
Dec  4 11:55:04 srv-svc03 mysqld: InnoDB: tablespace but not the InnoDB log files. See
Dec  4 11:55:04 srv-svc03 mysqld: InnoDB:  http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html 
Dec  4 11:55:04 srv-svc03 mysqld: InnoDB: for more information.
Dec  4 11:55:04 srv-svc03 mysqld: 181204 11:55:04  InnoDB: Error: page 0 log sequence number 9850196018838
Dec  4 11:55:04 srv-svc03 mysqld: InnoDB: is in the future! Current system log sequence number 9850190919646.
Dec  4 11:55:04 srv-svc03 mysqld: InnoDB: Your database may be corrupt or you may have copied the InnoDB
Dec  4 11:55:04 srv-svc03 mysqld: InnoDB: tablespace but not the InnoDB log files. See
Dec  4 11:55:04 srv-svc03 mysqld: InnoDB:  http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html 
Dec  4 11:55:04 srv-svc03 mysqld: InnoDB: for more information.
Значения innodb_force_recovery вплоть до 3 не помогают, БД не стартует.
Чего-то критически важного в БД нет, если будут потеряны изменения на несколько часов или даже повреждены отдельные записи, это приемлемо. Но в целом БД нужно сохранить, на ней находится какой-то сайт на WordPress.
Как можно восстановить БД без бэкапов?
...
Рейтинг: 0 / 0
04.12.2018, 12:05
    #39742324
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повреждена база данных
Вот полный лог с момента первой загрузки сервера:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
Dec  4 07:55:21 srv-svc03 mysqld_safe: Starting mysqld daemon with databases from /data/mysql
Dec  4 07:55:21 srv-svc03 mysqld: 181204  7:55:21 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
Dec  4 07:55:21 srv-svc03 mysqld: 181204  7:55:21 [Note] /usr/sbin/mysqld (mysqld 5.5.60-0+deb7u1) starting as process 3095 ...
Dec  4 07:55:21 srv-svc03 mysqld: 181204  7:55:21 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
Dec  4 07:55:21 srv-svc03 mysqld: 181204  7:55:21 [Note] Plugin 'FEDERATED' is disabled.
Dec  4 07:55:21 srv-svc03 mysqld: 181204  7:55:21 InnoDB: The InnoDB memory heap is disabled
Dec  4 07:55:21 srv-svc03 mysqld: 181204  7:55:21 InnoDB: Mutexes and rw_locks use GCC atomic builtins
Dec  4 07:55:21 srv-svc03 mysqld: 181204  7:55:21 InnoDB: Compressed tables use zlib 1.2.7
Dec  4 07:55:21 srv-svc03 mysqld: 181204  7:55:21 InnoDB: Using Linux native AIO
Dec  4 07:55:21 srv-svc03 mysqld: 181204  7:55:21 InnoDB: Initializing buffer pool, size = 128.0M
Dec  4 07:55:21 srv-svc03 mysqld: 181204  7:55:21 InnoDB: Completed initialization of buffer pool
Dec  4 07:55:21 srv-svc03 mysqld: 181204  7:55:21 InnoDB: highest supported file format is Barracuda.
Dec  4 07:55:21 srv-svc03 mysqld: InnoDB: Log scan progressed past the checkpoint lsn 9850189128906
Dec  4 07:55:21 srv-svc03 mysqld: 181204  7:55:21  InnoDB: Database was not shut down normally!
Dec  4 07:55:21 srv-svc03 mysqld: InnoDB: Starting crash recovery.
Dec  4 07:55:21 srv-svc03 mysqld: InnoDB: Reading tablespace information from the .ibd files...
Dec  4 07:55:21 srv-svc03 mysqld: InnoDB: Restoring possible half-written data pages from the doublewrite
Dec  4 07:55:21 srv-svc03 mysqld: InnoDB: buffer...
Dec  4 07:55:22 srv-svc03 mysqld: InnoDB: Doing recovery: scanned up to log sequence number 9850190919680
Dec  4 07:55:22 srv-svc03 mysqld: 181204  7:55:22  InnoDB: Error: page 1 log sequence number 9850196018772
Dec  4 07:55:22 srv-svc03 mysqld: InnoDB: is in the future! Current system log sequence number 9850190919646.
Dec  4 07:55:22 srv-svc03 mysqld: InnoDB: Your database may be corrupt or you may have copied the InnoDB
Dec  4 07:55:22 srv-svc03 mysqld: InnoDB: tablespace but not the InnoDB log files. See
Dec  4 07:55:22 srv-svc03 mysqld: InnoDB:  http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html 
Dec  4 07:55:22 srv-svc03 mysqld: InnoDB: for more information.
Dec  4 07:55:23 srv-svc03 mysqld: 181204  7:55:23  InnoDB: Error: page 0 log sequence number 9850196018838
Dec  4 07:55:23 srv-svc03 mysqld: InnoDB: is in the future! Current system log sequence number 9850190919646.
Dec  4 07:55:23 srv-svc03 mysqld: InnoDB: Your database may be corrupt or you may have copied the InnoDB
Dec  4 07:55:23 srv-svc03 mysqld: InnoDB: tablespace but not the InnoDB log files. See
Dec  4 07:55:23 srv-svc03 mysqld: InnoDB:  http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html 
Dec  4 07:55:23 srv-svc03 mysqld: InnoDB: for more information.
Dec  4 07:55:23 srv-svc03 mysqld: 181204  7:55:23  InnoDB: Starting an apply batch of log records to the database...
Dec  4 07:55:23 srv-svc03 mysqld: InnoDB: Progress in percents: 04:55:23 UTC - mysqld got signal 11 ;
Dec  4 07:55:23 srv-svc03 mysqld: This could be because you hit a bug. It is also possible that this binary
Dec  4 07:55:23 srv-svc03 mysqld: or one of the libraries it was linked against is corrupt, improperly built,
Dec  4 07:55:23 srv-svc03 mysqld: or misconfigured. This error can also be caused by malfunctioning hardware.
Dec  4 07:55:23 srv-svc03 mysqld: We will try our best to scrape up some info that will hopefully help
Dec  4 07:55:23 srv-svc03 mysqld: diagnose the problem, but since we have already crashed, 
Dec  4 07:55:23 srv-svc03 mysqld: something is definitely wrong and this may fail.
Dec  4 07:55:23 srv-svc03 mysqld: 
Dec  4 07:55:23 srv-svc03 mysqld: key_buffer_size=16777216
Dec  4 07:55:23 srv-svc03 mysqld: read_buffer_size=131072
Dec  4 07:55:23 srv-svc03 mysqld: max_used_connections=0
Dec  4 07:55:23 srv-svc03 mysqld: max_threads=151
Dec  4 07:55:23 srv-svc03 mysqld: thread_count=0
Dec  4 07:55:23 srv-svc03 mysqld: connection_count=0
Dec  4 07:55:23 srv-svc03 mysqld: It is possible that mysqld could use up to 
Dec  4 07:55:23 srv-svc03 mysqld: key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 346701 K  bytes of memory
Dec  4 07:55:23 srv-svc03 mysqld: Hope that's ok; if not, decrease some variables in the equation.
Dec  4 07:55:23 srv-svc03 mysqld: 
Dec  4 07:55:23 srv-svc03 mysqld: 1 Thread pointer: 0x0
Dec  4 07:55:23 srv-svc03 mysqld: Attempting backtrace. You can use the following information to find out
Dec  4 07:55:23 srv-svc03 mysqld: where mysqld died. If you see no messages after this, something went
Dec  4 07:55:23 srv-svc03 mysqld: terribly wrong...
Dec  4 07:55:23 srv-svc03 kernel: [   20.226030] mysqld[3100]: segfault at fffffffffffffffb ip 00007f67234399a5 sp 00007f6714c40bd0 error 5 in mysqld[7f6722dbb000+a80000]
Dec  4 07:55:23 srv-svc03 mysqld: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
Dec  4 07:55:23 srv-svc03 mysqld_safe: mysqld from pid file /var/run/mysqld/mysqld.pid ended
...
Рейтинг: 0 / 0
04.12.2018, 12:35
    #39742342
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повреждена база данных
Ну делай копию и пробуй опцию 5...
...
Рейтинг: 0 / 0
04.12.2018, 12:43
    #39742346
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повреждена база данных
Копию файлов ib*?
Или вообще всех файлов каталога MySQL?
...
Рейтинг: 0 / 0
04.12.2018, 12:52
    #39742353
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повреждена база данных
На всякий случай скопировал все файлы.
Опции 5 не хватило, но на опции 6 сервер запустился.
Примерно полторы тысячи сбоев такого вида:
Код: plaintext
1.
2.
3.
4.
5.
6.
Dec  4 12:50:07 srv-svc03 mysqld: 181204 12:50:07  InnoDB: Error: page 10168 log sequence number 9850161699495
Dec  4 12:50:07 srv-svc03 mysqld: InnoDB: is in the future! Current system log sequence number 162263.
Dec  4 12:50:07 srv-svc03 mysqld: InnoDB: Your database may be corrupt or you may have copied the InnoDB
Dec  4 12:50:07 srv-svc03 mysqld: InnoDB: tablespace but not the InnoDB log files. See
Dec  4 12:50:07 srv-svc03 mysqld: InnoDB:  http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html 
Dec  4 12:50:07 srv-svc03 mysqld: InnoDB: for more information.
Нужно будет пересоздать все индексы?
Или этого недостаточно?
...
Рейтинг: 0 / 0
04.12.2018, 13:03
    #39742362
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повреждена база данных
Повредилась таблица в одной БД, она читается (select * from table), но вызывает ошибки или сбои при обновлении.
Данные в таблице не важны (это вспомогательная БД, она полностью создается из другого источника).
Но при попытке дропнуть таблицу или даже БД падает MySQL.
...
Рейтинг: 0 / 0
04.12.2018, 13:28
    #39742381
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повреждена база данных
Вручную удалил каталог поврежденной БД, перезапустил MySQL.
mysqlcheck --check-upgrade --all-databases --auto-repair при запуске ошибок не находит.
Однако после старта MySQL в логах по прежнему много ошибок типа вышеприведенной.
Как можно проверить и исправить БД?
...
Рейтинг: 0 / 0
04.12.2018, 13:35
    #39742388
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повреждена база данных
Даже innochecksum ошибок в ibd-файле не находит.
Однако проблемная база где-то осталась.
Если я удаляю каталог этой БД, то в СУБД этой базы более нет (смотрю через HeidiSQL).
Добавляю новую пустую БД с таким же именем — ок.
Добавляю в эту БД новую таблицу — выдает ошибку, что указанная таблица уже существует. Хотя HeidiSQL показывает, что БД пустая.
Пытаюсь дропнуть это пустую БД — MySQL падает.
...
Рейтинг: 0 / 0
04.12.2018, 13:58
    #39742395
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повреждена база данных
Alibek B.проблемная база где-то осталасьУгу.. в системной таблице... боюсь, придётся пересоздавать system tablespace...
Попробуй дропнуть tablespace проблемной таблицы. А ну как поможет.
...
Рейтинг: 0 / 0
04.12.2018, 14:04
    #39742399
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повреждена база данных
Вообщем бэкапы нашлись, так что я просто удалил весь data-каталог и пересоздал пустую СУБД.
Основные таблицы для сайта WordPress теперь работают.
Но у меня на этом сервере есть еще пара баз. Эти базы вспомогательные, их содержимое формируется из другого источника данных.
Однако бэкапа структуры этих баз у меня нет, но есть сохраненный каталог с frm-файлами.
Можно из него воссоздать пустые БД?
Простое копирование каталога не сработала — после этого базы в списке видны, однако почему-то содержат только некоторые из таблиц (то есть вместо 20 таблиц в новой БД почему-то только 3 или 4 таблицы, хотя все frm-файлы скопированы).
...
Рейтинг: 0 / 0
04.12.2018, 14:31
    #39742415
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повреждена база данных
Опять - сведения о таблицах хранятся в системных метаданных. Одного копирования файлов - мало.
Для воссоздания структуры используй mysqlfrm .
...
Рейтинг: 0 / 0
04.12.2018, 14:39
    #39742421
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повреждена база данных
Про эту утилиту я информацию уже нашел, но саму утилиту нигде найти не могу.
В пакете mysql-tools ее нет.
У меня подозрения, что она работает только со старыми версиями MySQL.
...
Рейтинг: 0 / 0
04.12.2018, 14:52
    #39742430
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повреждена база данных
Тулза входит в пакет MySQL Utilities, которая снесён в архив. Но к скачиванию он вполне доступен.
https://downloads.mysql.com/archives/utilities/
...
Рейтинг: 0 / 0
04.12.2018, 15:07
    #39742438
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повреждена база данных
С установкой не так просто.
Во-первых этот пакет конфликтует с системным mysql-utilities.
Во-вторых он требует mysql-connector-python-commercial, который непонятно где брать.

Если у кого-то есть рабочая утилита mysqlfrm, не могли бы мне сконвертировать в sql где-то штук 15 frm-файлов?
...
Рейтинг: 0 / 0
04.12.2018, 16:30
    #39742492
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повреждена база данных
Нашел онлайн-сервис: https://www.rebasedata.com/convert-myisam-to-mysql-online
Он принимает frm-файлы, вроде бы конвертирует, но на выходе выдает пустой SQL.

Вообщем вернул ранее сохраненный бэкап (с поврежденными данными) на место, стартовал MySQL, извлек в SQL из данных описания таблиц, потом вернулся к каталогу с нормальными данными и вручную создал таблицы из SQL.
Странно, что это не получилось сделать напрямую из frm-файлов, вроде бы в них вся необходимая информация есть.
...
Рейтинг: 0 / 0
20.12.2018, 11:57
    #39750686
LiveMan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повреждена база данных
Alibek B.,

Я так понимаю, что уже поздно, но на всякий случай напишу.
В таких случаях innodb_force_recovery перебирается до 6 с целью запустить базу и снять бекап.
После чего надо сдернуть бекап(mysqldump), удалить ВСЕ(!!!) и начинать заново с создания системной бд и потом уже разворачивать бекап.
Что делать в таком случае если у вас база на много гб я не знаю, но при средних размеров бд (до 10-30гб) вполне рабочий вариант.

У меня в таких ситуациях обычно повреждались системные таблицы и используемые в момент аварии таблицы основной бд.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Повреждена база данных / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]