问题描述:将information_schema导出sql文件到新库中恢复,sql中的表都是临时表,存储引擎都是memory,在导入的过程中实际大量会占用临时表。

报错信息:ERROR 1114 (HY000) at line 2397 in file: 'HKUATZABBIXDB-2022-10-06_22-24-01-information_schema.sql': The table 'INNODB_BUFFER_PAGE' is full

环境:mariadb10.6.4

1.排查磁盘空间是否占满

2.查询数据文件增长是否受限制

MariaDB [test01]> show variables like '%innodb_data_file_path%';
+-----------------------+------------------------+
| Variable_name | Value |
+-----------------------+------------------------+
| innodb_data_file_path | ibdata1:12M:autoextend |
+-----------------------+------------------------+

3.导入的都是临时表,查询临时表大小

MariaDB [(none)]> show variables like '%tmp%';
+----------------------------+----------------------+
| Variable_name | Value |
+----------------------------+----------------------+
| default_tmp_storage_engine | |
| encrypt_tmp_disk_tables | OFF |
| encrypt_tmp_files | OFF |
| innodb_tmpdir | |
| max_tmp_tables | 32 |
| slave_load_tmpdir | /tmp |
| tmp_disk_table_size | 18446744073709551615 |
| tmp_memory_table_size | 16777216 |
| tmp_table_size | 16777216 |
| tmpdir | /tmp |
+----------------------------+----------------------+
10 rows in set (0.001 sec)

4.修改临时表大小,重启数据库,要导入的information_schema文件,所以临时表暂时调大

[mysqld]
tmp_table_size = 2048M
max_heap_table_size = 2048M

5.查看information_schema建表语句,使用临时表,存储引擎放在memory中。这种内存临时表在show tables时查询不到,但是可以被直接select看到,退出当前会话就会消失

DROP TABLE IF EXISTS `INNODB_BUFFER_PAGE`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TEMPORARY TABLE `INNODB_BUFFER_PAGE` (
`POOL_ID` int(11) unsigned NOT NULL DEFAULT 0,
`BLOCK_ID` bigint(21) unsigned NOT NULL DEFAULT 0,
`SPACE` int(11) unsigned NOT NULL DEFAULT 0,
`PAGE_NUMBER` int(11) unsigned NOT NULL DEFAULT 0,
`PAGE_TYPE` varchar(64) DEFAULT NULL,
`FLUSH_TYPE` int(11) unsigned NOT NULL DEFAULT 0,
`FIX_COUNT` int(11) unsigned NOT NULL DEFAULT 0,
`IS_HASHED` int(1) NOT NULL DEFAULT 0,
`NEWEST_MODIFICATION` bigint(21) unsigned NOT NULL DEFAULT 0,
`OLDEST_MODIFICATION` bigint(21) unsigned NOT NULL DEFAULT 0,
`ACCESS_TIME` bigint(21) unsigned NOT NULL DEFAULT 0,
`TABLE_NAME` varchar(1024) DEFAULT NULL,
`INDEX_NAME` varchar(64) DEFAULT NULL,
`NUMBER_RECORDS` bigint(21) unsigned NOT NULL DEFAULT 0,
`DATA_SIZE` bigint(21) unsigned NOT NULL DEFAULT 0,
`COMPRESSED_SIZE` bigint(21) unsigned NOT NULL DEFAULT 0,
`PAGE_STATE` enum('NOT_USED','MEMORY','REMOVE_HASH','FILE_PAGE') NOT NULL,
`IO_FIX` enum('IO_NONE','IO_READ','IO_WRITE','IO_PIN') NOT NULL,
`IS_OLD` int(1) NOT NULL DEFAULT 0,
`FREE_PAGE_CLOCK` bigint(21) unsigned NOT NULL DEFAULT 0
) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3;

内存临时表和磁盘是临时表

-- 内存中的临时表:
create temporary table mytrans
(
itemnumber int,
groupnumber int,
branchnumber int
)engine = memory
; -- 创建一个同样结构的临时表 就是普通的临时表 MySQL 会默认存储引擎是 innoDB
create temporary table mytran
(
itemnumber int,
groupnumber int,
branchnumber int
);

结论

1.information_schema可以作为sql文件导入到新的数据库中,sql文件中的表都是以内存临时表的形式存在

2.内存临时表和磁盘临时表 show tables都查询不到,但是可以被select,退出当前会话,临时表就会释放

3.可以修改tmp_table_size、max_heap_table_size 来解决The table 'INNODB_BUFFER_PAGE' is full的问题

[ERROR] mariadbd: The table 'INNODB_BUFFER_PAGE' is full的更多相关文章

  1. JDE客户端get时报错“ERROR:fetch from table F0101 failed”

    客户端开发时发现总报错误“ERROR:fetch from table F0101 failed” 原因是用户ID在地址名册中找不到地址号.修改用户地址号即可.如下图所示

  2. MySQL:Error : Tablespace for table '`database`.`temp`' exists. Please DISCARD the tablespace before IMPORT.解决办法

    今天在navicat上操作mysql数据库表,突然没有响应了.随后重启,mysql服务也终止了.随后启动服务,检查表,发现一张表卡没了,就重新添加一张表.报了一个错: Error : Tablespa ...

  3. ERROR 1050 (42S01): Table xxx already exists

      今天遇到一个关于MySQL求助的问题,修改表结构时遇到"ERROR 1050 (42S01): table xxx already exits" mysql> ALTER ...

  4. ERROR 1526 (HY000): Table has no partition for value xxx

    最近,我们有些功能需要使用到基于多个字段的分区,需要同时支持oracle/mysql,但是开发人员又希望尽可能少的改动业务代码,也不愿意使用多列分区,在oracle 11g之前,不支持多列分区(12. ...

  5. 慢日志之二:ERROR 1146 (42S02): Table 'mysql.slow_log' doesn't exist,分析诊断工具之四

    去查看最新的slow log,发现没有最新的记录,上去检查slow log是否开启了. MySQL> show variables like '%slow%'; +--------------- ...

  6. ERROR 1146 (42S02): Table 'mysql.servers' doesn't exist

    MySQL版本:mysql5.7.21 修改用户权限,刷新权限表,报1146 mysql> flush privileges; ERROR 1146 (42S02): Table 'mysql. ...

  7. Error: no such table: device;的问题的解决,去掉表名device后面的分号;

    sqlite> .mode csvsqlite> .import device.txt device;Error: no such table: device;sqlite> .im ...

  8. MySQL数据库插入数据出现 ERROR 1526 (HY000): Table has no partition for value xxx

    MySQL数据库插入数据出现ERROR 1526 (HY000): Table has no partition for value xxx工作的时候发现无法插入数据,报错:ERROR 1526 (H ...

  9. mysql表ERROR 144 (HY000)Table 'dede_archives' is marked

    1.故障现象 mysql> select count(*) from dede_archives;ERROR 144 (HY000): Table '.xx' is marked as cras ...

  10. [Q&A] MySQL Error 1050(42S01): Table already exist

    [环境说明] 1:MySQL Server 5.5 2:MyEclipse 2014 3:JDK 1.7 造成该问题的可能原因: 1:用 Java 读取 SQL 文件,并执行其中的 sql 语句,但是 ...

随机推荐

  1. 记录一下~~~Linux配置定时任务备份数据库dmp文件

    1.创建备份目录: mkdir -p /dcits/sx_xmz/sx_data_bak chown -R oracle18c:oinstall /dcits/sx_xmz/sx_data_bak 2 ...

  2. mysql_添加修改字段总结

    Mysql 添加字段 例子 ALTER TABLE tt_transfer_container_pick_config ADD COLUMN container_pick_station VARCHA ...

  3. 从零开始搭建gitea代码管理平台

    Gitea,一款极易搭建的Git自助服务.如其名,Git with a cup of tea.跨平台的开源服务,支持Linux.Windows.macOS和ARM平台.配置要求低,甚至可以运行在树莓派 ...

  4. LFS(Linux From Scratch)构建过程全记录(五):交叉工具链的构建

    写在前面 本文将详细讲述如何构建工具链 前置知识 在LFS-BOOK中,我们需要学习一些关于"交叉编译"的内容,详见书本 安装Binutils-2.39 我们cd到sources文 ...

  5. Java中一些必须要知道的东西

    直接打印数组名称,得到的是数组对应的内存地址--哈希值.

  6. 使用 Skywalking Agent,这里使用sidecar 模式挂载 agent

    文章转载自:https://bbs.huaweicloud.com/blogs/315037 方法汇总 Java 中使用 agent ,提供了以下三种方式供你选择 使用官方提供的基础镜像 将 agen ...

  7. Traefik开启监控,日志,追踪需要的参数

    监控 官方文档地址:https://doc.traefik.io/traefik/observability/metrics/overview/ 可以使用多种监控软件,比如Datadog,Influx ...

  8. 220726 T1 树染色问题 (树的直径)

    题目描述 高钧在校园中漫步时,经过了一棵树.这时,几个同学突然冒出来控制住了他. 这棵树有 nn 个节点, 每个节点有黑白两种颜色, 为了更好的 alb , 需要把所有节点染成同一种颜色. 为了更好的 ...

  9. python实现给定K个字符数组,从这k个字符数组中任意取一个字符串,按顺序拼接,列出所有可能的字符串组合结果!

    题目描述:给定K个字符数组,从这k个字符数组中任意取一个字符串,按顺序拼接,列出所有可能的字符串组合结果! 样例: input:[["a","b"," ...

  10. 部署 LNMP(源码安装版本)shell脚本

    #!/bin/bash # 一键部署 LNMP(源码安装版本) menu() { clear echo " ##############‐‐‐‐Menu‐‐‐‐##############& ...