原文链接:http://blog.csdn.net/lwei_998/article/details/7394638
SYSTEM表空间使用率达到了85%,查出是用来记录审计记录的aud$表占用了很大的空间。
备份后truncate掉AUD$,问题临时解决。记得oracle11.2可以把aud$迁移到普通的表空
间。于是试了一把,果然ok。
1.检查SYSTEM表空间使用情况
SQL*Plus: Release 11.2.0.3.0 Production on Mon Mar 26 11:21:18 2012
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Data Mining and Real Application Testing options
SQL> select
2 b.tablespace_name "表空间",
3 b.bytes/1024/1024 "大小M",
4 (b.bytes-sum(nvl(a.bytes,0)))/1024/1024 "已使用M",
5 substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) "利用率"
6 from dba_free_space a,dba_data_files b
7 where a.file_id=b.file_id
8 and b.tablespace_name='SYSTEM'
9 group by b.tablespace_name,b.file_name,b.bytes
10 order by b.tablespace_name;
表空间 大小M 已使用M 利用率
------------------- ---------- ----------- ----------
SYSTEM 4096 3485.9375 85.10
2.从dba_segments中找出占用SYSTEM表空间中排名前10位的大对象。
SQL> col segment_name for a15;
SQL> SELECT *
2 FROM (SELECT SEGMENT_NAME, SUM(BYTES) / 1024 / 1024 MB
3 FROM DBA_SEGMENTS
4 WHERE TABLESPACE_NAME = 'SYSTEM'
5 GROUP BY SEGMENT_NAME
6 ORDER BY 2 DESC)
7 WHERE ROWNUM < 10;
查出aud$占用的很大的空间。
3.准备truncate aud$表
SQL> show parameter AUDIT_TRAIL
NAME TYPE VALUE
--------------- ----------- ---------
audit_trail string DB
<span style="color: rgb(255, 0, 0);">-- truncate aud$ 表需要有相关的权限。</span>
SQL> truncate table aud$;
Table truncated
4.truncate后检查system表空间使用情况,发现使用率由85%降低到29.44%
SQL> ANALYZE TABLE aud$ COMPUTE STATISTICS;
Table analyzed.
SQL> select
2 b.tablespace_name "表空间",
3 b.bytes/1024/1024 "大小M",
4 (b.bytes-sum(nvl(a.bytes,0)))/1024/1024 "已使用M",
5 substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) "利用率"
6 from dba_free_space a,dba_data_files b
7 where a.file_id=b.file_id
8 and b.tablespace_name='SYSTEM'
9 group by b.tablespace_name,b.file_name,b.bytes
10 order by b.tablespace_name;
表空间 大小M 已使用M 利用率
---------------- ---------- ---------- ----------
SYSTEM 4096 1206 29.44
5.为了避免system表空间爆满对数据的影响,把aud$从system表空间迁移到普通表空间AUD_FILE。
SQL> BEGIN
2 DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION(
3 AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
4 AUDIT_TRAIL_LOCATION_VALUE => 'AUD_FILE');
5 END;
6 /
SQL> col owner for a5;
SQL> SELECT OWNER, TABLE_NAME, TABLESPACE_NAME
2 FROM DBA_TABLES
3 WHERE TABLE_NAME = 'AUD$'
4 AND OWNER = 'SYS';
OWNER TABLE_NAME TABLESPACE_NAME
----- ------------------------------ ------------------------------
SYS AUD$ TD_FILB
分享到:
相关推荐
### Oracle 审计表 Sys.Aud$ 授权与管理 #### 概述 在Oracle数据库管理系统中,审计功能是一项重要的安全特性,它记录了数据库的所有访问活动,包括但不限于登录、查询、更新等操作。这些审计记录通常存储在系统表...
### Oracle11g新特性及常用维护工具详解 #### 第1章 ORACLE11g体系结构介绍 **1.1 ORACLE11g的后台进程介绍** 在Oracle 11g中,为了确保数据库能够高效稳定地运行,设计了一系列后台进程来支持其核心功能。这些...
### Oracle 11g 新特性及常用维护工具详解 #### 第1章 ORACLE11g 体系结构介绍 **1.1 ORACLE11g 的后台进程介绍** Oracle 11g 后台进程是数据库运行的核心组成部分之一,主要包括以下几种关键进程: - **SMON...
对于Oracle10g及以上版本,文件中提到了增强的审计功能,比如使用LogMiner工具进行审计日志的分析,以及实现审计数据的XML格式化输出。 此外,文件中还提及了审计文件存放的目录,这是通过audit_file_dest参数来...
Oracle 11g数据库在运行过程中会产生...总之,Oracle 11g数据库历史日志的清理是一项维护数据库健康运行的重要任务。通过理解不同类型的日志文件及其用途,我们可以有针对性地进行清理,以保持数据库系统的高效和稳定。
在Oracle Database 10g之前的版本中,Connect角色还包含了更多权限,如`ALTER SESSION`、`CREATE CLUSTER`、`CREATE DATABASE LINK`、`CREATE SEQUENCE`、`CREATE SESSION`、`CREATE SYNONYM`、`CREATE TABLE`和`...
默认值`none`表示不进行审计,而在11G及更高版本中,默认值为`db`,意味着审计信息将被存储在数据库的审计相关表中。`DB_EXTENDED`选项增加了更详细的审计信息,包括具体的SQL语句。而`OS`选项则将审计跟踪记录在...
从给定的文件信息来看,文章主要探讨了Oracle数据库中的审计功能,特别是在不同版本的Oracle数据库(9i、10g、11g)中审计参数的设置与表现。审计在IT行业,尤其是数据库管理中扮演着至关重要的角色,它能够帮助系统...