首页/新闻资讯/正文详情

Oracle表空间巡检SQL脚本与运维实践

发布时间:2026/11/5 6:20:23 来源:云帆数科 栏目:资讯中心
Oracle表空间巡检SQL脚本与运维实践
1. 表空间巡检的重要性与核心指标作为一名Oracle DBA表空间巡检是日常运维中最基础也最关键的环节。想象一下表空间就像数据库的仓库存放着所有数据文件。当仓库空间不足时业务系统就会像被掐住脖子一样无法正常运行。我经历过多次因为表空间爆满导致的业务中断事故往往发生在凌晨或节假日那种被连环call醒的滋味实在不好受。这个SQL脚本的价值在于它能一次性获取表空间的完整健康画像包含以下核心维度容量指标总大小、剩余空间、使用率重点关注对象管理属性区管理方式、段管理方式影响性能的关键配置状态指标在线状态、日志模式反映可用性的基础参数提示建议将使用率阈值设置为85%就触发告警不要等到90%才处理。我曾在某金融系统遇到表空间使用率从87%飙升到100%只用了20分钟的情况。2. SQL脚本深度解析2.1 核心查询逻辑拆解这个脚本的精妙之处在于通过DBA_TABLESPACES与两个子查询的联合实现了表空间元数据与空间使用情况的关联查询。我们来拆解关键部分-- 子查询1获取各表空间空闲空间总和DBA_FREE_SPACE (SELECT TABLESPACE_NAME, SUM(BYTES) SUMBYTES FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F, -- 子查询2获取各表空间总空间DBA_DATA_FILES (SELECT TABLESPACE_NAME, SUM(BYTES) SUMBYTES FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) D -- 外连接确保包含无空闲空间的表空间 WHERE F.TABLESPACE_NAME() D.TABLESPACE_NAME特别注意那个()符号这是Oracle特有的外连接语法确保即使某些表空间完全没有空闲空间F表无记录也不会被漏掉。这个细节处理体现了编写者的老道经验。2.2 空间计算的艺术空间单位的转换是另一个亮点ROUND(D.SUMBYTES / 1024 / 1024 / 1024, 2) || GB TOTAL -- 字节转GB这里连续除以3个1024将字节转换为GB单位。我建议可以增加MB单位的输出列因为有些小型表空间用GB显示会得到0.00这样的无意义值。改进版可以是ROUND(D.SUMBYTES / 1024 / 1024, 2) || MB TOTAL_MB, ROUND(D.SUMBYTES / 1024 / 1024 / 1024, 2) || GB TOTAL_GB3. 关键指标解读与运维建议3.1 管理方式诊断A.EXTENT_MANAGEMENT EXT_MGT, -- LOCAL或DICTIONARY A.SEGMENT_SPACE_MANAGEMENT SEG_MGT -- AUTO或MANUALEXT_MGT如果看到DICTIONARY字典管理这是Oracle早期版本的方式容易产生性能瓶颈。应立即制定迁移计划转为LOCAL管理。我曾将某系统的字典管理表空间迁移后INSERT性能提升了近40%。SEG_MGTAUTO代表自动段空间管理这是Oracle 9i后的推荐设置。如果看到MANUAL建议在维护窗口期调整。3.2 状态监控要点A.STATUS STATUS, -- ONLINE/READ ONLY/OFFLINE A.LOGGING LOGGING -- LOGGING/NOLOGGINGSTATUS异常处理READ ONLY如果是设计如此如历史数据表空间则正常否则需检查OFFLINE立即排查原因可能是数据文件损坏LOGGING风险NOLOGGING操作虽然快但数据恢复时会有问题。重要业务表空间绝对应该是LOGGING4. 空间预警与扩容方案4.1 使用率监控策略建议分三级监控警告级85%发送邮件告警严重级90%发送短信告警紧急级95%自动调用扩容脚本这是我在某电商平台实施的策略配合下面的自动扩容方案将空间故障率降为零。4.2 智能扩容方案当检测到空间不足时可以自动执行以下扩容逻辑需根据实际情况调整-- 查找表空间对应的数据文件 SELECT FILE_NAME FROM DBA_DATA_FILES WHERE TABLESPACE_NAME TBS_NAME; -- 自动扩容脚本示例 ALTER DATABASE DATAFILE /path/to/datafile.dbf RESIZE 10G; -- 扩大到10GB -- 或者添加新数据文件 ALTER TABLESPACE TBS_NAME ADD DATAFILE /path/to/new_file.dbf SIZE 5G AUTOEXTEND ON NEXT 1G MAXSIZE 20G;重要提示生产环境执行前务必检查磁盘空间我有次扩容时没检查结果把文件系统撑爆了...5. 巡检脚本的增强实践5.1 历史趋势分析原始脚本可以增强为定期收集数据到历史表用于分析空间增长趋势CREATE TABLE TBS_USAGE_HISTORY AS SELECT SYSDATE AS COLLECT_TIME, B.TABLESPACE_NAME, ROUND(D.SUMBYTES / 1024 / 1024 / 1024, 2) TOTAL_GB, ROUND(DECODE(F.SUMBYTES, NULL, 0, F.SUMBYTES) / 1024 / 1024 / 1024, 2) FREE_GB FROM (SELECT TABLESPACE_NAME, SUM(BYTES) SUMBYTES FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F, (SELECT TABLESPACE_NAME, SUM(BYTES) SUMBYTES FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) D WHERE F.TABLESPACE_NAME() D.TABLESPACE_NAME;5.2 自动预警脚本结合Shell脚本实现自动监控crontab定时执行#!/bin/bash # 获取使用率超过85%的表空间 result$(sqlplus -s /nolog EOF connect / as sysdba set heading off set feedback off SELECT TABLESPACE_NAME || : || ROUND((D.SUMBYTES - NVL(F.SUMBYTES,0)) * 100 / D.SUMBYTES, 2) FROM (SELECT TABLESPACE_NAME, SUM(BYTES) SUMBYTES FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F, (SELECT TABLESPACE_NAME, SUM(BYTES) SUMBYTES FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) D WHERE F.TABLESPACE_NAME() D.TABLESPACE_NAME AND (D.SUMBYTES - NVL(F.SUMBYTES,0)) * 100 / D.SUMBYTES 85; EOF ) # 发送告警 if [ -n $result ]; then echo 以下表空间使用率超过85% alert.txt echo $result alert.txt mail -s 表空间告警 dba-teamcompany.com alert.txt fi6. 常见问题排查手册6.1 查询无结果的可能原因如果脚本执行后没有返回任何记录检查连接用户是否有DBA权限需要SELECT_CATALOG_ROLE是否在PDB中执行而忘了切换容器ALTER SESSION SET CONTAINERCDB$ROOTDBA_TABLESPACES视图是否被误删极罕见6.2 数据不准确的解决方案当发现查询结果与实际不符时首先执行ANALYZE TABLESPACE ... VALIDATE STRUCTURE检查元数据检查是否有未提交的事务占用临时空间确认是否查询了正确的PDB多租户环境下常见问题6.3 性能优化建议当表空间数量很多超过100个时在子查询中增加WHERE条件过滤系统表空间考虑使用物化视图预先计算在非业务高峰时段执行查询7. 实战经验分享最后分享几个血泪教训临时表空间陷阱某次巡检忽略了临时表空间结果凌晨跑批时临时表空间爆满。现在我的脚本一定会包含以下检查SELECT TABLESPACE_NAME, USED_PERCENT FROM V$TEMP_SPACE_HEADER WHERE USED_PERCENT 80;ASM存储的特殊处理如果使用ASM存储数据文件路径显示为DATA这样的形式。扩容时需要先通过asmcmd检查磁盘组剩余空间。自动扩展的副作用虽然AUTOEXTEND ON很方便但曾遇到过某个日志文件失控增长到500GB的情况。建议设置合理的MAXSIZE并监控。这个表空间检查脚本我已经用了8年期间迭代了17个版本。建议DBA同行们将其纳入日常巡检流程并保存历史数据做趋势分析。对于重要的生产系统最好实现自动化监控和扩容毕竟预防总是比救火来得轻松。

相关推荐

pywebcopy网页镜像:单页与整站抓取、配置及完整性验收
pywebcopy网页镜像:单页与整站抓取、配置及完整性验收

简介:PyWebCopy 是一款用 Python 编写的网页与整站镜像归档库,面向需要保存网页资产、开展爬虫归档或构建离线阅读材料的开发者,也适合作为学习网页解析与资源重映射的实践项目。压缩包共32个文件,以19个py源码和8个md文档为主&am… · 2026/11/5 6:20:23

IPD 7个TR评审表全解析:从概念到量产的决策闸门与实操指南
IPD 7个TR评审表全解析:从概念到量产的决策闸门与实操指南

项目评审这件事,做过的人都知道,最怕的不是评审本身,而是评审前那种"到底该看什么、看到什么程度算过关"的模糊感。很多团队把评审开成汇报会,PPT翻完一圈,大家点头说"挺好",散会之后问… · 2026/11/5 6:20:23

数据湖架构解析与实战优化指南
数据湖架构解析与实战优化指南

1. 数据湖:大数据时代的存储革命想象一下你正在管理一座超大型图书馆。传统数据仓库就像按严格分类法管理的图书室——每本书必须装订成册、贴上标准标签才能上架。而数据湖则像允许任何形态知识入库的超级图书馆:你可以随手扔进一叠手稿、一盒磁带、甚至… · 2026/11/5 6:20:23

【后端开发】FastAPI基础
【后端开发】FastAPI基础

2026.6.21 一、代码 1.导包 from fastapi import FastAPI # from ... import ...手动配置的方法: 终端输入:(确保终端提示符前有 (.venv) 标记) pip install fastapi uvicorn2.创建实例 FastAPI实例app app FastAPI()3.定义接口 … · 2026/11/5 8:50:37

快速上手playwight
快速上手playwight

在自动化测试和网页爬虫的领域,Selenium 曾是无可争议的霸主。然而,随着现代 Web 应用越来越复杂(大量使用 React、Vue、单页应用等),传统的测试工具开始显得有些力不从心。今天,我们要聊的是由微软开源的现… · 2026/11/5 8:48:36

LoRA 训练数据集怎么准备才好用?Fizgig AI 标注、人脸裁剪与外观一致性过滤器 7 大技巧
LoRA 训练数据集怎么准备才好用?Fizgig AI 标注、人脸裁剪与外观一致性过滤器 7 大技巧

【免费下载链接】Fizgig Fizgig — LoRA & Fine-tune Studio for Klein 9B, Krea 2, MiniMax H3, Qwen Image 2.1, Anima & Z-Image Turbo and Ace-Step XL: train, fine-tune, profile, repair and extract LoRAs & LoKR for Image, Video & Music Models 项目… · 2026/11/5 8:47:35

如何用一个仓库补齐你的 Android 技术栈?android-tech-frontier 译文库完全指南
如何用一个仓库补齐你的 Android 技术栈?android-tech-frontier 译文库完全指南

如何用一个仓库补齐你的 Android 技术栈?android-tech-frontier 译文库完全指南 【免费下载链接】android-tech-frontier 【停止维护】一个定期翻译国外Android优质的技术、开源库、软件架构设计、测试等文章的开源项目 项目地址: https://gitcode.com/gh_mirrors… · 2026/11/5 8:46:35

【Java基础知识】方法与注释
【Java基础知识】方法与注释

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 8:43:30

【Java基础知识】进制转换
【Java基础知识】进制转换

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 8:43:30

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

多智能体协作系统架构设计与实践优化
多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39

大模型系统性入门实战指南:从原理到部署微调的全链路路线
大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39

鸿蒙文件系统沙箱机制解析与开发实践
鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码