千家信息网

如何解决System表空间不足的报警问题

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,小编给大家分享一下如何解决System表空间不足的报警问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体代码如下所示:
千家信息网最后更新 2025年01月20日如何解决System表空间不足的报警问题

小编给大家分享一下如何解决System表空间不足的报警问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

具体代码如下所示:

--SYSTEM表空间不足的报警 登录之后,查询,发现是sys.aud$占的地方太多。 SQL> select owner, segment_name, segment_type, sum(bytes)/1024/1024 space_m    from dba_segments    where tablespace_name = 'SYSTEM'  group by owner, segment_name, segment_type having sum(bytes)/1024/1024 >= 20 order by space_m desc ;  4  5  6  7  OWNER  SEGMENT_NAME   SEGMENT_TYPE SPACE_M -------- ------------------------------- ------- SYS   AUD$       TABLE      4480 SYS   IDL_UB1$     TABLE       272 SYS   SOURCE$      TABLE       72 SYS   IDL_UB2$     TABLE       32 SYS   C_OBJ#_INTCOL#  CLUSTER      27 SYS   C_TOID_VERSION#  CLUSTER      24 6 rows selected. SQL> 查看是哪个记得比较多。 col userhost format a30 select userid, userhost, count(1) from sys.aud$  where ntimestamp# >=CAST(to_date('2014-03-01 00:00:00', 'YYYY-MM-DD hh34:mi:ss') AS TIMESTAMP)  group by userid, userhost having count(1) > 500 order by count(1) desc ; 再继续找哪天比较多。 select to_char(ntimestamp#, 'YYYY-MM-DD') audit_date, count(1)  from sys.aud$  where ntimestamp# >=CAST(to_date('2014-03-01 00:00:00', 'YYYY-MM-DD hh34:mi:ss') AS TIMESTAMP)  and userid = 'xxxx' and userhost = 'xxxx' group by to_char(ntimestamp#, 'YYYY-MM-DD')  order by count(1) desc ; select spare1, count(1) from sys.aud$  where ntimestamp# between CAST(to_date('2014-03-10 00:00:00', 'YYYY-MM-DD hh34:mi:ss') AS TIMESTAMP)  and CAST(to_date('2014-03-11 00:00:00', 'YYYY-MM-DD hh34:mi:ss') AS TIMESTAMP) and userid = 'xxxx' and userhost = 'xxxx' group by spare1 ; select action#, count(1) from sys.aud$  where ntimestamp# between CAST(to_date('2014-03-10 00:00:00', 'YYYY-MM-DD hh34:mi:ss') AS TIMESTAMP)  and CAST(to_date('2014-03-11 00:00:00', 'YYYY-MM-DD hh34:mi:ss') AS TIMESTAMP) and userid = 'xxxx' and userhost = 'xxxx' and spare1 = 'xxxx' group by action# order by count(1) desc ; 结果如下:   ACTION#  COUNT(1) ---------- ----------     101   124043     100   124043 SQL> 其实是上次打开的audit一直没有关闭。 关闭: SQL> noaudit session; 清空: truncate table sys.aud$; ------------------------------------------------------------------------ 实战 ------------------------------------------------------------------------ --1,查询表空间占用情况 select dbf.tablespace_name as tablespace_name,      dbf.totalspace as totalspace,      dbf.totalblocks as totalblocks,      dfs.freespace freespace,      dfs.freeblocks freeblocks,      (dfs.freespace / dbf.totalspace) * 100 as freeRate       from (select t.tablespace_name,      sum(t.bytes) / 1024 / 1024 totalspace,      sum(t.blocks) totalblocks      from DBA_DATA_FILES t      group by t.tablespace_name) dbf,      (select tt.tablespace_name,      sum(tt.bytes) / 1024 / 1024 freespace,      sum(tt.blocks) freeblocks      from DBA_FREE_SPACE tt      group by tt.tablespace_name) dfs      where trim(dbf.tablespace_name) = trim(dfs.tablespace_name) --2,查看哪里占的比较多 SYSTEM 为step1中查询 tablespace_name 内容 select owner, segment_name, segment_type, sum(bytes)/1024/1024 space_m    from dba_segments    where tablespace_name = 'SYSTEM'  group by owner, segment_name, segment_type having sum(bytes)/1024/1024 >= 20 order by space_m desc --3,查看是哪个记得比较多 count(1) 越大,说明占得比较多 select userid, userhost, count(1) from sys.aud$  where ntimestamp# >=CAST(to_date('2014-03-01 00:00:00', 'YYYY-MM-DD hh34:mi:ss') AS TIMESTAMP)  group by userid, userhost having count(1) > 500 order by count(1) desc --4,再继续找哪天比较多 userid userhost 为上一步查询内容 select to_char(ntimestamp#, 'YYYY-MM-DD') audit_date, count(1)  from sys.aud$  where ntimestamp# >=CAST(to_date('2015-03-01 00:00:00', 'YYYY-MM-DD hh34:mi:ss') AS TIMESTAMP)  and userid = 'userid' and userhost = 'userhost' group by to_char(ntimestamp#, 'YYYY-MM-DD')  order by count(1) desc ; select spare1, count(1) from sys.aud$  where ntimestamp# between CAST(to_date('2016-03-10 00:00:00', 'YYYY-MM-DD hh34:mi:ss') AS TIMESTAMP)  and CAST(to_date('2016-12-11 00:00:00', 'YYYY-MM-DD hh34:mi:ss') AS TIMESTAMP) and userid = 'userid' and userhost = 'userhost' group by spare1 ; --spare1 为上一步查询内容 select action#, count(1) from sys.aud$  where ntimestamp# between CAST(to_date('2016-03-10 00:00:00', 'YYYY-MM-DD hh34:mi:ss') AS TIMESTAMP)  and CAST(to_date('2016-12-11 00:00:00', 'YYYY-MM-DD hh34:mi:ss') AS TIMESTAMP) and userid = 'userid' and userhost = 'userhost' and spare1 = 'Administrator' group by action# order by count(1) desc --5,关闭seeion noaudit session; --6,清空: truncate table sys.aud$;

以上是"如何解决System表空间不足的报警问题"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

内容 查询 空间 报警 篇文章 问题 上一 不怎么 代码 地方 大部分 实战 情况 更多 查询表 知识 结果 行业 资讯 资讯频道 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 现货期货软件开发 育碧服务器总是连接不上 英雄联盟男爵领域服务器所在城市 微生物资源库软件开发 网络安全学习什么法律法规 串口服务器连接不了工控机 数据库与科蓝软件 sql数据库软件有什么用 东莞市掌行网络技术有限公司 HCML启动器怎么导入服务器 网络安全的社会化评估体系 国际网络安全上海峰会 深圳科技园互联网科技公司 服务器路由器的功能 武威软件开发公司有哪些 服务器架设指南 适合中职教学的网络技术 mui云端数据库 软件开发主要工作业绩总结 无尽的拉格朗日服务器在哪找 原神天梯榜深渊数据库 手机服务器50g内存 学校加强网络安全工作的通知 查一列的前10名数据库 怒江服务器上门回收报价 数据库序列的面试题 网络安全服务 评估报告 网络安全上市辅导 服务器供电接口是什么意思 火柴人破解服务器怎么获得
0