Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!

Oracle运维最佳实践-下 PDF 下载


分享到:
时间:2021-09-12 11:00来源:http://www.java1234.com 作者:转载  侵权举报
Oracle运维最佳实践-下 PDF 下载
失效链接处理
Oracle运维最佳实践-下 PDF 下载


本站整理下载:
提取码:knie 
 
 
相关截图:
 
主要内容:

2.1 Oracle
2.1.1 AWR
Automatic Workload Repository 是 10g 引入的一个重要组件。在里面存贮着近期一段时
间内,默认是 7 天(11G 8 天),数据库活动状态的详细信息。快照由一个称为 MMON 的
新的后台进程及其从进程自动采集数据。
AWR 报告是对 AWR 视图进行查询而得到的一份自动生成的报告。
通过 AWR 和 AWR 报告,DBA 可以容易地获知最近数据库的活动状态,数据库的各
种性能指标的变化趋势曲线,最近数据库可能存在的异常,分析数据库可能存在的性能瓶颈
从而对数据库进行优化。
AWR 报告所有的数据来源于 AWR 视图,即以 DBA_HIST_开头的所有系统表,Database 
Reference 有对所有这些系统表的描述。
AWR 的前身是 Statspack,Statspack 在 10g 和 11g 中也有提供,同时和 AWR 一起做了
同步更新,而且 Statspack 是公开源代码。
10g 中一个新视图 v$session_wait_history 这个视图保存了每个活动 session 在
v$session_wait 中最近 10 次的等待事件。但这对于一段时期内的数据性能状况的监测是远远
不够的,为了解决这个问题,在 10g 中还新添加了一个视图:v$active_session_history,这就
是 ASH,ASH 缺省每一秒收集一下 v$session 中活动会话的情况,记录会话等待的事件,不
活动的会话不会被采样 ,间隔时间由 _ash_sampling_interval 参数确定 ,由于记录session的
活动信息是很费时间和空间的,ASH 采用的策略是:保存处于等待状态的活动 session 的信
息,每秒从 v$session_wait 中采样一次,并将采样信息保存在内存中(ASH 的采样数据是保
存在内存中)。
ASH的采样数据是保存在内存中,而分配给ASH的内存空间是有限的,当所分配空间占满
后,旧的记录就会被覆盖掉;而且数据库重启后,所有的这些ASH信息都会消失。这样,
对于长期检测oracle的性能是不可能的,在Oracle10g中,提供了永久保留ASH信息的方
法,这就是AWR。例如与V$ACTIVE_SESSION_HISTORY对应的AWR表:
DBA_HIST_ACTIVE_SESS_HISTORY,默认情况下DBA_HIST_ACTIVE_SESS_HISTORY
字典的数据每10 秒收集一次,而V$ACTIVE_SESSION_HISTORY 中则是每秒一次。
AWR 数据主要由两部分组成:
1、保存在内存中的系统负载和性能统计数据,主要通过 V$视图访问。
2、MMON 进程定期自动以快照(snapshot)将保存在内存中的 AWR 数据,转存到磁
盘。这些数据主要通过 DBA_*视图访问。
由于全部保存 ASH 中的信息是非常耗费时间和空间的,所以 AWR 采用的策略是:
MMON 进程每小时对 ASH 进行采样一次,并将信息保存到磁盘中,如内存不足,ASH 
BUFFER 满的话 MMNL 进程就会主动写出,并保留 7 天,7 天后旧的记录才会被覆盖。这
 Oracle 运维最佳实践-下
数据库运维 Kinghow@hotmail.com 第 13 页(共 4313 页)
些采样信息被保存在表 wrh$_active_session_history 中。
SELECT pool, name, bytes / 1024 / 1024
 FROM v$sgastat
WHERE name LIKE '%ASH %';
POOL NAME BYTES/1024/1024
shared pool ASH buffers 15.5
其实,AWR 记录的信息不仅是 ASH,还可以收集到数据库运行的各方面统计信息和
等待信息,用以诊断分析。AWR 的采样方式是,以固定的时间间隔为其所有重要的统计信
息和负载信息执行一次采样,并将采样信息保存在 AWR 中。可以这样说:ASH 中的信息被
保存到了 AWR 中的视图 wrh$_active_session_history 中。ASH 是 AWR 的真子集。
AWR 用几个表来存储采集的性能统计数据,所有的表都存储在 SYSAUX 表空间中
的 SYS 模式下,并且以 WRM$_*(5 个) 和 WRH$_*(94 个)的格式名。 WRM$_*这种
类型存储元数据信息(如检查的数据库和采集的快照), WRH$_*这种类型保存实际采集的
统计数据。H 代表“历史数据 (historical)”,而 M 代表“元数据 (metadata)”。在这些表上
构建了几种带前缀 DBA_HIST_ 的视图(dba_hist_snapshot,dba_hist_baseline 等),这些视图
可以用来编写您自己的性能诊断工具。
查询所有在 DBA_HIST 开头的数据字典:
SELECT *
 FROM dict
WHERE table_name LIKE 'DBA_HIST%';
2.1.1.1配置 AWR
2.1.1.1.1修改快照收集间隔和保存时间
默认情况下,AWR 每隔 1 小时自动收集一个系统负载快照,并且此快照默认保存 7 天 (11G 8 天)。
查看当前的缺省设置,可以使用下面的语句:
SELECT snap_interval, retention FROM dba_hist_wr_control;
修改快照的收集间隔为 2 小时,保存时间为 14 天:
execute dbms_workload_repository.modify_snapshot_settings
(interval => 120,retention => 14*24*60);
手工快照采集
exec dbms_workload_repository.create_snapshot;
RAC 只需在一个节点采集快照,Oracle 将自动在所有节点产生时间几乎一致,snap ID
号相同的快照。
关闭 AWR:
把 interval 设为 0 则关闭自动捕捉快照

 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐