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

Таблица mysql не существует после попытки запуска из моментального снимка lvm

Я пытаюсь настроить репликацию mysql, сделав снимок lvm главного datadir и скопировав его на подчиненное устройство.

Процедура довольно проста, на главном сервере я выполняю «FLUSH TABLES WITH READ LOCK», а на втором терминале делаю снимок lvm с lvcreate -l40%FREE -s -n mysql-backup /dev/MySQL/mysqlПосле этого разблокировать столы.

Затем я монтирую моментальный снимок и копирую datadir на подчиненное устройство, но mysql не запускается с ошибками:

150105 12:50:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
150105 12:50:53 [Warning] Changed limits: max_open_files: 1024  max_connections: 100  table_cache: 457
150105 12:50:54 InnoDB: The InnoDB memory heap is disabled
150105 12:50:54 InnoDB: Mutexes and rw_locks use GCC atomic builtins
150105 12:50:54 InnoDB: Compressed tables use zlib 1.2.7
150105 12:50:54 InnoDB: Using Linux native AIO
150105 12:50:54 InnoDB: Initializing buffer pool, size = 3.9G
150105 12:50:54 InnoDB: Completed initialization of buffer pool
150105 12:50:54 InnoDB: highest supported file format is Barracuda.
InnoDB: Log scan progressed past the checkpoint lsn 29552065932592
150105 12:50:54  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Error: trying to add tablespace 210146 of name './somedatabase/CRM_printers.ibd'
InnoDB: to the tablespace memory cache, but tablespace
InnoDB: 210146 of name './somedatabase/status.ibd' already exists in the tablespace
InnoDB: memory cache!
150105 12:50:55 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

Я проверил, существуют ли файлы этих таблиц. Итак, затем я запустил базу данных с innodb_force_recovery = 1 и mysql после этого запустил множество ошибок, подобных этой:

InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Error: trying to add tablespace 210146 of name './db/k.ibd'
InnoDB: to the tablespace memory cache, but tablespace
InnoDB: 210146 of name './db/y.ibd' already exists in the tablespace
InnoDB: memory cache!
InnoDB: innodb_force_recovery was set to 1. Continuing crash recovery
InnoDB: even though the tablespace creation of this table failed.
InnoDB: Error: trying to add tablespace 210235 of name './db/a.ibd'
InnoDB: to the tablespace memory cache, but tablespace
InnoDB: 210235 of name './db/ty.ibd' already exists in the tablespace
InnoDB: memory cache!
InnoDB: innodb_force_recovery was set to 1. Continuing crash recovery
InnoDB: even though the tablespace creation of this table failed.
InnoDB: Error: trying to add tablespace 210285 of name './db/PC.ibd'
InnoDB: to the tablespace memory cache, but tablespace
InnoDB: 210285 of name './portal/HR.ibd' already exists in the tablespace
InnoDB: memory cache!

Теперь я запускаю mysqlcheck -A в этой базе данных, и в результате появляется сообщение о том, что некоторые таблицы не существуют, но существуют файлы frm и idb.

В чем проблема, что-то не так с моим снимком?