趁时间还有一些,再撸一篇,这问题是今天遇到的,在此先感谢运维的童鞋
【背景】
早上需要给某张大表增加一列
alter table A add column XXX tinyint default 0 comment '是否深度识别 0否 1是';
A 表当时数据行数千万数量级,当流量处于低峰时,进行上面sql,执行了大概5分钟后,报“the table XXX is full” 问题
【问题定位】
当时先在网上查找了一下,有设置最大行数的,查看配置已经很大了,足以满足当下的增长需求;有清理目录的,但没有给出具体的目录,这时候求助运维同学,解释如下:在执行alter 操作的时候,会对原表进行临时复制,在副本上进行更改,然后删除原表,再对新表进行重命名。在执行alter table时,其它用户可以阅读原表,但是对表的更新和修改的操作将被延迟,直到新表生成为止。新表生成后,这些更新和修改信息会自动转移到新表上,但是rename操作不会创建临时表。通过了解原理,再结合”执行5分钟后,报错“的现象,考虑是因为创建临时表导致磁盘空间不够,导致执行语句失败
【解决方案】
1.删除目录下的无用文件
2.将临时表目录指到一个大的磁盘目录上 (但是需要重启)
【结束语】
mysql 并没有像oracle 那样强悍,有些东西需要提前准备
相关推荐
如何解决MySql的Table is full问题 最近使用Mysql的Memory引擎时,出现了'Table’ is full的异常。解决办法是修改max_heap_table_size参数,改大以足够容纳表的大小,比如512M。
在论坛发表回复时出现“The table is full”的提示,字面意义上是数据表已满的意思。因为很少有开发者遭遇单一表超过4G的情况,因此朋友间的讨论只能提供一些外围的信息。为解决此问题,我翻阅了很多资料,本文将以...
解决mysql failed to open table mysql.event
MariaDB and MySQL Common Table Expressions and Window Functions Revealed introduces and explains CTEs and window functions, newly available in MariaDB 10.2 and MySQL 8.0, and helps you understand why ...
MySQL在进行alter table等DDL操作时,有时会出现Waiting for table metadata lock的等待场景。而且,一旦alter table TableA的操作停滞在Waiting for table metadata lock的状态,后续对TableA的任何操作(包括读)...
The maximum row size for the used table type, not counting BLOBs, is 65535 向mysql的表插件一个字段 类型为text时,或修改一个字段类型为text时,报出上面的错误。其实我对这个错误的原因理解也不是很深,给...
主要介绍了Mysql中Table ‘XXX’ is marked as crashed and last (automatic?)问题解决方法,需要的朋友可以参考下
Connector_J [MySQL ConnectorJ is the official JDBC driver for MySQL.].rar,包括: mysql-connector-java-5.1.22.tar.gz mysql-connector-java-5.1.22.zip
在后台使用phpMyAdmin对数据库进行优化时,显示成“Table is already up to date”。 很多人可能会对这次感到担心,因为默认优化表后提示是“status OK”,如下: Table Op Msg_type Msg_text commentmeta optimize ...
THREAD_CACHE MySQL里面为了提高客户端请求创建连接过程的性能,提供了一个连接池也就是 Thread_Cache池,将空闲的连接线程放在连接池中,而不是立即销毁.这样的好处就是,当又有一个新的请求的时候,mysql不会立即去创建...
The MySQL server is running with the –skip-grant-tables option so it cannot execute this statement 意思貌似MYSQL还运行在 –skip-grant-tables模式,如何让他回到原来的模式 第一种方法:原来在mysql.ini...
数据库表A: CREATE TABLE task_desc_tab ( id INT(11) PRIMARY KEY NOT NULL COMMENT '自增主键' AUTO_INCREMENT, <strong>taskname</strong> VARCHAR(200) NOT NULL COMMENT '任务名字', sqlname VARCHAR(20) ...
Host 主机名 is not allowed to connect the mysql server 原因:没有授权远程访问mysql 解决方法: cmd 中运行mysql -u root -p(如果报mysql 不是内部或外部命令,找到安装mysql对应的bin文件夹运行mysql.exe,...
18.2.3 Host '...' is blocked错误 18.2.4 Out of memory错误 18.2.5 Packet too large错误 18.2.6 The table is full错误 18.2.7 Commands out of sync in client错误 18.2.8 Ignoring ...
如果是导入还原数据 ,所以将该数据库文件夹下面所有表文件chmod成777,chown成”_mysql”,但这次问题更严重,drupal里面现实table crached。没办法,马上Google,发现其实解决起来挺容易的。 首先,找到m
MySQL创建数据表(CREATE TABLE语句)
解决MySQL error code 145 Table was marked as crashed and should be repaired的方法
使用MySQL可视化工具Navicat导出MySQL的表结构脚本的方法。 1、右键Navicat中的数据库→数据传输(Data Transfer)。 2、左边数据库对象(Database Objects)中选择对应的表,右边目标(Target)中选择文件(File)...