Mysql таблица не существует ошибки после попытки запуска из снимка lvm
Я пытаюсь настроить репликацию MySQL, делая lvm снимок главного datadir и копируя его на ведомый.
Процедура довольно проста: на главном сервере я выполняю "FLUSH TABLES WITH READ LOCK", а на втором терминале создаю снимок lvm с lvcreate -l40%FREE -s -n mysql-backup /dev/MySQL/mysql
После этого разблокируйте таблицы.
Затем я монтирую моментальный снимок и копирую datadir в slave, но mysql не запускается с ошибками:
150105 12:50:53 mysqld_safe Запуск демона mysqld с базами данных из /var/lib/mysql 150105 12:50:53 [Предупреждение] Измененные ограничения: max_open_files: 1024 max_connections: 100 table_cache: 457 150105 12:50:54 InnoDB: InnoDB куча памяти отключена 150105 12:50:54 InnoDB: Mutexes и rw_locks используют атомарные встроенные функции GCC 150105 12:50:54 InnoDB: Сжатые таблицы используют zlib 1.2.7 150105 12:50:54 InnoDB: Использование встроенного в Linux AIO 150105 12:50:54 InnoDB: Инициализация пула буферов, размер = 3.9G 150105 12:50:54 InnoDB: Завершена инициализация пула буферов 150105 12:50:54 InnoDB: самый высокий поддерживаемый формат файла - Barracuda. InnoDB: сканирование журнала прошло после контрольной точки lsn 29552065932592 150105 12:50:54 InnoDB: база данных не была нормально закрыта! InnoDB: запуск восстановления после сбоя. InnoDB: чтение информации о табличном пространстве из файлов.ibd... InnoDB: ошибка: попытка добавить табличное пространство 210146 с именем './somedatabase/CRM_printers.ibd' InnoDB: в кеш памяти табличного пространства, но табличное пространство InnoDB: 210146 с именем './somedatabase/status.ibd'уже существует в табличном пространстве InnoDB: кэш памяти! 150105 12:50:55 mysqld_safe mysqld из файла pid /var/run/mysqld/mysqld.pid закончилась
Я проверил, и файлы этих таблиц существуют. Итак, затем я запустил базу данных с innodb_force_recovery=1 и mysql, после чего началось много ошибок, подобных этой:
InnoDB: запуск восстановления после сбоя. InnoDB: чтение информации табличного пространства из файлов.ibd... InnoDB: Ошибка: при попытке добавить табличное пространство 210146 с именем "./db/k.ibd" InnoDB: кеш памяти табличного пространства, но табличное пространство InnoDB: 210146 с именем "./db/y.ibd" уже существует в табличном пространстве InnoDB: кэш памяти! InnoDB: innodb_force_recovery был установлен в 1. Продолжение восстановления после сбоя InnoDB: даже если создание табличного пространства этой таблицы не удалось. InnoDB: ошибка: попытка добавить табличное пространство 210235 с именем './db/a.ibd' InnoDB: кеш памяти табличного пространства, но табличное пространство InnoDB: 210235 с именем "./db/ty.ibd" уже существует в табличном пространстве InnoDB: кэш памяти! InnoDB: innodb_force_recovery был установлен в 1. Продолжение восстановления после сбоя InnoDB: даже если создание табличного пространства этой таблицы не удалось. InnoDB: ошибка: попытка добавить табличное пространство 210285 с именем './db/PC.ibd' InnoDB: кеш памяти табличного пространства, но табличное пространство InnoDB: 210285 с именем './portal/HR.ibd' уже существует в табличном пространстве InnoDB: кэш памяти!
Сейчас я запускаю mysqlcheck -A в этой базе данных, и выводится, что некоторые таблицы не существуют, но существуют файлы frm и idb.
В чем проблема, что-то не так с моим снимком?