mysql共享表空间扩容,收缩,迁移

一.扩容innodb文件

1.关闭mysql db

/usr/local/mysql/bin/mysqladmin -S /tmp/mysql3307.sock shutdown

2.打开参数文件

innodb_data_file_path = ibdata1:512M:autoextend

将ibdata1调整至接近实际大小,并在后面追加新的文件:

innodb_data_file_path = ibdata1:512M;ibdata2:512M:autoextend

3.启动数据库

/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my3307.cnf --user=mysql &

二.缩小表空间

共享表空间文件,一旦扩展无法自动缩小,需要通过手工缩小

1.导出全部数据库

/usr/local/mysql/bin/mysqldump -uroot -p -A -S /tmp/mysql3307.sock > /tmp/3307all.sql

Enter password:

2.关闭mysql db

/usr/local/mysql/bin/mysqladmin -S /tmp/mysql3307.sock shutdown

3.删除mysql的数据目录

rm -rf /home/mysql3307/mysql3307/*

4.初始化mysql

/usr/local/mysql/bin/mysqld --defaults-file=/etc/my3307.cnf --initialize-insecure --basedir=/usr/local/mysql --datadir=/home/mysql3307/mysql3307 --user=mysql

5.启动mysql

/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my3307.cnf --user=mysql &

6.导入数据

source /tmp/3307all.sql

三.innodb表空间迁移

原库表结构:

CREATE TABLE wwj.t1 (

id INT NOT NULL,

name VARCHAR(45) NULL,

PRIMARY KEY (id));

alter table wwj.t1 add index idx_name (name) ;

insert into wwj.t1 values(1,‘wwj’);

1.在目标实例上创建一个相同的表

CREATE TABLE wwj2.t1 (

id INT NOT NULL,

name VARCHAR(45) NULL,

PRIMARY KEY (id));

2.在目标库上执行ALTER TABLE t DISCARD TABLESPACE;

ALTER TABLE t1 DISCARD TABLESPACE;

discard的意思就是从数据库detached,会删除ibd文件,保留frm文件。

也就意味着,你可以对frm文件操作,比如:rename table,drop table ,但是不能对ibd文件操作,比如:dml

3.在源库上执行FLUSH TABLES t FOR EXPORT;生成.cfg文件

flush tables t1 for export;

-rw-r-----. 1 mysql mysql 67 Mar 24 06:59 db.opt

-rw-r-----. 1 mysql mysql 467 Mar 24 18:32 t1.cfg

-rw-r-----. 1 mysql mysql 8586 Mar 24 06:59 t1.frm

-rw-r-----. 1 mysql mysql 114688 Mar 24 06:59 t1.ibd

此时,.cfg文件在InnoDB的data directory中

flush tables … for export 会加锁,这时候,千万不能退出终端或session,否则加锁无效且.cfg文件自动删除。

4.讲.ibd文件和.cfg文件拷贝到目标实例

[root@mysql5 wwj]# cp t1.cfg /home/mysql3306/mysql3306/wwj2

[root@mysql5 wwj]# cp t1.ibd /home/mysql3306/mysql3306/wwj2

修改权限

5.在源库执行unlock tables;

mysql> UNLOCK TABLES;

Query OK, 0 rows affected (0.00 sec)

6.在目标库执行ALTER TABLE t IMPORT TABLESPACE;

第一次执行:在目标库追加index后成功

mysql> alter table t1 import tablespace;

ERROR 2006 (HY000): MySQL server has gone away

No connection. Trying to reconnect…

Connection id: 3

Current database: wwj2

ERROR 1808 (HY000): Schema mismatch (Number of indexes don’t match, table has 1 indexes but the tablespace meta-data file has 2 indexes)

innodb可传输表空间注意事项

必须开启 innodb_file_per_table

当这个表处于quiesced状态,甚至不能被select

两边实例的page size 一致

5.7 版本之前,不支持分区表transport

外键相关的表,必须设置 foreign_key_checks=0 才能成功

ALTER TABLE … IMPORT TABLESPACE 不需要.cfg metadata file . 但是,这样的话,MySQL就不会对schema进行verificate

5.6以及更高版本,import&export 版本必须在同一个series

在replication环境中,master & slave 都必须开启 innodb_file_per_table

对于InnoDB general tablespace,不支持discard & import tablespace

如果两边服务器的table row_format设置的不一样,会导致schema mismatch error

加密过的InnoDB tablespace 必须要拷贝.cfp 文件

四.MyISAM表空间迁移

flush table with read lock

直接复制数据文件和表结构文件

mysql表空间转移_mysql共享表空间扩容,收缩,迁移相关推荐

  1. mysql 共享表空间_MySQL共享表空间概念

    该参数在mysql5.6.6及其后续版本默认开启,开启该参数的时候,Innodb将每个新创建的表的数据及索引存储在一个独立的.ibd文件里,而不是系统的表空间.当这些innodb表被删除或清空的时候, ...

  2. 清除mysql数据碎片_MySQL 清除表空间碎片方法总结

    mysql数据库会生成空间碎片了,这些空间碎片对于我们来讲影响不大但如果空间碎片多了会导致mysql查询缓存了,下面一起来看MySQL 清除表空间碎片方法吧,具体的如下所示. 碎片产生的原因 (1)表 ...

  3. mysql创建新表失败_MySQL创建表失败的问题

    今天有一个朋友问我一个MySQL的建表问题,问题的现象是创建表失败,根据他的反馈,问题比较奇怪, CREATE TABLE XXX ..此处省略260多个字段 `xxxxIsAllowIn` varc ...

  4. mysql压缩表语句_MYSQL静态表、动态表、压缩表总结

    摘要:mysql在创建表的时候定义表的性质(也叫表的类型),共有三种:静态表,动态表,压缩表.默认是静态表,如果存在varchar.blob.te... mysql在创建表的时候定义表的性质(也叫表的 ...

  5. mysql内存数据库性能_Mysql内存表配置及性能测试

    centos7 mysql数据库安装和配可以参考一下文章,基本照做就可以了(我选的方法二): http://www.cnblogs.com/starof/p/4680083.html 说到内存表,首先 ...

  6. mysql 表损坏_MYSQL数据表损坏的原因分析和修复方法小结(推荐)

    1.表损坏的原因分析以下原因是导致mysql 表毁坏的常见原因: 1. 服务器突然断电导致数据文件损坏. 2. 强制关机,没有先关闭mysql 服务. 3. mysqld 进程在写表时被杀掉. 4. ...

  7. java 修改mysql数据库表结构_MYSQL数据库表结构优化方法详解

    摘要:这篇MySQL栏目下的"MYSQL数据库表结构优化方法详解",介绍的技术点是"mysql数据库表结构.MySQL数据库.数据库表结构.MySQL.据库表结构.数据库 ...

  8. mysql字符集和表字符集_Mysql数据库表引擎与字符集

    Mysql数据库表引擎与字符集 1.服务器处理客户端请求 其实不论客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送一段文本(MySQL语句),服务器进程处理 ...

  9. mysql 分表原理_MYSQL 分表原理(转)

    简介: 引用MySQL官方文档中的一段话:MERGE存储引擎,也被认识为MRG_MyISAM引擎,是一个相同的可以被当作一个来用的MyISAM表的集合."相同"意味着所有表同样的列 ...

最新文章

  1. iOS开发者知识普及,Swift 挑战 Objective-C,谁会笑到最后?...
  2. AI算法工程师之路 梯度下降百度总结 练习机器学习的网站
  3. matlab中partdata,[转载]meanshift算法
  4. 网络钓鱼者钓到威胁情报公司的身上 黑客惨遭溯源
  5. WebSocket使用案例
  6. SAP的软件是如何深刻影响着世界的?
  7. 计算机进去pe怎么设置用户,电脑密码怎么设置,教您设置电脑开机密码
  8. 网易考拉:已与雅诗兰黛各自撤销法院在诉案件
  9. 【C#编程基础学习笔记】4---Convert类型转换
  10. LAMP的部署(一)
  11. 为什么网卡名称从eth0变成了enp*s*
  12. npp夜光数据介绍 viirs_NPP-VIIRS年度夜间灯光数据的合成方法与验证
  13. Excel 内的 VBS 脚本编程锦策
  14. 【学习笔记】白盒及黑盒测试方法简介
  15. 设计模式 - 建造者模式/生成器模式
  16. 哪位大神了解LEACH算法的可以解释下,LEACH算法构成网络结构时是用在随机部署网络节点的还是确定性部署网络节点呢?
  17. 跨境B2B电商市场血雨腥风,供应链管理系统成争夺焦点
  18. python项目总结与展望_2019年项目总结与展望范文
  19. 帝国CMS安全设置大全
  20. chrome 插件 页面请求转发_使用chrome扩展程序及jsonp实现跨域访问

热门文章

  1. 微课|中学生可以这样学Python(例11.1):tkinter电子时钟程序(2)
  2. 微课|中学生可以这样学Python(2.3.4节):例2-1
  3. Python中的数组类型
  4. C++ vector和list的区别及使用场景
  5. LINUX下的GNU调试工具,GNU调试器 GDB 8.3 发布及安装更新,支持RISC-V与IPv6连接等
  6. java方法重载两个数相加_java方法重载实验:判断键盘输入的两个数据的类型后进行比较...
  7. c++rpg黑框游戏_c++实现简单RPG对战游戏的代码.doc
  8. 35岁学python爬虫_35岁码农的机器学习入门之路-python篇
  9. 力扣226. 翻转二叉树(JavaScript)
  10. linux无法找到网卡6,CentOS 6/7克隆主机网卡无法启动解决