aud$的数据可以truncate数据恢复吗

Posts - 295,
Articles - 22,
Comments - 115
世界很大,每个人总有相同的地方!你喜欢的电影我也喜欢,我喜欢的作品你也喜欢!
就是这样,其实生活并不孤单。
13:36 by QDuck, ... 阅读,
1)Only appropriate privileged user can do delete operation on SYS.AUD$ table. The user must have either of the following privileges.-SYS user.-DELETE ANY TABLE system privilege. (If O7_DICTIONARY_ACCESSIBILITY=TRUE)-A user to whom SYS has granted the object privilege DELETE on SYS.AUD$ table.2)Before deleting any rows you may want to archive the table. You can achive this by creating a table from SYS.AUD$ and export that. Don't export SYS.AUD$ directly.SQL&CREATE TABLE AUDIT_RECORD TABLESPACE users as select * from SYS.AUD$;Now export the table as,SQL& host exp tables=AUDIT_RECORD file=audit_record.dmp3)To delete all records from audit trail table SYS.AUD$ issue,SQL&DELETE FROM SYS.AUD$;To delete all records of particular audited table from the audit trail issue,SQL&DELETE FROM sys.aud$ WHERE obj$name='&table_nmae';But deleting in this way will not reduce size on the system tablespace or aud$ table. In order to reduce size follow section 4.4)Truncate audit table to reduce size.SQL&CONN / as sysdbaSQL&TRUNCATE TABLE SYS.AUD$
oracle表空间操作详解作者:&&&来源:&&&&更新日期:&
建立表空间
CREATE&TABLESPACE&data01DATAFILE&'/oracle/oradata/db/DATA01.dbf'&SIZE&500MUNIFORM&SIZE&128k;&&&&&&&&&&&&&#指定区尺寸为128k,如不指定,区尺寸默认为64k删除表空间
DROP&TABLESPACE&data01&INCLUDING&CONTENTS&AND&DATAFILES;修改表空间大小&&&&alter database datafile '/path/NADDate05.dbf' resize 100M&&&&&&&&&&&&&&&&&移动表至另一表空间&&&&alter table move tablespace room1;
&一、建立表空间CREATE&TABLESPACE&data01DATAFILE&'/oracle/oradata/db/DATA01.dbf'&SIZE&500MUNIFORM&SIZE&128k;&&&&&&&&&&&&&#指定区尺寸为128k,如不指定,区尺寸默认为64k二、建立UNDO表空间CREATE&UNDO&TABLESPACE&UNDOTBS02DATAFILE&'/oracle/oradata/db/UNDOTBS02.dbf'&SIZE&50M#注意:在OPEN状态下某些时刻只能用一个UNDO表空间,如果要用新建的表空间,必须切换到该表空间:ALTER&SYSTEM&SET&undo_tablespace=UNDOTBS02;三、建立临时表空间CREATE&TEMPORARY&TABLESPACE&temp_dataTEMPFILE&'/oracle/oradata/db/TEMP_DATA.dbf'&SIZE&50M四、改变表空间状态<span style="color: #.使表空间脱机ALTER&TABLESPACE&game&OFFLINE;如果是意外删除了数据文件,则必须带有RECOVER选项ALTER&TABLESPACE&game&OFFLINE&FOR&RECOVER;<span style="color: #.使表空间联机
ALTER&TABLESPACE&game&ONLINE;<span style="color: #.使数据文件脱机ALTER&DATABASE&DATAFILE&3&OFFLINE;<span style="color: #.使数据文件联机&ALTER&DATABASE&DATAFILE&3&ONLINE;<span style="color: #.使表空间只读ALTER&TABLESPACE&game&READ&ONLY;<span style="color: #.使表空间可读写ALTER&TABLESPACE&game&READ&WRITE;五、删除表空间DROP&TABLESPACE&data01&INCLUDING&CONTENTS&AND&DATAFILES;六、扩展表空间首先查看表空间的名字和所属文件select&tablespace_name,&file_id,&file_name,round(bytes/(),0)&total_spacefrom&dba_data_filesorder&by&tablespace_<span style="color: #.增加数据文件ALTER&TABLESPACE&gameADD&DATAFILE&'/oracle/oradata/db/GAME02.dbf'&SIZE&1000M;
<span style="color: #.手动增加数据文件尺寸ALTER&DATABASE&DATAFILE&'/oracle/oradata/db/GAME.dbf'RESIZE&4000M;
<span style="color: #.设定数据文件自动扩展ALTER&DATABASE&DATAFILE&'/oracle/oradata/db/GAME.dbfAUTOEXTEND&ON&NEXT&100MMAXSIZE&10000M;
设定后查看表空间信息SELECT&A.TABLESPACE_NAME,A.BYTES&TOTAL,B.BYTES&USED,&C.BYTES&FREE,(B.BYTES*100)/A.BYTES&"%&USED",(C.BYTES*100)/A.BYTES&"%&FREE"FROM&SYS.SM$TS_AVAIL&A,SYS.SM$TS_USED&B,SYS.SM$TS_FREE&CWHERE&A.TABLESPACE_NAME=B.TABLESPACE_NAME&AND&A.TABLESPACE_NAME=C.TABLESPACE_NAME;&Oracle审计表AUD$处理方法_oracle数据库_ThinkSAAS
Oracle审计表AUD$处理方法
Oracle审计表AUD$处理方法
内容来源: 网络
Oracle审计表AUD$处理方法
Oracle版本:11.2.0,其他版本要测试DBMS_AUDIT_MGMT能否成功
1. 查询表,然后truncate
select count(*) from aud$;
truncate table aud$;
select count(*) from aud$;
2.创建表空间
create tablespace adttbs
datafile &/oracle/OMT/admin/oradata/aud01.dbf&
SELECT table_name, tablespace_name
FROM dba_tables
WHERE table_name IN (&AUD$&, &FGA_LOG$&)
ORDER BY table_
3.aud$表移动到新tablespace
DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION(audit_trail_type =& DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD,
audit_trail_location_value =& &ADTTBS&);
4.sys用户procedure:
create or replace procedure
sp_trunc_audit_log is
execute immediate
&truncate table aud$&;
grant execute on sp_trunc_audit_
5.system用户procedure:
create or replace procedure
sp_job_trunc_audit_log is
sys.sp_trunc_audit_
6.自动调度job
DBMS_SCHEDULER.CREATE_JOB
=& &day_trunc_audit_log&,
=& &STORED_PROCEDURE&,
job_action =& &SP_JOB_TRUNC_AUDIT_LOG&,
start_date =& sysdate,
repeat_interval =& &FREQ=DAILY; BYHOUR=04; BYMINUTE=05;INTERVAL=1&,
=& &every day truncate table audit log&
PHP开发框架
开发工具/编程工具
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
让ThinkSAAS更好,把建议拿来。
开发客服微信Oracle审计表AUD$数据过大问题_数据库技术_Linux公社-Linux系统门户网站
你好,游客
Oracle审计表AUD$数据过大问题
来源:Linux社区&
作者:Linux
1)Only appropriate privileged user can do delete operation on SYS.AUD$ table. The user must have either of the following privileges.-SYS user.-DELETE ANY TABLE system privilege. (If O7_DICTIONARY_ACCESSIBILITY=TRUE)-A user to whom SYS has granted the object privilege DELETE on SYS.AUD$ table.2)Before deleting any rows you may want to archive the table. You can achive this by creating a table from SYS.AUD$ and export that. Don't export SYS.AUD$ directly.SQL&CREATE TABLE AUDIT_RECORD TABLESPACE users as select * from SYS.AUD$;Now export the table as,SQL& host exp tables=AUDIT_RECORD file=audit_record.dmp3)To delete all records from audit trail table SYS.AUD$ issue,SQL&DELETE FROM SYS.AUD$;To delete all records of particular audited table from the audit trail issue,SQL&DELETE FROM sys.aud$ WHERE obj$name='&table_nmae';But deleting in this way will not reduce size on the system tablespace or aud$ table. In order to reduce size follow section 4.4)Truncate audit table to reduce size.SQL&CONN / as sysdbaSQL&TRUNCATE TABLE SYS.AUD$
相关资讯 & & &
& (10/10/:40)
& (11/14/:10)
& (03月01日)
& (02/02/:26)
& (10/29/:24)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款
匿名 发表于 good!SYS.AUD$无法扩容导致无法登录的问题
昨天同事说有个测试库无法登录了,用PLSQL Developer登陆后提示:
ORA-00604: error occurred at recursive SQL level 1
ORA-01653: unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM
ORA-02002: error while writing to audit trail
ORA-00604: error occurred at recursive SQL level 1
ORA-01653: unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM
貌&#20284;以前听@dbsnake说过这问题。
首先SYS.AUD$是数据字典表,存储于SYSTEM表空间,存储的是审计信息,11g默认是开启审计
SQL& show parameter audit_trail
------------------------------------ ----------- ------------------------------
audit_trail
上面的提示明显是指SYSTEM表空间的SYS.AUD$表无法继续扩容了,可能是磁盘空间不足,或SYSTEM表空间分配的数据文件空间不足。针对上面这个问题,有两种方法:
1、扩容SYSTEM表空间。
2、降低SYS.AUD$的容量。
之所以有第二种方法,从MOS:73408.1这篇文章可以得到结论:
SYS.AUD$ is the only SYS object that should ever be directly modified
SYS.AUD$是唯一一个可以直接修改的SYS对象。
那如何降低SYS.AUD$的容量呢?
1、最简单的方法就是truncate table SYS.AUD$,最直接,前提是不需要保留审计信息。
2、MOS中也介绍一种方法:DELETE FROM sys.aud$ WHERE obj$name='&object_name&';,删除SYS.AUD$中指定对象的审计信息。这样带来的问题很明显,就是不会降低高水位线。
3、也可以备份审计表,然后再降低容量。
CREATE TABLE backup_aud$ AS SELECT * from sys.aud$;
truncate table aud$;
exp file=aud_backup.dmp tables=backup_aud$
drop table backup_aud$;
如果仅需要降低SYS.AUD$占用的空间,此时可以再次执行insert into aud$ select * from backup_aud$;将数据导入进来。
4、要删除SYS.AUD$表需要相应的权限:要么是SYS用户,要么具有DELETE ANY TABLE权限,或者SYS用户将SYS.AUD$表的DELETE权限赋予这个用户。具有delete_catalog_role角色亦可以,但11.2.0.2之前的版本可能有bug导致这个角色没有SYS.AUD$的删除权限,需要人工添加,具体也可参见9697811这个bug描述。
5、MOS有介绍:The DELETE ANY TABLE privilege only applies to SYS objects if O7_DICTIONARY_ACCESSIBILITY=TRUE,表示如果O7_DICTIONARY_ACCESSIBILITY参数是TRUE,则只有SYS用户可以具有DELETE ANY TABLE权限。查了一些资料,也说O7_DICTIONARY_ACCESSIBILITY这个参数的作用就是保护数据字典基表,FALSE要求SYS不能以普通用户角色登录,必须用sysdba角色登录,如果TRUE则普通用户也可以访问数据字典基表,就会引起安全问题了。

我要回帖

更多关于 清空表数据 truncate 的文章

 

随机推荐