mysql5.6表空间管理

一、在之前的版本,采用独立表空间(.ibd)存放数据时,是不能更改路径的,比如磁盘满了,恰巧没做LVM卷组,那么通过CREATE TABLE t1(id int primary key)engine=innodb DATA DIRECTORY="/data2/",就把创建t1表的.ibd放到了/data2/目录下。


二、可以在线不停机把.ibd数据拷贝到另一台机器上。
首先,执行FLUSH TABLES t1 FOR EXPORT; t1表加读锁(只能读,不能写,目的是保证数据一致性),然后把数据导出到磁盘上。

其次,到数据目录下,把t1.cfg和t1.ibd拷贝到另一台机器上。拷贝完后,UNLOCK TABLES;

最后,到另一台机器上,创建原表t1表结构,rm -f t1.ibd(再将其数据文件删除),然后执行ALTER TABLE  t1 DISCARD TABLESPACE;关闭t1表的数据空间,然后把拷贝过来的t1.cfg和t1.ibd拷贝到该机的数据目录下,然后执行ALTER TABLE  t1 IMPORT TABLESPACE;就会进行恢复操作。然后check table t1;没问题的话,select * from t1;你会发现数据恢复了。


三、可以把Undo Log从共享表空间里ibdata1拆分出去,注意,需要在安装mysql时,在my.cnf里指定,否则等创建数据库以后再指定,就会报错。


  1. innodb_undo_directory = /data2/ (指定存放的目录,默认是数据目录)

  2. innodb_undo_logs = 128 (指定回滚段128K)

  3. innodb_undo_tablespaces = 4 (指定有多少个undo log文件)

然后启动mysql,你会发现

114144521.jpg

undo log创建好后,就不能再次修改,或者增加。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值