innodb_file_per_table - 转换为InnoDB
共享InnoDB / var / lib / mysql / ibdata1存储的问题
InnoDB表当前将数据和索引存储到共享表空间(/ var / lib / mysql / ibdata1)。由于共享表空间,一个InnoDB表的数据损坏可能导致MySQL无法在整个计算机上启动。修复InnoDB损坏可能非常难以执行,并且可能导致在修复过程中最初未损坏的表的数据丢失。
由于MySQL 5.5将使用InnoDB作为默认存储引擎,因此考虑继续利用/ var / lib / mysql / ibdata1中的共享表空间的后果非常重要。
使用innodb_file_per_table更改为每表表空间
作为解决问题的选项,MySQL有一个名为innodb_file per_table的配置变量。要使用此变量,可以将以下内容放入/etc/my.cnf,以将InnoDB转换为每个InnoDB引擎表的每个表文件:
innodb_file_per_table = 1
添加该行后,需要在机器上重新启动MySQL。
在/etc/my.cnf中使用该行的结果将导致在添加行之后的任何数据库在/ var / lib / mysql / database / location中创建.idb文件。请注意,共享表空间仍将保留内部数据字典和撤消日志。
转换旧的InnoDB表
任何设置为先前在ibdata1中共享表空间的InnoDB表的旧数据库仍将使用该文件,因此需要将这些旧数据库切换到新系统。MySQL CLI中的以下命令将创建InnoDB引擎表的列表以及为每个引擎运行的命令,以将它们转换为新的innodb_file_per_table系统:
select concat('alter table ',TABLE_SCHEMA ,'.',table_name,' ENGINE=InnoDB;') FROM INFORMATION_SCHEMA.tables where table_type='BASE TABLE' and engine = 'InnoDB';
我的测试计算机上的Roundcube示例在运行previous命令时显示以下返回值:
alter table roundcube.cache ENGINE = InnoDB;
alter table roundcube.contacts ENGINE = InnoDB;
alter table roundcube.identities ENGINE = InnoDB;
alter table roundcube.messages ENGINE = InnoDB;
alter table roundcube.session ENGINE = InnoDB;
alter table roundcube.users ENGINE = InnoDB;
然后,您只需发出MySQL CLI指出的命令,然后将每个表转换为新的innodb_file_per_table格式。
请注意,这些命令只需要在MySQL命令行中进行转换,可以通过在bash提示符下输入mysql在root SSH中访问。
转换旧InnoDB表的可能问题
1.转换期间可能发生系统负载
2.驱动器空间填满转换的可能问题
innodb_file_per_table - 转换为InnoDB的更多相关文章
- MySQL MyISAM引擎转换为InnoDB操作记录
进入mysql命令行模式: # mysql -uroot -ppwd 1.查看mysql提供什么存储引擎: mysql> show engines; 2.查看mysql当前提供的默认存储引擎: ...
- [MySQL Reference Manual]14 InnoDB存储引擎
14 InnoDB存储引擎 14 InnoDB存储引擎 14.1 InnoDB说明 14.1.1 InnoDB作为默认存储引擎 14.1.1.1 存储引擎的趋势 14.1.1.2 InnoDB变成默认 ...
- mysql innodb存储引擎介绍
innodb存储引擎1.存储:数据目录.有配置参数为“ innodb_data_home_dir ” .“ innodb_data_file_path ” 和 “innodb_log_group_ho ...
- MySQL 参数- Innodb_File_Per_Table(独立表空间)
Innodb存储引擎可将所有数据存放于ibdata*的共享表空间,也可将每张表存放于独立的.ibd文件的独立表空间.共享表空间以及独立表空间都是针对数据的存储方式而言的. 共享表空间某一个数据库的所有 ...
- MySQL InnoDB 备份与恢复七种方式
有几种方式: 1 mysqldump, 这种方式不仅适用于InnoDB,还适用于其它类型的存储引擎,如MyISAM.备份的时候将数据库备份成SQL(包含drop,create,insert等语句),恢 ...
- MySQL Server参数优化 - innodb_file_per_table(独立表空间)
1 简介 Innodb存储引擎可将所有数据存放于ibdata*的共享表空间,也可将每张表存放于独立的.ibd文件的独立表空间. 共享表空间以及独立表空间都是针对数据的存储方式而言的. ...
- innodb的innodb_buffer_pool_size和MyISAM的key_buffer_size(转自:http://www.java123.net/898181.html)
一. key_buffer_size 对MyISAM表来说非常重要. 如果只是使用MyISAM表,可以把它设置为可用内存的 -%.合理的值取决于索引大小.数据量以及负载 -- 记住,MyISAM表会使 ...
- MySQL-5.7设置InnoDB表数据文件存储位置
1.表空间 Innodb存储引擎可将所有数据存放于ibdata*的共享表空间,也可将每张表存放于独立的.ibd文件的独立表空间. 共享表空间以及独立表空间都是针对数据的存储方式而言的. 共享表空间: ...
- MySQL 5.6 Reference Manual-14.6 InnoDB Table Management
14.6 InnoDB Table Management 14.6.1 Creating InnoDB Tables 14.6.2 Moving or Copying InnoDB Tables to ...
随机推荐
- 关于oracle的缓冲区机制与HDFS中的edit logs的某些关联性的思考
可能大家会问,oracle和HDFS属于不同场景的存储系统,它们之间为什么会有联系呢?确实,从技术本身来看,他们确实无关联,但利用“整体学习”的思想,跳出技术本身,可以发现Oracle的缓冲区和HDF ...
- Chapter 2 Open Book——26
"Oh." He let it drop. I looked away awkwardly. 哦,他让它走了.我笨拙的看向别处. “哦.”他不再纠缠于这个问题.我笨拙地移开视线. ...
- mongo学习使用记录2 spring data
spring data mongo 打印mongo NoSql语句 log4j.properties log4j.rootLogger=INFO, stdout log4j.logger.org.sp ...
- 笨方法学python学习笔记
创建于:2016-02-29 更新于:03-02 python版本:2.7 %r 用来做 debug 比较好,因为它会显示变量的原始数据(raw data),而其它的符号则是用来向用户展示输出的: 每 ...
- git使用总结(包含git commit message 和 changelog 工具的介绍)
[git的配置] 1.配置用户名和邮箱: 分为全局配置和局部配置 --system 系统配置 --global 全局配置 --local 局部配置 Git读取时:优先从local>glo ...
- 撩课-Web大前端每天5道面试题-Day34
1.React 中 keys 的作用是什么? Keys 是 React 用于追踪哪些列表中元素被修改.被添加或者被移除的辅助标识. render () { return ( <ul> {t ...
- Fragment的坑
http://www.jianshu.com/p/d9143a92ad94 使用add()加入fragment时将触发onAttach(),使用attach()不会触发onAttach() 使用rep ...
- java如何正确停止一个线程
Thread类中有start(), stop()方法,不过stop方法已经被废弃掉. 平时其实也有用过,共享一个变量,相当于标志,不断检查标志,判断是否退出线程 如果有阻塞,需要使用Thread的in ...
- django rest_framework Serializers 序列化组件
为什么要用序列化组件 当我们做前后端分离的项目~~我们前后端交互一般都选择JSON数据格式,JSON是一个轻量级的数据交互格式. 那么我们给前端数据的时候都要转成json格式,那就需要对我们从数据库拿 ...
- zookeeper3.4.5+Hbase1.2.6安装教程
说明:在安装zookeeper+Hbase之前,我们应该已经将hadoop集群搭建好了(三个节点),并且验证启动成功.因为HBase是一种构建在HDFS之上的分布式.面向列的存储系*统. zookee ...