北京快三开奖

  • <tr id="U9YkSO"><strong id="U9YkSO"></strong><small id="U9YkSO"></small><button id="U9YkSO"></button><li id="U9YkSO"><noscript id="U9YkSO"><big id="U9YkSO"></big><dt id="U9YkSO"></dt></noscript></li></tr><ol id="U9YkSO"><option id="U9YkSO"><table id="U9YkSO"><blockquote id="U9YkSO"><tbody id="U9YkSO"></tbody></blockquote></table></option></ol><u id="U9YkSO"></u><kbd id="U9YkSO"><kbd id="U9YkSO"></kbd></kbd>

    <code id="U9YkSO"><strong id="U9YkSO"></strong></code>

    <fieldset id="U9YkSO"></fieldset>
          <span id="U9YkSO"></span>

              <ins id="U9YkSO"></ins>
              <acronym id="U9YkSO"><em id="U9YkSO"></em><td id="U9YkSO"><div id="U9YkSO"></div></td></acronym><address id="U9YkSO"><big id="U9YkSO"><big id="U9YkSO"></big><legend id="U9YkSO"></legend></big></address>

              <i id="U9YkSO"><div id="U9YkSO"><ins id="U9YkSO"></ins></div></i>
              <i id="U9YkSO"></i>
            1. <dl id="U9YkSO"></dl>
              1. <blockquote id="U9YkSO"><q id="U9YkSO"><noscript id="U9YkSO"></noscript><dt id="U9YkSO"></dt></q></blockquote><noframes id="U9YkSO"><i id="U9YkSO"></i>
                企业空间 推销商城 存储论坛
                北京快三开奖全闪存阵列 IBM云盘算 Acronis 安克诺斯 安腾普 腾保数据
                首页 > 信息平安 > 数据库平安 > 注释

                Oracle审计记载手动清算的办法

                2017-07-06 20:33泉源:中国存储网
                导读:上面的内容描绘的是怎样将Oracle审计从零碎表空间剥离以及清算Oracle审计记载,供各人参考。

                Oracle 数据库审计功用十分弱小,通常包罗规范审计(包罗用户级审计和零碎级审计)和细粒度审计。虽然云云,一不警惕就容易形成功能题目。同时会把零碎表空间给撑爆。

                上面的内容描绘的是怎样将审计从零碎表空间剥离以及清算Oracle审计记载,供各人参考。

                一、审计的相干设置装备摆设

                1. --情况 

                2. SQL> select * from v$version where rownum=1; 
                3.  
                4. BANNER 
                5. -------------------------------------------------------------------------------- 
                6. Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production 
                7.  
                8. SQL> show parameter audit 
                9.  
                10. NAME                                 TYPE        VALUE 
                11. ------------------------------------ ----------- ------------------------------ 
                12. audit_file_dest                      string      /home/oraprod/app/product/11.2 
                13.                                                  .0/dbhome_1/rdbms/audit 
                14. audit_sys_operations                 boolean     FALSE 
                15. audit_syslog_level                   string 
                16. audit_trail                          string      DB  --此值为以后Oracle 11gR2缺省设置装备摆设 
                17.  
                18. --从上面的盘问中可以看出,以后的审计位于system表空间 
                19. SQL> col segment_name FOR a10 
                20. SQL> SELECT owner,segment_name,tablespace_name FROM dba_segments WHERE segment_name ='AUD$'; 
                21.  
                22. OWNER                          SEGMENT_NA TABLESPACE_NAME 
                23. ------------------------------ ---------- ------------------------------ 
                24. SYS                            AUD$       SYSTEM 

                二、修正审计存储表空间 

                1. 新增一个表空间用于存储审计日记 
                2. SQL> CREATE tablespace audit_data datafile '/home/oracle/app/oradata/orcl/audit01.dbf' 
                3.   2  SIZE 100M autoextend ON NEXT 50M; 
                4.  
                5. SQL> @tbs_free.sql 
                6.  
                7. TABLESPACE_NAME                USED (MB FREE (MB TOTAL (M PER_FR 
                8. ------------------------------ -------- -------- -------- ------ 
                9. AUDIT_DATA                            1    1,199    1,200  100 % 
                10. SYSAUX                            1,133       77    1,210    6 % 
                11. SYSTEM                            1,875       15    1,890    1 % 
                12.  
                13. -- 设定审计数据寄存表空间   
                14. SQL> BEGIN 
                15.   2    DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION( 
                16.   3      AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD, 
                17.   4      AUDIT_TRAIL_LOCATION_VALUE => 'AUDIT_DATA' 
                18.   5    ); 
                19.   6  END; 
                20.   7  / 
                21. BEGIN 
                22. ERROR at line 1: 
                23. ORA-46267: Insufficient space in 'AUDIT_DATA' tablespace, cannot complete 
                24. operation 
                25. ORA-06512: at "SYS.DBMS_AUDIT_MGMT", line 1576 
                26. ORA-06512: at line 2 
                27. -- 错误提示,虽然我们运用了主动扩展表空间,照旧提示空间不敷 
                28.  
                29. -- 检查以后审计数据巨细,如下为1152MB 
                30. SQL> select segment_name,bytes/1024/1024 from dba_segments where segment_name='AUD$'; 
                31.  
                32. SEGMENT_NAME              BYTES/1024/1024 
                33. ------------------------- --------------- 
                34. AUD$                                 1152 
                35.  
                36. -- 上面调解数据文件巨细 
                37. SQL> alter database datafile '/home/oracle/app/oradata/orcl/audit01.dbf' resize 1200m; 
                38.  
                39. Database altered. 
                40.  
                41. -- 再次设定审计数据寄存表空间OK  
                42. SQL> BEGIN 
                43.   2    DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION( 
                44.   3      AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD, 
                45.   4      AUDIT_TRAIL_LOCATION_VALUE => 'AUDIT_DATA' 
                46.   5    ); 
                47.   6  END; 
                48.   7  / 
                49.  
                50. PL/SQL procedure successfully completed. 
                51.  
                52. Elapsed: 00:02:23.10 
                53. --整个进程破费了2m23s,次要是时期停止了数据搬家 
                54.  
                55. SQL> SELECT owner,segment_name,tablespace_name FROM dba_segments WHERE segment_name ='AUD$'; 
                56.  
                57. OWNER                          SEGMENT_NAME                   TABLESPACE_NAME 
                58. ------------------------------ ------------------------------ ------------------------------ 
                59. SYS                            AUD$                           AUDIT_DATA 
                60.  
                61. SQL> @tbs_free.sql 
                62.  
                63. TABLESPACE_NAME                USED (MB FREE (MB TOTAL (M PER_FR 
                64. ------------------------------ -------- -------- -------- ------ 
                65. AUDIT_DATA                        1,153       47    1,200    4 % 
                66. SYSAUX                            1,143       67    1,210    6 % 
                67. SYSTEM                              724    1,166    1,890   62 % 
                68.  
                69. -- 从下面的这个盘问可以看出,原来位于system表空间的AUD$被迁徙到了AUDIT_DATA 
                70. -- 相应地AUDIT_DATA表空间已运用添加,而SYSTEM表空间运用率降落 
                71.  
                72. -- 检查审计数据字典设置装备摆设信息 
                73. SQL> col PARAMETER_NAME FOR a30 
                74. SQL> col PARAMETER_VALUE FOR a15 
                75. SQL> col AUDIT_TRAIL FOR a20 
                76. SQL> SELECT PARAMETER_NAME, PARAMETER_VALUE, AUDIT_TRAIL 
                77.   2  FROM DBA_AUDIT_MGMT_CONFIG_PARAMS 
                78.   3  WHERE audit_trail = 'STANDARD AUDIT TRAIL'; 
                79.  
                80. PARAMETER_NAME                 PARAMETER_VALUE AUDIT_TRAIL 
                81. ------------------------------ --------------- -------------------- 
                82. DB AUDIT TABLESPACE            AUDIT_DATA      STANDARD AUDIT TRAIL 
                83. DB AUDIT CLEAN BATCH SIZE      10000           STANDARD AUDIT TRAIL 

                三、肃清审计记载

                1. 经过这个进程设定肃清距离 
                2. SQL> BEGIN 
                3.   2    DBMS_AUDIT_MGMT.init_cleanup( 
                4.   3      audit_trail_type         => DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL, 
                5.   4      default_cleanup_interval => 120 /* hours */); 
                6.   5  END; 
                7.   6  / 
                8.  
                9. PL/SQL procedure successfully completed. 
                10.  
                11. -- 上面严验证审计日记肃清能否已开启 
                12. SQL> SET SERVEROUTPUT ON 
                13. SQL> BEGIN 
                14.   2    IF DBMS_AUDIT_MGMT.is_cleanup_initialized(DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD) THEN 
                15.   3      DBMS_OUTPUT.put_line('YES'); 
                16.   4    ELSE 
                17.   5      DBMS_OUTPUT.put_line('NO'); 
                18.   6    END IF; 
                19.   7  END; 
                20.   8  / 
                21. YES 
                22.  
                23. PL/SQL procedure successfully completed. 
                24.  
                25. SQL> select segment_name,bytes/1024/1024 from dba_segments where segment_name='AUD$'; 
                26.  
                27. SEGMENT_NAME        BYTES/1024/1024 
                28. ------------------- --------------- 
                29. AUD$                           1152 
                30.  
                31. SQL> select 'Leshami' As author,'http://blog.csdn.net/leshami' as Blog from dual; 
                32.  
                33. AUTHOR  BLOG 
                34. ------- ---------------------------- 
                35. Leshami http://blog.csdn.net/leshami 
                36.  
                37. SQL> select count(*) from AUD$; 
                38.  
                39.   COUNT(*) 
                40. ---------- 
                41.    5908086 
                42.  
                43. SQL> select min(ntimestamp#) from aud$; 
                44.  
                45. MIN(NTIMESTAMP#) 
                46. --------------------------------------------------------------------------- 
                47. 20-AUG-14 06.11.09.901253 AM 
                48.  
                49. -- 设定归档距离 
                50. SQL> BEGIN 
                51.   2  DBMS_AUDIT_MGMT.set_last_archive_timestamp( 
                52.   3  audit_trail_type  => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD, 
                53.   4  last_archive_time => SYSTIMESTAMP-10); 
                54.   5  END; 
                55.   6  / 
                56.  
                57. PL/SQL procedure successfully completed 
                58.  
                59. --检查设定的归档距离 
                60. SQL> SELECT * FROM dba_audit_mgmt_last_arch_ts; 
                61.  
                62. AUDIT_TRAIL          RAC_INSTANCE LAST_ARCHIVE_TS 
                63. -------------------- ------------ --------------------------------------------------------------------------- 
                64. STANDARD AUDIT TRAIL            0 09-OCT-15 01.27.17.000000 PM +00:00 
                65.  
                66. --经过挪用DBMS_AUDIT_MGMT.clean_audit_trail停止手动清算审计日记 
                67. BEGIN 
                68.   DBMS_AUDIT_MGMT.clean_audit_trail( 
                69.    audit_trail_type        => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD, 
                70.    use_last_arch_timestamp => TRUE); 
                71. END; 
                72.  
                73. DBMS_AUDIT_MGMT.clean_audit_trail 
                74. This procedure deletes audit trail records. The CLEAN_AUDIT_TRAIL procedure is usually called after the  
                75. SET_LAST_ARCHIVE_TIMESTAMP Procedure has been used to set the last archived timestamp for the audit records. 
                76.  
                77. --也可以经过创立一个purge Job来停止清算已归档的汗青审计记载 
                78. SQL> BEGIN 
                79.   2    DBMS_AUDIT_MGMT.CREATE_PURGE_JOB( 
                80.   3      AUDIT_TRAIL_TYPE           => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD, 
                81.   4      AUDIT_TRAIL_PURGE_INTERVAL => 24 /* hours */, 
                82.   5      AUDIT_TRAIL_PURGE_NAME     => 'Daily_Audit_Purge_Job', 
                83.   6      USE_LAST_ARCH_TIMESTAMP    => TRUE 
                84.   7    ); 
                85.   8  END; 
                86.   9  / 
                87.  
                88. PL/SQL procedure successfully completed. 
                89.  
                90. -- 本次测试运用了job停止清算,注,下面的purge job 并非运用DBMS_SCHEDULER.CREATE_JOB创立 
                91. -- 实行job用于清算归档,经过察看,由于redo log size为50MB,切换较为频仍,破费了19分钟 
                92. -- 同时随同有Checkpoint not complete等候事情,可见redo size过小 
                93. SQL> exec DBMS_SCHEDULER.RUN_JOB(job_name => 'SYS.DAILY_AUDIT_PURGE_JOB'); 
                94.  
                95. PL/SQL procedure successfully completed. 
                96.  
                97. Elapsed: 00:19:26.38 
                98.  
                99. SQL> select count(*) from AUD$; 
                100.  
                101.   COUNT(*) 
                102. ---------- 
                103.         12 
                104.  
                105. --经检查,清算后空间并没有开释         
                106. SQL> select segment_name,bytes/1024/1024 from dba_segments where segment_name='AUD$'; 
                107.  
                108. SEGMENT_NAME                   BYTES/1024/1024 
                109. ------------------------------ --------------- 
                110. AUD$                                      1152 
                111.  
                112. SQL> alter table sys.aud$ shrink space cascade; 
                113. alter table sys.aud$ shrink space cascade 
                114. ERROR at line 1: 
                115. ORA-10636: ROW MOVEMENT is not enabled 
                116.  
                117. SQL> alter table sys.aud$ enable row movement; 
                118.  
                119. Table altered. 
                120.  
                121. SQL> alter table sys.aud$ shrink space cascade; 
                122.  
                123. Table altered. 
                124.  
                125. SQL> alter table sys.aud$ disable row movement; 
                126.  
                127. Table altered. 
                128.  
                129. -- 上面的盘问可以看到,空间曾经被开释 
                130. SQL> select segment_name,bytes/1024/1024 from dba_segments where segment_name='AUD$'; 
                131.  
                132. SEGMENT_NAME         BYTES/1024/1024 
                133. -------------------- --------------- 
                134. AUD$                           .0625 

                四、小结

                a、关于Oracle 11g,审计功用默许被开启,因而假如在必需启用的状况下应思索功能影响; 
                b、开启审计的状况下,发起将审计从system或sysaux表空间剥离,运用独自的表空间; 
                c、关于汗青审计日记的肃清,应思索肃清时期所带来的功能影响; 
                d、挪用DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION这个进程曾经开端了搬家进程,假如审计日记很巨大,应思索IO影响; 
                e、审计日记的肃清需求先设定归档,已归档的审计日记会被清算; 
                f、也可以经过trunate table aud$ reuse storage以及deallocate十分规方法来处置。

                持续阅读
                要害词 :
                Oracle审计
                中国存储网声明:此文观念不代表本站态度,若有版权疑问请联络我们。
                相干阅读
                产物引荐
                头条阅读
                栏目热门

                Copyright @ 2006-2019 ChinaStor.COM 版权一切 京ICP备14047533号

                中国存储网

                存储第一站,存储流派,存储在线交换平台