1. 调整InnoDB系统表空间的大小
1. 调整InnoDB系统表空间的大小
介绍如何增大或减小InnoDB系统表空间的大小 。
1.1 增加InnoDB系统表空间大小
增加InnoDB系统空间最简单的方法就是,在配置文件中配置autoextend
每次自动扩展的增量大小由参数 innodb_autoextend_increment 控制,单位为’M’。
mysql> show variables like 'innodb_autoextend_increment';
+-----------------------------+-------+
| Variable_name | Value |
+-----------------------------+-------+
| innodb_autoextend_increment | 64 |
+-----------------------------+-------+
该 innodb_autoextend_increment 设置不会影响 每个表的单独表空间文件或常规表空间文件。无论innodb_autoextend_increment设置如何,这些文件都是自动扩展的 。初始扩展是少量的,之后以4MB的增量扩展。
设置自动扩展示例:
innodb_data_file_path = ibdata1:1G:autoextend
增加数据文件扩展系统表空间
1. 关闭MySQL服务器
如果最后一个数据文件上有关键字autoextend,请根据实际大小将其改成固定大小。
添加新数据文件到末尾,可以选择使用自动扩展。但是只能将最后一个数据文件指定为自动扩展。
如下面错误示例:
innodb_data_file_path = ibdata1:1G:autoextend;ibdata2:10M:autoextend
查看log-error日志
2018-08-09T06:22:11.781320Z 0 [ERROR] InnoDB: syntax error in file path or size specified is less than 1 megabyte
2018-08-09T06:22:11.781352Z 0 [ERROR] InnoDB: Unable to parse innodb_data_file_path=ibdata1:1G:autoextend;ibdata2:10M:autoextend
2018-08-09T06:22:11.781357Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2018-08-09T06:22:11.781361Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2018-08-09T06:22:11.781364Z 0 [ERROR] Failed to initialize builtin plugins.
2018-08-09T06:22:11.781367Z 0 [ERROR] Aborting
正确示例:
innodb_data_file_path = ibdata1:1G;ibdata2:10M:autoextend
- 再次启动MySQL服务器
2018-08-09T06:28:37.355696Z 0 [Note] InnoDB: Need to create a new innodb_system data file 'ibdata2'.
2018-08-09T06:28:37.355778Z 0 [Note] InnoDB: Setting file './ibdata2' size to 10 MB. Physically writing the file full; Please wait ...
2018-08-09T06:28:37.491906Z 0 [Note] InnoDB: File './ibdata2' size is now 10 MB.

mysql> show variables like 'innodb_data_%';
+-----------------------+-----------------------------------+
| Variable_name | Value |
+-----------------------+-----------------------------------+
| innodb_data_file_path | ibdata1:1G;ibdata2:10M:autoextend |
| innodb_data_home_dir | |
+-----------------------+-----------------------------------+
【注意】:添加新数据文件时,请确保文件名不引用现有文件。否则InnoDB重新启动服务器时创建并初始化文件。
1.2 减小InnoDB系统表空间大小
无法从系统表空间中删除数据文件。要减小系统表空间大小,请使用以下过程:
- 1)使用mysqldump转储所有 InnoDB表,包括位于mysql schema 中的InnoDB表
mysql> SELECT TABLE_NAME from INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='mysql' and ENGINE='InnoDB';
+---------------------------+
| TABLE_NAME |
+---------------------------+
| engine_cost |
| gtid_executed |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| innodb_index_stats |
| innodb_table_stats |
| plugin |
| server_cost |
| servers |
| slave_master_info |
| slave_relay_log_info |
| slave_worker_info |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
+---------------------------+
19 rows in set (0.00 sec)
2)停止服务器
3)删除所有现有的表空间文件
(*.ibd),包括ibdata和ib_log文件。不要忘记删除位于mysql schema中的表的*.ibd文件。4)删除InnoDB表的所有
.frm文件 。5)配置新的表空间
6)重启服务器
7)导入转储文件。
注意
如果数据库仅使用InnoDB引擎,则dump所有数据库,停止服务器,删除所有数据库和InnoDB日志文件,重新启动服务器以及导入dump文件可能更简单。
1. 调整InnoDB系统表空间的大小的更多相关文章
- 14.7.1 Resizing the InnoDB System Tablespace InnoDB 系统表空间大小
14.7.1 Resizing the InnoDB System Tablespace InnoDB 系统表空间大小 这个章节描述如何增加或者减少 InnoDB 系统表空间的大小 增加InnoDB ...
- mysql-5.7 扩展innodb系统表空间详解
一.innodb系统表空间的简介: innodb 系统表空间是由若干个文件组成的,表空间的大小就是对应文件的大小,表空间文件是由innodb_data_file_path 这人参数来定义的.下面我们来 ...
- innodb系统表空间维护
环境说明: 有一个在运行中的mysql环境,由于之前的配置文件设置的过于简单(没有配置innodb_data_file_path变更):造成现在系统表空间已经满了 如果innodb_data_file ...
- 14.4.5 System Tablespace 系统表空间
14.4.5 System Tablespace 系统表空间 InnoDB 系统表空间包含InnoDB 数据目录(元数据 用于InnoDB相关对象)和是存储区域用于doublewrite buffer ...
- mysql-5.7 收缩系统表空间详解
innodb 系统表空间是一个逻辑上的概念,它的物理表现就是innodb系统表空间文件:在讲扩展系统表空间时我们说到 可以用增加文件,增加autoextend标记 这两种方式来解决:但是问题到了收缩表 ...
- 3. 对系统表空间使用Raw磁盘分区
3. 对系统表空间使用Raw磁盘分区 可以将raw磁盘分区用作InnoDB系统表空间中的数据文件.此技术可在Windows和某些Linux和Unix系统上启用非缓冲I/O,而无需文件系统开销.使用和不 ...
- 9. InnoDB通用表空间
9. InnoDB通用表空间 通用表空间是InnoDB 使用CREATE TABLESPACE语法创建的共享表空间.本节中的以下主题描述了常规表空间功能和功能: 通用表空间功能 创建通用表空间 将表添 ...
- Linux上Oracle18C 系统表空间大小调整 adjust the system tablespace for oracle18c on linux
1. 测试过程中,发现 system tablespace is not enough, need to adjustment 初步解决方案: 查询一下 system tablespace的大小 S ...
- 【转载】Innodb共享表空间VS独立表空间
http://www.mysqlsupport.cn/innodb%E5%85%B1%E4%BA%AB%E8%A1%A8%E7%A9%BA%E9%97%B4vs%E7%8B%AC%E7%AB%8B%E ...
随机推荐
- bzoj 3053: The Closest M Points【KD-tree】
多维KDtree板子 左右儿子的估价用mn~mx当区间,假设区间里的数都存在:k维轮着做割点 #include<iostream> #include<cstdio> #incl ...
- hdu 1171 Big Event in HDU【生成函数】
按套路列生成函数式子然后暴力乘,这样复杂度看起来非常大,但是可以动态维护最大值,这样就是O(能过)的了 仔细想想这个多项式暴力乘理解成背包dp也行? #include<iostream> ...
- 笔记:JavaScript闭包
闭包 闭包是一种保护私有变量的机制,在函数执行时形成私有的作用域,保护里面的私有变量不受外界干扰.直观的说就是形成一个不销毁的栈环境. 对于闭包,当外部函数返回之后,内部函数依然可以访问外部函数的变量 ...
- SequoiaDB、SequoiaSQL、Cloudera Manager4.8.0、Cloudera CDH4.5 详细安装教程
1安装SequoaiDB集群 1.1配置信任关系 以root用户执行下面的操作 1 执行命令 ssh-keygen 然后一直回车确定即可 2 每台机器都打开id_rsa.pub文件 vi ~/.ssh ...
- 黑客攻防技术宝典web实战篇:定制攻击自动化习题
猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 指出使用自动技巧在应用程序中枚举标识符时用到的 3 个标识符“触点”. (a) HTTP ...
- 使用ansible对远程主机上的ssh公钥进行批量分发
使用ansible对远程主机上的ssh公钥进行批量分发或者是删除修改操作 ansible内置了一个authorized_key模块,这个模块很好用,我们使用这个模块可以对远程 主机上的ssh公钥进行批 ...
- AtCoder Grand Contest 003 F - Fraction of Fractal
题目传送门:https://agc003.contest.atcoder.jp/tasks/agc003_f 题目大意: 给定一个\(H×W\)的黑白网格,保证黑格四连通且至少有一个黑格 定义分形如下 ...
- B.华华教月月做数学
链接:https://ac.nowcoder.com/acm/contest/392/B 题意: 找到了心仪的小姐姐月月后,华华很高兴的和她聊着天.然而月月的作业很多,不能继续陪华华聊天了.华华为了尽 ...
- [NOIP2018校模拟赛]T1 阶乘
题目: 描述 有n个正整数a[i],设它们乘积为p,你可以给p乘上一个正整数q,使p*q刚好为正整数m的阶乘,求m的最小值. 输入 共两行. 第一行一个正整数n. 第二行n个正整数a[i]. 输出 共 ...
- 对protected修饰符的范围用代码说明(同时说明用protected修饰的属性,在继承时,一定程度上破坏了封装)
目录结构: 本类: 本包: 子孙类: 其他包: