mysql5.6表空间管理
  TEZNKK3IfmPf 2023年11月14日 19 0

一、在之前的版本,采用独立表空间(.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,你会发现

mysql5.6表空间管理

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


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2023年11月14日   25   0   0 管理linux内存
  TEZNKK3IfmPf   2023年11月14日   20   0   0 管理
  TEZNKK3IfmPf   2023年11月14日   34   0   0 数据库
  TEZNKK3IfmPf   2023年11月14日   17   0   0
  TEZNKK3IfmPf   2023年11月14日   74   0   0 mysql
  TEZNKK3IfmPf   2024年05月17日   36   0   0 drill
  TEZNKK3IfmPf   2023年11月14日   17   0   0 mysql
  TEZNKK3IfmPf   2023年11月14日   31   0   0 数据库
  TEZNKK3IfmPf   2023年11月14日   35   0   0 mysql
  TEZNKK3IfmPf   2023年11月14日   165   0   0 mysql
TEZNKK3IfmPf