D B:
Oracle RAC Database Release 11.2.0.4.0
我想缩小 SYS.AUD$ 表。一些记录被删除,但表仍有大约 25GB。我读到有必要使用 dbms_audit_mgmt 包将 AUD$ 段移动到另一个表空间。
begin
dbms_audit_mgmt.set_audit_trail_location(
audit_trail_type => dbms_audit_mgmt.audit_trail_aud_std,
audit_trail_location_value => 'AUDTBS');
end;
然后:
alter table sys.aud$ enable row movement;
alter table sys.aud$ shrink space cascade;
alter table sys.aud$ disable row movement;
我的问题是:
- 这个“dbms_audit_mgmt.set_audit_trail_location”是在线操作吗?
- 之后,我应该将 aud$ 表移回 SYSTEM 表空间吗?
感谢你们
您在哪里“读到”您陈述的程序是缩小表格所必需的?
是的,您应该使用 dbms_audit_mgmt 将您的审计表重新定位到 SYSTEM 或 SYSAUX 表空间之外。不是为了缩小表格,而是因为这是最佳实践。
是在线操作吗?医生怎么说?
您是否应该将其移回 SYSTEM TS?不。
此外,在考虑收缩表时,您需要记住,通过删除行释放的空间仍分配给表,并将被未来的插入重用。除非删除是一次性清理和永久减少行数,否则收缩表比浪费的努力更糟糕,因为未来的插入只会产生额外的开销来重新获取所需的空间。
但是请记住,将表重新定位到自己的 TS 中只是很好的管理,而不管缩表。
此外,您声明您使用的是 11.2.0.4。那是失去支持和很久以前升级的时间。