简介

oracle 清理SYSAUX表空间

处理思路

1、查询表空间使用情况1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17SELECT UPPER(F.TABLESPACE_NAME) "表空间名",

D.TOT_GROOTTE_MB "表空间大小(M)",

D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",

TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') "使用比",

F.TOTAL_BYTES "空闲空间(M)",

F.MAX_BYTES "最大块(M)"

FROM (SELECT TABLESPACE_NAME,

ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,

ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES

FROM SYS.DBA_FREE_SPACE

GROUP BY TABLESPACE_NAME) F,

(SELECT DD.TABLESPACE_NAME,

ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB

FROM SYS.DBA_DATA_FILES DD

GROUP BY DD.TABLESPACE_NAME) D

WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME

ORDER BY 4 DESC;

2、查看一下表空间是否开启自动扩展功能1

2

3

4SELECT T.TABLESPACE_NAME,D.FILE_NAME,D.AUTOEXTENSIBLE,D.BYTES,D.MAXBYTES,D.STATUS

FROM DBA_TABLESPACES T,DBA_DATA_FILES D

WHERE T.TABLESPACE_NAME =D.TABLESPACE_NAME

ORDER BY TABLESPACE_NAME,FILE_NAME;

3、查询下SYSTEM和SYSAUX表空间的使用率1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38SELECT * FROM (

SELECT D.TABLESPACE_NAME,

SPACE || 'M' "SUM_SPACE(M)",

BLOCKS "SUM_BLOCKS",

SPACE - NVL (FREE_SPACE, 0) || 'M' "USED_SPACE(M)",

ROUND ( (1 - NVL (FREE_SPACE, 0) / SPACE) * 100, 2) || '%'

"USED_RATE(%)",

FREE_SPACE || 'M' "FREE_SPACE(M)"

FROM ( SELECT TABLESPACE_NAME,

ROUND (SUM (BYTES) / (1024 * 1024), 2) SPACE,

SUM (BLOCKS) BLOCKS

FROM DBA_DATA_FILES

GROUP BY TABLESPACE_NAME) D,

( SELECT TABLESPACE_NAME,

ROUND (SUM (BYTES) / (1024 * 1024), 2) FREE_SPACE

FROM DBA_FREE_SPACE

GROUP BY TABLESPACE_NAME) F

WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)

UNION ALL

SELECT D.TABLESPACE_NAME,

SPACE || 'M' "SUM_SPACE(M)",

BLOCKS SUM_BLOCKS,

USED_SPACE || 'M' "USED_SPACE(M)",

ROUND (NVL (USED_SPACE, 0) / SPACE * 100, 2) || '%' "USED_RATE(%)",

NVL (FREE_SPACE, 0) || 'M' "FREE_SPACE(M)"

FROM ( SELECT TABLESPACE_NAME,

ROUND (SUM (BYTES) / (1024 * 1024), 2) SPACE,

SUM (BLOCKS) BLOCKS

FROM DBA_TEMP_FILES

GROUP BY TABLESPACE_NAME) D,

( SELECT TABLESPACE_NAME,

ROUND (SUM (BYTES_USED) / (1024 * 1024), 2) USED_SPACE,

ROUND (SUM (BYTES_FREE) / (1024 * 1024), 2) FREE_SPACE

FROM V$TEMP_SPACE_HEADER

GROUP BY TABLESPACE_NAME) F

WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)

ORDER BY 1)

WHERE TABLESPACE_NAME IN ('SYSAUX','SYSTEM');

4、查看下使用SYSTEM和SYSAUX表空间的比较大的表有哪些1

2

3

4select * from (

select segment_name,sum(bytes)/1024/1024 total_mb,tablespace_name from dba_segments where tablespace_name in

('SYSTEM','SYSAUX') group by segment_name,tablespace_name order by 2 desc)

where rownum <=20;

5、可见,大表大部分都是AUD $和$ WRH开头的AWR基表,AUD $使用SYSTEM表空间,AWR的基表使用SYSAUX表空间,下面再查看下SYSAUX表空间的使用情况,可以通过V $ SYSAUX_OCCUPANTS视图查询到。1

2

3

4

5

6SELECT occupant_name "Item",

space_usage_kbytes / 1048576 "Space Used (GB)",

schema_name "Schema",

move_procedure "Move Procedure"

FROM v$sysaux_occupants

ORDER BY 1 ;

6、首先清理审计的数据,如果要保留部分AUD $里面记录的审计数据,可以把想要的数据插入到一张临时表,然后直接截断这张表就可以了,截断操作会直接回收AUD $占用的空间。

但由于是正式库,怕truncate操作会带来其他的一些问题,不直接做truncate,而是执行以下命令:1

2

3

4

5

6truncate table sys.aud$ reuse storage;

alter table sys.aud$ deallocate unused keep 8640m;

alter table sys.aud$ deallocate unused keep 7000m;

alter table sys.aud$ deallocate unused keep 6000m;

...

alter table sys.aud$ deallocate unused keep 10m;

truncate过程1-2分钟之内结束,最后sys.aud$变成10M。

解释:思路就是在前面执行truncate的时候,降低了HWM但没释放空间。 alter table sys.aud$ deallocate unused keep 6000m; 这个命令,就是一点一点释放HWM之上的自由空间,最后保留10m空间,因为我们这个表是要继续使用,而不是要删除。

7、清理WRH$表 生成删除段内容语句1

2

3

4

5

6select distinct 'truncate table '||segment_name||';',s.bytes/1024/1024

from dba_segments s

where s.segment_name like 'WRH$%'

and segment_type in ('TABLE PARTITION', 'TABLE')

and s.bytes/1024/1024>100

order by s.bytes/1024/1024/1024 desc;

8、删除表1

2

3

4

5

6

7

8

9

10truncate table WRH$_ACTIVE_SESSION_HISTORY;

truncate table WRH$_EVENT_HISTOGRAM;

truncate table WRH$_LATCH;

truncate table WRH$_SQLSTAT;

truncate table WRH$_SYSSTAT;

truncate table WRH$_PARAMETER;

truncate table WRH$_SQL_PLAN;

truncate table WRH$_LATCH_MISSES_SUMMARY;

truncate table WRH$_SEG_STAT;

truncate table WRH$_SYSTEM_EVENT;

9、验证表空间1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17SELECT UPPER(F.TABLESPACE_NAME) "表空间名",

D.TOT_GROOTTE_MB "表空间大小(M)",

D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",

TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') "使用比",

F.TOTAL_BYTES "空闲空间(M)",

F.MAX_BYTES "最大块(M)"

FROM (SELECT TABLESPACE_NAME,

ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,

ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES

FROM SYS.DBA_FREE_SPACE

GROUP BY TABLESPACE_NAME) F,

(SELECT DD.TABLESPACE_NAME,

ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB

FROM SYS.DBA_DATA_FILES DD

GROUP BY DD.TABLESPACE_NAME) D

WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME

ORDER BY 4 DESC;

以上,

End

Oracle 扩展sysaux,oracle 清理SYSAUX表空间相关推荐

  1. oracle 增加ora容量_oracle数据库报错:ORA-01653无法在表空间扩展解决办法 ,增加表空间或表空间增加数据文件...

    当Oracle数据库的数据量越来越大,表空间的大小不够用的时候,会报错:"ORA-01653 ", 即表空间满了,无法在表空间扩展解决办法 ,增加表空间或表空间增加数据文件.在这里 ...

  2. oracle还原system备份包,SYSTEM表空间管理及备份恢复

    --============================= -- SYSTEM 表空间管理及备份恢复 --============================= SYSTEM表空间是Oracl ...

  3. Oracle数据库迁移:异构传输表空间TTS HP-UX迁移至Redhat Linux 7.7

    墨墨导读:本文来自墨天轮用户"你好我是李白"的投稿,记录一个Oracle数据库迁移过程 :异构传输表空间TTS HP-UX迁移至Redhat Linux 7.7.墨天轮主页:htt ...

  4. Oracle之同义词,DBLINK,表空间

    昨天讲了物化视图了,今天讲一下同义词的这个概念 就是synonym,反正这个我叫习惯了,这个同义词了解过吗,这个可能了解的不多吧,MYSQL里面有同义词的概念吗,给我点反馈,你用MYSQL里面有同义词 ...

  5. oracle plsql创建表空间,Oracle在PLSQL Developer上创建表空间和用户脚本 - 龙卷风的日志 - 网易博客...

    Oracle在PLSQL Developer上建立表空间脚本 创建表空间 一. create tablespace MOF_TEMP //name datafile 'D:\oracle\produc ...

  6. Oracle入门(七)之表空间

    表空间 表空间是数据库的逻辑划分,一个表空间只能属于一个数据库.所有的数据库对象都存放在指定的表空间中.但主要存放的是表, 所以称作表空间. Oracle数据库中至少存在一个表空间,即SYSTEM的表 ...

  7. 玩转oracle 11g(5):表空间的作用

    表空间是oracle内部定义的一个概念,是为了统一oracle物理和逻辑 上的结构而专门建立的,从物理上来说,一个表空间是由具体的一个或多个磁盘上数 据文件构成的(至少1对1,可以1对多),从逻辑上来 ...

  8. linux oracle 删除为空的dbf,Linux上Oracle误删除一个没有用的dbf表空间文件

    在Linux下面安装好Oracle只有,Linux 下面就会有一个Oracle用户,Linux上Oracle误删除一个没有用的dbf表空间文件,导致数据库连接 在Linux下面安装好Oracle只有, ...

  9. oracle 11g的audit导致system表空间快速增长的问题

    oracle 11g的audit导致system表空间快速增长的问题         分类:             oracle              2012-03-23 16:20     ...

  10. oracle有几种类型表空间,oracle 数据创建时如何指定表空间类型

    oracle建表时指定了表空间为何没起作用? oracle 12c /windows ,实验过程如下: 1.建第一个表空间data_tbs_01,数可以直接在创建语句后面追加"tablesp ...

最新文章

  1. Element-ui表格选中回显
  2. 学习Web前端需要避免哪些错误
  3. 计算机公式column,函数公式的左膀右臂:ROW、COLUMN函数知多少
  4. (视频) 《快速创建网站》 3.2 WordPress多站点及Azure在线代码编辑器 - 扔掉你的ftp工具吧,修改代码全部云端搞定...
  5. ARM的UART实验
  6. 小贷公司的风险成因及应对策略——风险篇
  7. vue 设置背景图地址_vue-生成自动铺满的背景图
  8. 涂鸦智能传感合作伙伴大会圆满落幕,打造安防传感新生态
  9. 最新最全git使用大全
  10. Excel作统计图表
  11. conda命令:管理包、管理环境
  12. TestNG单元测试框架详解
  13. 2019.9.6HTML5学习心得02
  14. Vue.js实战——内置指令(二)
  15. java毕业生设计学习类视频网计算机源码+系统+mysql+调试部署+lw
  16. RS422的接终端电阻设计
  17. TCPIP详解Protocol 读书笔记(三) IP协议讲解
  18. 飞凌 修改ip地址 linux,[新手指导]imx6开发板 IP及MAC地址修改
  19. Image加载二进制数据图片
  20. 分布式文件系统 -- Minio

热门文章

  1. 07.移动先行之谁主沉浮----控件之轮流轰炸——布局类控件
  2. T4生成实体,单张表和多张表
  3. HTTP Error: 413 Request Entity Too Large的解决
  4. 解决Redis修改bind域名绑定后出现Could not connect to Redis
  5. 关于K-Means算法
  6. Exchange 2003 升级 2010地址列表升级
  7. 使用Profiler Blocked Process Report Alert 监控数据库Blocking
  8. asp.net页面的验证码代码
  9. (47)LINUX应用编程和网络编程之二Linux文件属性
  10. 抛物线、导弹线轨迹计算