尝试从lvm快照运行后,Mysql表不存在错误

我试图通过创buildmaster datadir的lvm快照并将其复制到slave来设置mysql复制。

这个过程非常简单,在主服务器上执行“FLUSH TABLES WITH READ LOCK”,然后在第二个terminal上使用lvcreate -l40%FREE -s -n mysql-backup /dev/MySQL/mysql制作lvm快照,然后解锁表。

接下来,我装载快照并将datadir复制到slave,但是mysql无法启动,出现错误:

 150105 12:50:53 mysqld_safe从/ var / lib / mysql数据库启动mysqld守护进程
 150105 12:50:53 [Warning]更改限制:max_open_files:1024 max_connections:100 table_cache:457
 InnoDB:InnoDB内存堆被禁用
 InnoDB:Mutexes和rw_locks使用GCCprimefacesbuiltins
 InnoDB:压缩表使用zlib 1.2.7
 InnoDB:使用Linux本机AIO
 InnoDB:初始化缓冲池,大小= 3.9G
 InnoDB:完成缓冲池的初始化
 InnoDB:最高支持的文件格式是梭子鱼。
 InnoDB:日志扫描通过检查点lsn 29552065932592
 InnoDB:数据库没有正常closures!
 InnoDB:启动崩溃恢复。
 InnoDB:从.ibd文件读取表空间信息...
 InnoDB:错误:试图添加名为'./somedatabase/CRM_printers.ibd'的表空间210146
 InnoDB:表空间的内存caching,但表空间
名称为“./somedatabase/status.ibd”的InnoDB:210146已经存在于表空间中
 InnoDB:内存caching!
 150105 12:50:55 mysqld_safe mysqld从pid文件/var/run/mysqld/mysqld.pid结束

我检查了该表的文件存在。 所以接下来,我开始使用innodb_force_recovery = 1和mysql数据库,然后开始许多错误,如下所示:

 InnoDB:启动崩溃恢复。
 InnoDB:从.ibd文件读取表空间信息...
 InnoDB:错误:试图添加名为“./db/k.ibd”的表空间210146
 InnoDB:对表空间的内存caching,但对表空间
名称为“./db/y.ibd”的InnoDB:210146已经存在于表空间中
 InnoDB:内存caching!
 InnoDB:innodb_force_recovery设置为1.继续崩溃恢复
 InnoDB:即使这个表的表空间创build失败。
 InnoDB:错误:试图添加名为“./db/a.ibd”的表空间210235
 InnoDB:表空间的内存caching,但表空间
名称为“./db/ty.ibd”的InnoDB:210235已经存在于表空间中
 InnoDB:内存caching!
 InnoDB:innodb_force_recovery设置为1.继续崩溃恢复
 InnoDB:即使这个表的表空间创build失败。
 InnoDB:错误:试图添加名为“./db/PC.ibd”的表空间210285
 InnoDB:表空间的内存caching,但表空间
名称为“./portal/HR.ibd”的InnoDB:210285已经存在于表空间中
 InnoDB:内存caching!

现在我正在这个数据库上运行mysqlcheck -A,并且有一个输出表示一些表不存在,但frm和idb文件存在。

问题是我的快照有什么问题?