博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
谈谈tmpdir与innodb_tmpdir的区别和用处
阅读量:5846 次
发布时间:2019-06-18

本文共 1454 字,大约阅读时间需要 4 分钟。

背景

  innodb_tmpdir是在innodb online ddl中提到的一个参数;大致的意思是innodb在做online-ddl的时候会向临时目录写入“临时排序文件”

  而这些文件的大小基本上就要与表的数据+索引的大小差不多。

 

  这里的临时目录默认就是由“tmpdir”这个参数的值,在我的主机上用了/tmp/这个目录

show global variables like 'tmpdir';                                                                          +----------------+----------+| Variable_name  | Value    |+----------------+----------+| tmpdir         | /tmp     |+----------------+----------+

  通常来说linux上的tmp目录不可能会特别大,常见的也就几个G吧,但是innodb单个表中的“数据”+“索引”几十个G的多了去了;如果是对

  这样的表做online ddl 那么临时目录是保存不下这么大的数据量的,最终的结果就是online ddl失败。

 

innodb_tmpdir

  如果有设置innodb_tmpdir的值、那么在online ddl时innodb会以innodb_tmpdir的值为准、也就是说事实上形成了一种innodb_tmpdir覆盖

  tmpdir的效果

  回过头来、如果MySQL实例没有设置innodb_tmpdir的值自然就是以tmpdir的值为准啦。

 

设置innodb_tmpdir的注意事项

  1、设置innodb_tmpdir要求用户有file权限

  2、innodb本身要求innodb_tmpdir的值不能与datadir的值相同

-- 把innodb_tmpdir设置为datadir是行不通的mysql> set @@global.innodb_tmpdir='/database/mysql/data/3306/';                                                    ERROR 1231 (42000): Variable 'innodb_tmpdir' can't be set to the value of '/database/mysql/data/3306/'

 

innodb_tmpdir的最佳实践

  1、设计时应该尽可能的想到用数据分片来处理表、不要让表太大(超过tmpdir目录的大小)、虽然这条写在最前面我自己并不怎么care!

  2、推荐把数据(datadir)与数据库备份文件保存在不同的物理磁盘上,一来可以在备份的时候尽可能的减小对oltp的影响,二来这种情况

  下把tmpdir配置成备份盘的一个目录是非常好的一个选择。(我们的数据库主机上没有第二块盘呀!“穷”本身就是一个问题)

  3、实在没有办法就在执行online ddl前给innodb_tmpdir分配一个大点的目录吧,好歹也能保证执行成功呀!

 

innodb online ddl的官方文档

  官方文档 : 

----

转载于:https://www.cnblogs.com/JiangLe/p/10156689.html

你可能感兴趣的文章
Linux防火墙关闭及查看详解
查看>>
mysql主主同步模式
查看>>
Python基础班每日整理(五)
查看>>
php获取当前页面的完整url
查看>>
网络运维——访问共享的三种方式
查看>>
sql developer Oracle 数据库 用户对象下表及表结构的导入导出
查看>>
搭建DNS服务-----正向解析、反向解析、泛域名解析。
查看>>
详述在Linux上挂载window共享文件夹
查看>>
重置mysql 8.0 root用户密码
查看>>
extend vg(pv,lv)use HotPlug Storage PV for VMI(ECC Env)
查看>>
Charles 抓包手机app
查看>>
redis的主从集群环境搭建
查看>>
好程序员web前端带你了解JS的作用域链
查看>>
除了模拟手术教学,VR在医疗领域如何应用?
查看>>
JVM性能调优之如何书写高效优雅的代码
查看>>
谈数据中心“容灾和备份的区别”
查看>>
linux的LVM
查看>>
不同的类UNIX操作系统密码破解方法介绍
查看>>
MySQL 5.6 for Windows配置安装之解压缩版
查看>>
ubuntu jdk
查看>>