达梦数据库-报错-06-[-502]OUT OF TEMPORARY DATABASE SPACE(临时表空间不足)

目录

一、环境信息

二、说点什么

三、介绍

1、临时表空间

(1)介绍

(2)参数

四、排查SQL

五、场景一

1、问题描述

2、报错分析

3、解决方法

六、场景二

1、问题描述

2、报错分析

3、解决方法


一、环境信息

|------|--------------------------|
| 名称 | 值 |
| CPU | x86 |
| 操作系统 | KylinV10 |
| DM版本 | DM Database Server 64 V8 |

二、说点什么

最近生产业务频繁出现报错:[-502]OUT OF TEMPORARY DATABASE SPACE。必须得记录一下处理过程,都和英方同步软件有关,这里只是表名问题的分析和处理过程,英方同步软件本身还是很nice的,求生欲拉满。

三、介绍

1、临时表空间

(1)介绍

作用维度 具体描述
核心作用 为内存不足的SQL操作提供磁盘交换空间
处理的典型操作 1. 排序操作ORDER BY, GROUP BY, DISTINCT, 创建索引 2. 哈希连接HASH JOIN 3. 合并连接MERGE JOIN 4. 位图操作 :位图索引创建与合并 5. 临时LOB :大型临时LOB对象 6. 全局临时表:在临时表创建过程中,不会像永久表和索引那样自动分配数据段,而是仅当第一次执行 DML 语句时,才会为临时表在临时表空间中分配空间
与结果集的关系 不直接存储最终结果集 ,而是存储计算过程中的中间数据
管理特性 1. 临时文件 :使用 tempfile,不记录redo日志,可大幅提高性能。 2. 空间分配 :按需动态分配和释放,但已分配的空间会被标记为可重用。 3. 默认表空间 :数据库有一个TEMP表空间供所有用户使用。 4. 多个临时表空间:可为不同用户组分配不同的临时表空间以隔离负载。

(2)参数

|------------------|-----|-------------------------------------------------------------------------------------------------|
| 参数名 | 默认值 | 描述 |
| TEMP_SIZE | 10 | 静态 默认创建的临时表空间大小,单位 MB。取值范围 10~1048576 |
| TEMP_SPACE_LIMIT | 0 | 动态,系统级 临时表空间大小上限,单位 MB。0 表示不限制临时表空间大小。 取值范围 0~4294967294。 注:TEMP_SPACE_LIMIT 一定要大于等于 TEMP_SIZE |

四、排查SQL

|----------------------------------------------------------------------------------------------------------------------------------------------|-------------------------|
| 链接 | 描述 |
| 达梦数据库-学习-16-常用SQL记录(持续更新) | 查看其中的SQL:查看会话SQL执行资源情况。 |
| V$SESSIONS中的字段TMP_USED_EXTENT_NUM | 显示会话中使用的临时表空间所占用的总簇数。 |

五、场景一

1、问题描述

业务老师表示上周应用和英方同步工具同事报错提示:[-502]OUT OF TEMPORARY DATABASE SPACE。

2、报错分析

由于是上周的问题,我们现在查只能根据现有情况去分析历史情况。

挖掘出的归档日志数据是存放在临时缓冲区中,通过截图SQL可以看出日志挖掘的相关语句,SQL临时缓冲区逻辑读250171页,数据库页大小为32K,共需读取7.6G的内存,临时缓冲区大小为32G,英方这边一共开启四个会话共需30.4G,还不算其他SQL的占用就已经接近临时缓冲区限制,数据就会放入临时表空间中进行计算,英方同步软件上周在补数,开大线程数或者一次挖掘的日志过多来提升效率,导致超过临时表空间限制,提示上述错误。

3、解决方法

|----|---------------------------------|
| 序号 | 描述 |
| 1 | 降低英方同步软件的源端(达梦端)线程数或减少每次挖掘的日志数。 |
| 2 | 提升RECYCLE临时缓冲区大小的尺寸。 |

后续英方老师也确认上周在做大量的补数,符合我们的预测。

六、场景二

1、问题描述

业务老师表示最近英方报错提示:[-502]OUT OF TEMPORARY DATABASE SPACE。

2、报错分析

英方I2用户执行数据对比SQL把临时表空间占满,四百多万数据需要排序返回。44047个簇,一个簇32个页,一个页32k,一个SQL用了43g的临时表空间,共三个SQL差不多吃满临时表空间150G,再来一个线程就提示上述错误。

3、解决方法

|----|-----------------------------------|
| 序号 | 描述 |
| 1 | 对于排序列建立索引,避免排序操作符,减少临时表空间的使用。 |
| 2 | 英方数据对比功能建议不在开市期间进行,避免和业务老师出现资源争抢。 |

相关推荐
世人万千丶2 小时前
鸿蒙跨端框架 Flutter 学习 Day 3:综合实践——多维数据流与实时交互实验室
学习·flutter·华为·交互·harmonyos·鸿蒙
fai厅的秃头姐!2 小时前
01-python基础-day01Linux基础
linux
世人万千丶2 小时前
鸿蒙跨端框架 Flutter 学习 Day 3:工程实践——数据模型化:从黑盒 Map 走向强类型 Class
学习·flutter·ui·华为·harmonyos·鸿蒙·鸿蒙系统
Darkershadow2 小时前
蓝牙学习之Provision(7)bind (1)
学习·蓝牙·ble·mesh
龙亘川2 小时前
【课程5.7】代码编写:违建处置指标计算(违建发现率、整改率SQL实现)
数据库·oracle·智慧城市·一网统管平台
tianyuanwo2 小时前
Jenkins Job管理实战指南:增删改查与批量操作技巧
运维·jenkins
松涛和鸣2 小时前
55、ARM与IMX6ULL入门
c语言·arm开发·数据库·单片机·sqlite·html
螺旋小蜗2 小时前
docker-compose文件属性(3)顶部元素networks
运维·docker·容器
无小道2 小时前
OS中的线程
linux·线程·进程·os·线程库·用户级线程库·线程使用
PNP Robotics2 小时前
PNP机器人分享具身操作策略和数据采集
大数据·人工智能·学习·机器人