Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1728772
  • 博文数量: 234
  • 博客积分: 4966
  • 博客等级: 上校
  • 技术积分: 3322
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-13 01:03
文章分类

全部博文(234)

文章存档

2017年(2)

2016年(1)

2015年(8)

2014年(11)

2013年(44)

2012年(27)

2011年(22)

2010年(30)

2009年(37)

2008年(6)

2007年(45)

2006年(1)

分类: Oracle

2015-12-08 23:19:25

环境:Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod
原因:上一任因领导要求启用了审计功能,然并卵,结果SYSTEM表空间爆了,然后补坑中。。。


1.数据库逻辑全备
过程略。。。

2.SYSTEM表空间备份
expdp备份表空间,略。。。

3.备份并归档AUD$基表
CREATE TABLE AUD_RECORD TABLESPACE AUDTBS AS (SELECT * FROM SYS.AUD$);

exp system/system file=aud_record.dmp log=aud_record.log tables=SYS.AUD_RECORD

网上很多资料是建议创建一个AUD$基表的拷贝,然后再对这个表进行备份,但一直没明白为什么要这样做,在测试环境测试过直接对AUD$基表备份也是没问题的

4.清空AUD$基表数据
TRUNCATE TABLE "SYS"."AUD$";

如果该表很大的话,比如有超过30G以上之类的,可按如下操作,以避免高IO操作影响系统性能,导致数据库挂起
清空数据并保留原有extent
TRUNCATE TABLE "SYS"."AUD$" REUSE STORAGE;
逐步回收extent
ALTER TABLE "SYS"."AUD$" DEALLOCATE UNUSED KEEP 1000M;
ALTER TABLE "SYS"."AUD$" DEALLOCATE UNUSED KEEP 500M;
ALTER TABLE "SYS"."AUD$" DEALLOCATE UNUSED KEEP 10M;
ALTER TABLE "SYS"."AUD$" DEALLOCATE UNUSED KEEP 0M;

5.创建审计专用表空间
CREATE TABLESPACE AUDTBS DATAFILE '/u01/app/oracle/oradata/odb1/audtbs01.dbf' SIZE 10M AUTOEXTEND ON;

6.授权SYS用户不限制使用该表空间
ALTER USER SYS QUOTA UNLIMITED ON AUDTBS;

7.移动审计相关表至该表空间(增加了移动CLOB对象语句)
ALTER TABLE "SYS"."AUD$" MOVE TABLESPACE AUDTBS;
ALTER INDEX "SYS"."I_AUD1" REBUILD ONLINE TABLESPACE AUDTBS;
ALTER TABLE "SYS"."AUD$" MOVE LOB ("SQLBIND") STORE AS (TABLESPACE AUDTBS);
ALTER TABLE "SYS"."AUD$" MOVE LOB ("SQLTEXT") STORE AS (TABLESPACE AUDTBS);
ALTER TABLE "SYS"."AUDIT$" MOVE TABLESPACE AUDTBS;
ALTER INDEX "SYS"."I_AUDIT" REBUILD ONLINE TABLESPACE AUDTBS;
ALTER TABLE "SYS"."AUDIT_ACTIONS" MOVE TABLESPACE AUDTBS;
ALTER INDEX "SYS"."I_AUDIT_ACTIONS" REBUILD ONLINE TABLESPACE AUDTBS;

8.其它测试略。。。

阅读(7629) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~