重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1339|回复: 0
打印 上一主题 下一主题

[Oracle] 迁移AUD$表至单独表空间

[复制链接]
跳转到指定楼层
楼主
发表于 2022-11-24 17:39:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
文档课题:迁移AUD$表至单独表空间.
应用场景:作为DBA肯定会遇到保留审计记录的需求,那么随时间的增加该表就会变得越来越庞大.AUD$默认表空间为system,此时为了方便管理,通常是需要将AUD$表放到单独的表空间.
操作过程:
-- 创建表空间
create tablespace AUD_TBS datafile '/u01/app/oracle/oradata/orcl/audit01.dbf' size 100M autoextend on;
-- 迁移AUD$表
BEGIN
DBMS_AUDIT_MGMT.set_audit_trail_location(
audit_trail_type =>DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
audit_trail_location_value =>'AUD_TBS');
END;
/
-- 迁移FGA_LOG$
BEGIN
DBMS_AUDIT_MGMT.set_audit_trail_location(
audit_trail_type =>DBMS_AUDIT_MGMT.AUDIT_TRAIL_FGA_STD,
audit_trail_location_value =>'AUD_TBS');
END;
/
-- 检查确认
set lines 168 pages 999
col segment_name for a30
col table_name for a18
col tablespace_name for a18
SELECT table_name, tablespace_name
FROM dba_tables
WHERE table_name IN ('AUD$', 'FGA_LOG$')
ORDER BY table_name;
col SEGMENT_NAME for a32
select TABLE_NAME, SEGMENT_NAME,TABLESPACE_NAME
from dba_lobs
where table_name in ('AUD$', 'FGA_LOG$');
迁移前确认
> SELECT table_name, tablespace_name
  2    FROM dba_tables
  3  WHERE table_name IN ('AUD$', 'FGA_LOG$')
  4  ORDER BY table_name;
TABLE_NAME         TABLESPACE_NAME
------------------ ------------------
AUD$               SYSTEM
FGA_LOG$           SYSTEM
> col SEGMENT_NAME for a32
> select TABLE_NAME, SEGMENT_NAME,TABLESPACE_NAME
  2    from dba_lobs
  3  where table_name in ('AUD$', 'FGA_LOG$');
TABLE_NAME         SEGMENT_NAME                     TABLESPACE_NAME
------------------ -------------------------------- ------------------
FGA_LOG$          SYS_LOB0000000417C00013$$       SYSTEM
FGA_LOG$          SYS_LOB0000000417C00028$$       SYSTEM
AUD$                SYS_LOB0000000407C00040$$        SYSTEM
AUD$                SYS_LOB0000000407C00041$$        SYSTEM
迁移后确认
> set lines 168 pages 999
> col segment_name for a30
> col table_name for a18
> col tablespace_name for a18
> SELECT table_name, tablespace_name
  2    FROM dba_tables
  3  WHERE table_name IN ('AUD$', 'FGA_LOG$')
  4  ORDER BY table_name;
TABLE_NAME         TABLESPACE_NAME
------------------ ------------------
AUD$               AUD_TBS
FGA_LOG$           AUD_TBS
> col SEGMENT_NAME for a32
> select TABLE_NAME, SEGMENT_NAME,TABLESPACE_NAME
  2    from dba_lobs
  3  where table_name in ('AUD$', 'FGA_LOG$');
TABLE_NAME         SEGMENT_NAME                     TABLESPACE_NAME
------------------ -------------------------------- ------------------
FGA_LOG$          SYS_LOB0000095317C00013$$       AUD_TBS
FGA_LOG$          SYS_LOB0000095317C00028$$       AUD_TBS
AUD$                SYS_LOB0000000407C00040$$        AUD_TBS
AUD$                SYS_LOB0000000407C00041$$        AUD_TBS

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-9-28 03:49 , Processed in 0.079529 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表