Oracle 表空间不足?用 Shell 脚本实现自动扩容!
大家好,这里是 DBA 学习之路,专注于提升数据库运维效率。
@TOC
前言
最近有客户反馈了一个困扰已久的问题:频繁收到表空间使用率超过 90% 的告警邮件,每次都需要手动添加数据文件来解决。客户询问:Oracle 数据库难道不能自动增加数据文件吗?
很遗憾,Oracle 数据库原生确实不支持自动添加数据文件功能。想要实现自动化扩容,需要 DBA 自行编写 Shell 脚本。
今天就来分享一个我在实际工作中常用的 Oracle 表空间自动扩展脚本。
关注公众号:DBA学习之路,聊天框回复:
tbs_autoext下载脚本。
脚本演示
我在测试环境演示一下这个脚本如何使用。
测试环境准备
首先,在测试环境创建一个 90% 以上使用率的表空间:
1 | -- 创建测试表空间(注意:会删除已存在的同名表空间) |
执行结果示意:

部署并执行自动扩展脚本
1、上传脚本:将 tbs_autoext.sh 脚本上传到服务器指定目录(例如 /home/oracle/tbs_check/)

2、执行脚本:
1 | ./tbs_autoext.sh -t 80 -v |

3、查看执行日志:脚本运行完成后,可通过日志文件查看详细的操作记录

配置定时任务 (crontab)
为了实现完全自动化运维,可以将脚本加入系统定时任务:
1 | crontab -e |
每天 2 点自动运行脚本并且将日志内容发送到邮箱。
写在最后
通过这个自动化脚本,我们可以彻底解决 Oracle 表空间手动扩容的烦恼,大幅减少告警干扰,显著提升 DBA 的工作效率。
生产环境部署建议:
- 务必在测试环境充分验证后再上线
- 根据实际业务需求调整触发扩容的使用率阈值
- 合理设置新增数据文件的大小,避免频繁扩容或单次扩容过大
希望这个脚本能为大家的日常运维工作带来便利!
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 三笠の博客!