Oracle snapshot(快照)

Oracle的snapshot用于记录数据库的CPU、内存和I/O状态。在11g中,默认每1小时生成一次,保留8天。可通过DBA_HIST_WR_CONTROL查看设置,并使用dbms_workload_repository包进行修改、创建和删除。同时,介绍了如何创建和管理BASELINE作为数据库状态的标准,用于AWR比较。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   Oracle的snapshot用来某一时刻数据库的CPU使用、内存使用、I/O读写等状态,Oracle 11g后,snapshot默认每1小时生成一次,在SYSAUX表空间中保留8天时间。

   一、snapshot设置

         通过 DBA_HIST_WR_CONTROL 视图可以看到当前 snapshot 的设置,

         DBID:当前数据库ID号

         SNAP_INTERVAL:快照生成间隔时间,如图为1小时生成一次

         RETENTION:快照在SYSAUX表空间中维持时间,如图为8天

         TOPNQL:快照中对性能消耗的排序取多少条SQL,DEFUAT为10条

        

         调用 dbms_workload_repository.modify_shapshot_settings 可以对快照进行设置

         

         

       (如图,修改snapshot维持时间为10天,每30分钟生成一次,注意单位都是min)

二、snapshot创建和删除

          执行 exec dbms_workload_repository.create_snapshot() 可以手动创建snapshot;

           

         

          创建完可以通过 dba_hist_snapshot 查看系统历史产生的 snapshot 和手动创建的 snapshot ;

           

           

           执行 exec dbms_workload_repository.drop_shotsnap_range(low_snap_id=>XXX,high_snap_id=>XXX);

           删除指定范围的shotsnap:

            

          (如图删除snap_id为373的shotsnap)

三、BASELINE(基线)

         BASELINE指一个快照范围,这个范围可以作为一个数据库状态的标准,用来产生AWR与数据库在其他

         状态下的AWR作对比,创建baseline:

         exec DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(start_snap_id=>XXX,end_snap_id=>XXX,
         baseline_name=>XXX,dbid=>XXX, expiration=>XXX);

         

      (只有一个实例可以不指定dbid,不指定expiration表示baseline永不过期)

         通过查询 dba_hist_baseline可以查询创建的 baseline

         

         删除baseline:

         exec DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE(baseline_name=>XXX,dbid=>XXX

         casecade=>TURE or FLASE)

         

       (当casecade为TURE时,删除baseline的同时删除baseline包含的shotsnap,

           为FALSE或不指定时删除baseline,保留shotsnap)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值