【问题标题】:How to delete oracle trace and audit logs from AWS RDS?如何从 AWS RDS 中删除 oracle 跟踪和审计日志?
【发布时间】:2022-04-18 12:33:19
【问题描述】:

我需要在前一天从 AWWS RDS oracle 12c 中删除所有审计和跟踪日志。 但在 RDS 的日志部分,仍然显示相同的计数。

我尝试了这些queries,但没有用。

我的 SQL 命令历史如下:

EXEC rdsadmin.manage_tracefiles.purge_tracefiles('alert_ORCL.log.2021-02-15');
exec rdsadmin.manage_tracefiles.purge_tracefiles(60);
exec rdsadmin.manage_auditfiles.purge_auditfiles(60);
exec rdsadmin.rdsadmin_master_util.drop_archivelog_dir;

SELECT * FROM table(rdsadmin.rds_file_util.listdir('BDUMP')) 

select nvl(sum(BLOCKS * BLOCK_SIZE),0)/1024/1024/1024 GB from V$ARCHIVED_LOG  where DEST_ID=1 and ARCHIVED='YES' and DELETED='NO';
select * from V$ARCHIVED_LOG  where DEST_ID=1 and ARCHIVED='YES' and DELETED='NO';

set serveroutput on
exec rdsadmin.rdsadmin_util.show_configuration;

begin
  dbms_audit_mgmt.set_last_archive_timestamp (
    audit_trail_type => dbms_audit_mgmt.audit_trail_xml,
    last_archive_time => sysdate
  );
end;
/ 
 
select * from dba_audit_mgmt_last_arch_ts;
 
begin
  dbms_audit_mgmt.clean_audit_trail (
    audit_trail_type => dbms_audit_mgmt.audit_trail_xml,
    use_last_arch_timestamp => true
  );
end;
/ 

请有任何建议。

也试过these

【问题讨论】:

  • 您之后检查数据库是否这些文件仍然可用?见:Listing files
  • 是的,没有删除
  • 尝试截断表 sys.audit$;但获得权限不足错误。 community.oracle.com/tech/developers/discussion/2170439/…
  • 我要问你下面的问题(稍后在此评论中)。然后我看到您的“权限不足”错误,我对自己说:“感谢上帝!”我的问题是:抱歉这么直率,但是为什么您需要删除审计和跟踪日志?这听起来很像是不应该被允许做的事情。此外,即使出于正当理由可能会删除审计日志,这项工作也是由知道自己在做什么的人完成的,而不是由必须在 Stack Overflow 上询问的人完成的。我希望人们不会在不问这些问题的情况下帮助你。
  • @Maurice - 理性的人可能不同意,这就是为什么结束一个问题需要三票。如果三个有足够权限关闭的人同意该问题应该关闭,这对我来说就足够了。在 OP 解释为什么他需要这样做之后,可以重新打开这个问题。此外,正如我所说 - 需要这样做的 DBA 应该精通他们的工作,而不是学习如何清理 SO 上的审计信息。而且 OP 显然不是 DBA - DBA 不会出现“权限不足”错误。

标签: oracle amazon-rds oracle12c


【解决方案1】:

“权限不足”在学习过程中不时出现。这并不一定表明用户将要做有害或邪恶的事情。在这种情况下,用户只是想弄清楚如何在测试系统上执行不熟悉的任务并控制 AWS 成本任务。截断表 sys.audit$ 在某些情况下是一种可接受的方法,但它只能用作 SYS。在 RDS 中,您无法直接访问 SYS,这就是为什么会出现“权限不足”的原因。

【讨论】:

【解决方案2】:

检查审计文件的数量和最长期限。

set linesize 80
set trimspool on
select
count(*) num_files,
round(sum(filesize)/1024/1024) mb,
round(sysdate - min(mtime),4) days
from table(
    rdsadmin.rds_file_util.listdir(
    'ADUMP'
    )
)
where type = 'file'
and filename like '%.aud'
;

quit


 NUM_FILES         MB       DAYS
---------- ---------- ----------
      5856         58     7.0031

然后运行:

SQL> set serveroutput on
SQL> exec rdsadmin.rdsadmin_util.set_configuration('tracefile retention', 0);
SQL> exec rdsadmin.manage_tracefiles.purge_tracefiles(0);

然后等待5分钟检查:

 NUM_FILES         MB       DAYS
---------- ---------- ----------
         5          0      .0005

【讨论】:

    猜你喜欢
    • 2017-01-09
    • 2016-09-15
    • 2011-11-26
    • 2021-05-21
    • 2018-01-25
    • 2020-02-20
    • 1970-01-01
    • 2018-03-20
    • 2012-05-30
    相关资源
    最近更新 更多