【Unified Auditing】统一审计的存储架构体系
来源:互联网 发布:sql select count 编辑:程序博客网 时间:2024/06/08 14:45
Unified Auditing的架构体系之—存储
我们知道,从12c开始,统一审计(Unified Auditing)的审计数据都是存放在AUDSYS schema 下。
首先,我们看一看AUDSYS schema下的存储对象都有哪些内容。(以下为12.1.0.2环境的出力)
SQL> set pagesize 200SQL> set linesize 200SQL> col OWNER format a10SQL> col SEGMENT_NAME format a25SQL> col SEGMENT_TYPE format a20SQL> col PARTITION_NAME format a20SQL> select OWNER,SEGMENT_NAME,SEGMENT_TYPE,PARTITION_NAME,bytes/1024/1024 "sizeMB" 2 from DBA_SEGMENTS 3 where OWNER='AUDSYS';OWNER SEGMENT_NAME SEGMENT_TYPE PARTITION_NAME sizeMB---------- ------------------------- -------------------- -------------- -------AUDSYS SYS_LOB0000092724C00014$$ LOB PARTITION SYS_LOB_P201 1.125 AUDSYS SYS_IL0000092724C00014$$ INDEX PARTITION SYS_IL_P202 .0625AUDSYS CLI_LOB$1182c349$1$1 INDEX PARTITION HIGH_PART .0625AUDSYS CLI_TIME$1182c349$1$1 INDEX PARTITION HIGH_PART .0625AUDSYS CLI_SCN$1182c349$1$1 INDEX PARTITION HIGH_PART .0625AUDSYS CLI_SWP$1182c349$1$1 TABLE PARTITION HIGH_PART .125★已选择 6 行。
我们可以看到一共有6个存储数据段,那么这些数据段都是什么呢?
让我们查看各个数据段的DDL定义,并且通过定义来推测其意义和作用。
SQL> set pages 0SQL> set longchunksize 3000SQL> set long 2000000000SQL> select dbms_metadata.get_ddl('TABLE','CLI_SWP$1182c349$1$1','AUDSYS') from dual; CREATE TABLE "AUDSYS"."CLI_SWP$1182c349$1$1" ("INST#" NUMBER, "BUCKET#" NUMBER, "INST_LOB#" NUMBER, "MAX_SEQ#" NUMBER, "FLUSH_SCN" NUMBER, "FLUSH_TIME" DATE, "MIN_SCN" NUMBER, "MAX_SCN" NUMBER, "MIN_TIME" DATE, "MAX_TIME" DATE, "SID#" NUMBER, "SERIAL#" NUMBER, "STATUS" NUMBER, "LOG_PIECE" BLOB ★ ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE( BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "SYSAUX" LOB ("LOG_PIECE") STORE AS SECUREFILE ( TABLESPACE "SYSAUX" ENABLE STORAGE IN ROW CHUNK 8192 CACHE LOGGING NOCOMPRESS KEEP_DUPLICATES STORAGE( BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) PARTITION BY RANGE ("FLUSH_SCN") (PARTITION "HIGH_PART" VALUES LESS THAN (MAXVALUE) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "SYSAUX" LOB ("LOG_PIECE") STORE AS SECUREFILE ( TABLESPACE "SYSAUX" ENABLE STORAGE IN ROW CHUNK 8192 CACHE LOGGING NOCOMPRESS KEEP_DUPLICATES STORAGE(INITIAL 106496 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) )SQL> select dbms_metadata.get_ddl('INDEX','CLI_TIME$1182c349$1$1','AUDSYS') from dual;DBMS_METADATA.GET_DDL('INDEX','CLI_TIME$1182C349$1$1','AUDSYS')------------------------------------------------------------------------------------------------------------------------------ CREATE INDEX "AUDSYS"."CLI_TIME$1182c349$1$1" ON "AUDSYS"."CLI_SWP$1182c349$1$1" ("MIN_TIME", "FLUSH_SCN", "BUCKET#")★ PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE( BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) LOCAL (PARTITION "HIGH_PART" PCTFREE 10 INITRANS 2 MAXTRANS 255 LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "SYSAUX" )SQL> select dbms_metadata.get_ddl('INDEX','CLI_SCN$1182c349$1$1','AUDSYS') from dual;DBMS_METADATA.GET_DDL('INDEX','CLI_SCN$1182C349$1$1','AUDSYS')------------------------------------------------------------------------------------------------------------------------------ CREATE INDEX "AUDSYS"."CLI_SCN$1182c349$1$1" ON "AUDSYS"."CLI_SWP$1182c349$1$1" ("MIN_SCN", "FLUSH_SCN", "BUCKET#")★ PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE( BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) LOCAL (PARTITION "HIGH_PART" PCTFREE 10 INITRANS 2 MAXTRANS 255 LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "SYSAUX" )SQL> select dbms_metadata.get_ddl('INDEX','CLI_LOB$1182c349$1$1','AUDSYS') from dual;DBMS_METADATA.GET_DDL('INDEX','CLI_LOB$1182C349$1$1','AUDSYS')------------------------------------------------------------------------------------------------------------------------------ CREATE INDEX "AUDSYS"."CLI_LOB$1182c349$1$1" ON "AUDSYS"."CLI_SWP$1182c349$1$1" ("FLUSH_SCN", "INST_LOB#", "BUCKET#")★ PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE( BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) LOCAL (PARTITION "HIGH_PART" PCTFREE 10 INITRANS 2 MAXTRANS 255 LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "SYSAUX" )SQL> select dbms_metadata.get_ddl('INDEX','SYS_IL0000092724C00014$$','AUDSYS') from dual;DBMS_METADATA.GET_DDL('INDEX','SYS_IL0000092724C00014$$','AUDSYS')------------------------------------------------------------------------------------------------------------------------------ CREATE UNIQUE INDEX "AUDSYS"."SYS_IL0000092724C00014$$" ON "AUDSYS"."CLI_SWP$1182c349$1$1" (★ PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE( BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "SYSAUX" LOCAL (PARTITION "SYS_IL_P202" PCTFREE 10 INITRANS 2 MAXTRANS 255 LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "SYSAUX" ) PARALLEL (DEGREE 0 INSTANCES 0)SQL> col TABLE_NAME format a30SQL> col SEGMENT_NAME format a30SQL> col COLUMN_NAME format a30SQL> set linesize 200SQL> select OWNER,TABLE_NAME,SEGMENT_NAME,COLUMN_NAME 2 from DBA_LOBS 3 where SEGMENT_NAME='SYS_LOB0000092724C00014$$';OWNER TABLE_NAME SEGMENT_NAME COLUMN_NAME---------- ------------------------------ ------------------------------ --------------AUDSYS CLI_SWP$1182c349$1$1 SYS_LOB0000092724C00014$$ LOG_PIECESQL> col OWNER format a20SQL> col TABLESPACE_NAME format a10SQL> col COLUMN_NAME format a10SQL> select owner, table_name, column_name, tablespace_name, 2 segment_name,securefile, partitioned from 3 dba_lobs where table_name = 'CLI_SWP$1182c349$1$1';OWNER TABLE_NAME COLUMN_NAM TABLESPACE SEGMENT_NAME SECURE PARTIT------ -------------------- ---------- ---------- ------------------------ ------ ---AUDSYS CLI_SWP$1182c349$1$1 LOG_PIECE SYSAUX SYS_LOB0000092724C00014$$ YESYES
根据以上各个数据段的DDL定义,我们可以看到以下内容:
- 数据段包括三种类型的对象,分别是分区表,分区索引和大数据段
- 索引对象CLI_TIME
XXXX是表CLISWP XXXX的列(“MIN_TIME”, “FLUSH_SCN”, “BUCKET#”)上的索引 - 索引对象CLI_SCN
XXXX是表CLISWP XXXX的列(“MIN_SCN”, “FLUSH_SCN”, “BUCKET#”)上的索引 - 索引对象CLI_LOB
XXXX是表CLISWP XXXX的列(“FLUSH_SCN”, “INST_LOB#”, “BUCKET#”)上的索引 - 索引对象SYS_ILXXXX是表CLI_SWP$XXXX的列(“FLUSH_SCN”, “INST_LOB#”, “BUCKET#”)上的索引
- 大数据对象SYS_LOB是表CLI_SWP$XXXX的LOB列LOG_PIECE的存储,并且是securefile LOBs类型。
- 默认所有的数据存储在SYSAUX表空间中
由此,我们知道统一审计(Unified Auditing)的审计数据都是存放在AUDSYS schema 下的表CLI_SWP$XXXX中,
并且有一部分数据是存放在Lob中的。
在用户的咨询案例中,有一些是由于统一审计的影响使SYSAUX的快速增长和消耗大量空间的,下面进行一下说明总结和探讨。
1.新的统一审计(Unified Auditing)功能推出后,有一些用户问:
Q:为什么没有设置任何统一审计,在UNIFIED_AUDIT_TRAIL视图中,还是看到有一些数据,并且数据量在增长?
A:其实这个很好解释,正如我们前面所提到的,在12c数据库默认开启混合模式审计,而由于默认开启的ORA_SECURECONFIG 和 ORA_LOGON_FAILURES(12.1.0.2)审计策略导致审计数据的增长,从而显示在UNIFIED_AUDIT_TRAIL视图里。
解决方法也和简单,你可以删除不需要的审计数据,如果以后也不想这些数据继续产生,你还可以把这些审计策略无效。
例:
SQL>--删除不需要的审计数据SQL> exec DBMS_AUDIT_MGMT.FLUSH_UNIFIED_AUDIT_TRAIL;PL/SQL 过程已成功完成。SQL> BEGIN 2 DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL( 3 AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, 4 USE_LAST_ARCH_TIMESTAMP=> FALSE, 5 CONTAINER => dbms_audit_mgmt.container_current); 6 END; 7 /PL/SQL 过程已成功完成。SQL>--无效掉审计策略SQL> noaudit policy ORA_SECURECONFIG;Noaudit succeeded.SQL> noaudit policy ORA_LOGON_FAILURES;Noaudit succeeded.
2.当然还有一些比较复杂的问题,例如在12.1.0.1 标准版数据库(SE)中,由于对分区表和SECUREFILES Lobs的使用限制问题,一旦保存统一审计(Unified Auditing)审计数据的LOB使用大小变大,并且就算是通过DBMS_AUDIT_MGMT包删除所有的审计数据,也不会缩小段的大小和释放空间,所以会导致SYSAUX表空间的浪费和空余空间紧张。
这个问题在以后的版本中会得到改善,但是在12.1.0.1 SE的版本中,由于各种限制,将是无法解决的问题。
所以建议在12.1.0.1 SE的版本中,如果不想使用统一审计,在使用前无效掉所有的统一审计策略。
或者使用统一审计时,要在LOB使用大小变大前,定期进行删除。
建议参考(MOS文档):
DBMS_AUDIT_MGMT does not release the space occupied by LOB segment (Doc ID 1935169.1)>In Oracle Database 12c Standard Edition,audit trail clean up does not release the LOB segment space.Bug 18109788 - CLEANUP OF UNIFIED AUDIT TRAIL DOES NOT RELEASE LOB SEGMENT SPACE>Base Bug 20077418
3.在12.1.0.1的版本中,由于非公开Bug16767759的影响,视图V$SYSAUX_OCCUPANTS中无法查看到AUDSYS schema的统计信息。
SQL> 12.1.0.1中查询结果SQL> select distinct schema_name from v$sysaux_occupants;SCHEMA_NAME----------------------------------------------------------------WKSYSMDSYSWK_TESTTSMSYSOLAPSYSCTXSYSSYSTEMEXFSYSORDSYSORDPLUGINSSYSMANDBSNMPXDBORDDATASYSPERFSTATWMSYSSI_INFORMTN_SCHEMA18 rows selected.
我们可以看到在12.1.0.2 中可以查询到AUDSYS schema 的相关数据,情况已经得到改善。
SQL> 12.1.0.2中已经得到改善SQL> select distinct schema_name from v$sysaux_occupants;SCHEMA_NAME--------------------WKSYSMDSYSWK_TESTTSMSYSOLAPSYSCTXSYSSYSTEMAUDSYS ★EXFSYSORDSYSORDPLUGINSSYSMANDBSNMPXDBORDDATASYSPERFSTATWMSYSSI_INFORMTN_SCHEMA已选择 19 行。
所以在版本12.1.0.1中,在解决SYSAUX表空间的浪费和空余空间紧张问题时,我们也要考虑到这点。
作为暂时的解决方法,我们也可以通过查询DBA_SEGMENTS来确认相关数据的大小。
SQL> select owner, segment_name, sum(bytes/1024/1024/1024) "sizeGB" 2 from dba_segments 3 where tablespace_name='SYSAUX' and owner='AUDSYS' 4 group by owner, segment_name;OWNERSEGMENT_NAME sizeGB-------------------- ------------------------------ ----------AUDSYS CLI_TIME$1182c349$1$1 .000061035AUDSYS SYS_IL0000092724C00014$$ .000061035 AUDSYS CLI_SWP$1182c349$1$1 .000061035 AUDSYS SYS_LOB0000092724C00014$$ .00012207AUDSYS CLI_LOB$1182c349$1$1 .000061035AUDSYS CLI_SCN$1182c349$1$1 .000061035已选择 6 行。
版权声明:本文为博主原创文章,转载请注明出处,谢谢。http://blog.csdn.net/lukeunique
- 【Unified Auditing】统一审计的存储架构体系
- 【Unified Auditing】统一审计的进程架构体系
- 【Unified Auditing】统一审计的存储(12.2)
- 【Unified Auditing】Oracle 12c 统一审计基础介绍
- 构建基于分布式SOA架构的统一身份认证体系
- 利用MariaDB Auditing Plugin实现社区版MySQL的审计功能
- 【Security】传统审计(Traditional Auditing)
- 软件定义存储怎样能够统一您的基础架构
- ORACLE 数据库 (DBA)之 标准审计AUDITING (审计)
- Oracle 体系架构--Oracle存储
- InnoDB 存储引擎体系架构
- InnoDB 存储引擎体系架构
- RUP(Rational Unified Process, Rational统一过程, 统一软件开发过程)的测试分类
- 统一存储的进化
- 搜索引擎的体系架构
- AMSS的体系架构
- Google的体系架构
- Asterisk的体系架构
- python字符串与数字的转化
- Unity脚本周期关系
- 实验2前篇——X86内存管理
- 根据URL采集页面内容,封装显示在自己的页面
- Android 软键盘那点事
- 【Unified Auditing】统一审计的存储架构体系
- [python]从零开始学python——颜色的16进制于RGB之间的转换
- 使用“||”完成字符串的连接 和“'”的使用
- 距离变换
- 声波通信(SinVoice)代码解读(一) 如何产生给定频率的声音
- 【VMware虚拟化解决方案】如何选择虚拟化产品
- Material Design Support Library中NavigationView添加下划线
- Altium Designer 教程
- 迁移学习 transfer learning