Oracle表空间扩容
业务场景:
记录一下,2024年7月24,发生了一场不大不小的生产事故,导致一个地级市整个城市的某个业务系统停服一上午。也吸取一下深刻的教训。简单来讲,导致该事故最直接的原因就是这个业务系统现场人员为按时巡检导致,该系统数据库表空间满了没人知道,直到客户反馈业务传输有问题了,才开始排查,排查发现录入的信息数据库内无法查找,抽取日志查看发现表空间无法自动扩容。
所以运维工作中,日常巡检的必要性还是毋庸置疑的。
扩容用有dba权限的账号,通过plsql客户端直接操作的。是使用增加数据文件的方式进行扩容。建议表空间超过90%就直接扩容。
–查询表空间使用情况
SELECT a.tablespace_name "表空间名", round(total / (1024 * 1024 * 1024), 2) "表空间大小(G)", round(free / (1024 * 1024 * 1024), 2) "表空间剩余大小(G)", round((total - free) / (1024 * 1024 * 1024), 2) "表空间使用大小(G)", round((total - free) / total, 4) * 100 "使用率 %" FROM (SELECT tablespace_name, SUM(bytes) free FROM dba_free_space GROUP BY tablespace_name) a, (SELECT tablespace_name, SUM(bytes) total FROM dba_data_files GROUP BY tablespace_name) b WHERE a.tablespace_name = b.tablespace_name
–临时表空间使用率
select c.tablespace_name "临时表空间名", round(c.bytes / 1024 / 1024 / 1024, 2) "临时表空间大小(G)", round((c.b