MySQL之InnoDB之更换表空间
MySQL之InnoDB之更换表空间
今天在迁移zabbix数据库时碰到一个共享表空间无法释放的问题,由于mysql默认使用的是innodb存储引擎,当删除一个很大的数据时,由于强制中断操作造成共享表空间不能释放,同时需要删除的数据库也无法删除掉,这样,共享表空间里仍存有未被完全删除的数据库的信息。从而造成表空间无法释放的问题。
当我们想释放或更换共享表空间时正确的步骤如下:
重新配置共享表空间
1.查看当前存在的数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
| zhujiangtao |
+--------------------+
4 rows in set (0.00 sec)
2.备份那些存储引擎是innodb的数据库,当然若有其他的数据库,也需要备份,只是本文是针对innodb存储引擎而言的。
[root@zhu2 var]# mysqldump zhujiangtao > /tmp/zhu.sql #根据需要可对mysqldump使用具体的参数
3.关闭mysql数据库
[root@zhu2 ~]# service mysqld stop
Shutting down MySQL.. [确定]
4.删除innodb存储引擎的共享表空间和日志文件以及使用innodb存储引擎的表的.frm文件
[root@zhu2 var]# ll /opt/mysql/var/
总计 45880
-rw-rw---- 1 mysql mysql 35651584 10-18 00:51 ibdata1
-rw-rw---- 1 mysql mysql 5242880 10-18 00:51 ib_logfile0
-rw-rw---- 1 mysql mysql 5242880 10-18 00:51 ib_logfile1
[root@zhu2 var]# rm -rf ibdata1 #删除表空间
[root@zhu2 var]# rm -rf ib_logfile* #删除日志文件
[root@zhu2 var]# rm -rf zhujaingtao/student.frm #删除innodb表的.frm
文件
5.重新配置共享表空间
innodb_data_file_path = ibdata1:100M:autoextend
更多详情见请继续阅读下一页的精彩内容:
推荐阅读:
InnoDB存储引擎的启动、关闭与恢复
MySQL InnoDB独立表空间的配置
MySQL Server 层和 InnoDB 引擎层 体系结构图
InnoDB 死锁案例解析
MySQL Innodb独立表空间的配置
|
评论暂时关闭