ORACLE数据库监控配置规范方案.docx
《ORACLE数据库监控配置规范方案.docx》由会员分享,可在线阅读,更多相关《ORACLE数据库监控配置规范方案.docx(9页珍藏版)》请在冰豆网上搜索。
ORACLE数据库监控配置规范方案
ORACLE数据库配置规范和监控清单
2015年12月
一、常规参数配置
1.1数据库最大连接数
参数:
processes
说明:
数据库用户最大连接数通过processes参数进行配置,默认值为300,该值表示能够同时连接到数据库的最大会话数,当连接数达到最大值,后续新增连接均会被拒绝。
修改命令:
altersystemsetprocesses=1000scope=spfile;
生效方式:
需重启实例生效。
1.2归档配置
参数:
archiveloglist
说明:
数据库开启归档,任何生产环境均应在归档方式下运行,从而达到可通过备份进行数据恢复要求,提高系统安全性
修改命令:
数据库启动至mount状态,执行alterdatabasearchivelog;
生效方式:
重启数据库设置生效
1.3最大文件数设置
参数:
db_files
说明:
该参数用于控制在扩容表空间时,数据文件能够达到的最大数量,默认值为200
修改命令:
altersystemsetdb_files=800scope=spfile;
生效方式:
重启数据库生效
1.4关闭回收站
参数:
recyclebin
说明:
如果回收站未关闭,则如果表对象被删除,将进入回收站,并不会释放占用的存储
修改命令:
altersystemsetrecyclebin=’off’scope=spfile;
生效方式:
重启实例生效
1.5控制文件配置
参数:
control_files
说明:
该参数用于指定在DB启动时,读取的控制文件来源,如果有多个控制文件,每个控制文件完全一致,生产系统建议至少为两组冗余,防止出现控制文件损坏后必须进行控制文件手工重建风险。
修改命令:
altersystemsetcontrol_files='/oradata/codmdb/control01.ctl','/oradata/codmdb/control02.ctl','/oradata/codmdb/control03.ctl'scope=spfile;
生效方式:
重启数据库生效
1.6白名单设置
参数:
sqlnet.ora文件
说明:
sqlnet.ora文件位于$ORACLE_HOME/network/admin目录下,该文件用于控制哪些主机IP能够连接至数据库服务器,防止DB遭受攻击。
修改命令:
visqlnet.ora加入如下两项:
TCP.VALIDNODE_CHECKING=yes
TCP.INVITED_NODES=(127.0.0.1,本机IP,IP1,IP2,IP3)
生效方式:
重新加载监听生效lsnrctlrelocatelistener_name
1.7闪回区设置
参数:
db_recovery_file_dest_size
db_recovery_file_dest
说明:
对于归档路径和归档空间大小,建议通过设置闪回区进行管理
修改命令:
altersystemsetdb_recovery_file_dest=’/archlog’scope=both;
altersystemsetdb_recovery_file_dest_size=100Gscope=both;
生效方式:
立即生效
control_files
1.8在线日志组
参数:
Select*fromv$log;查看在线日志组配置
说明:
为提高数据安全性,建议每组在线日志配置两个日志成员,避免单个日志出现故障后导致数据丢失风险。
修改命令:
alterdatabaseaddlogfilegroup4('/oradata/codmdb/redo04_1.log','/oradata/codmdb/redo04_2.log')size500M;
生效方式:
立即生效
1.9控制文件记录保留数
参数:
control_file_record_keep_time
说明:
该参数用于控制数据库中归档日志,备份信息等保留时长,以天为单位,默认为7天。
如果备份信息没有通过catalog库统一管理,则所有备份信息都记录在控制文件中,超出该时段备份记录可能被覆盖,导致DB在恢复时无法读取到备份片信息。
修改命令:
altersystemsetcontrol_file_record_keep_time=32scope=both;
生效方式:
立即生效
二、常用监控项
2.1数据库在用连接数
selectusername,count(*)fromv$sessiongroupbyusername;
所有连接数之和应不超过数据库processes设置的60%,防止出现业务峰值会话数增加,导致连接数爆满。
2.2监控数据库文件数
selectcount(*)fromdba_data_files;
避免出现数据库已添加文件数达到系统db_files最大值。
2.3表空间使用率
SELECTd.status"Status",
d.tablespace_name"Name",
d.contents"Type",
d.extent_management"Extent",
TO_CHAR(NVL(a.bytes/1024/1024,0),'99,999,990')"Size(M)",
TO_CHAR(NVL(a.bytes-NVL(f.bytes,0),0)/1024/1024,
'999,999,999')"Used(M)",
TO_CHAR(NVL((a.bytes-NVL(f.bytes,0))/a.bytes*100,0),
'990.00')"Used%"
FROMsys.dba_tablespacesd,
(selecttablespace_name,sum(bytes)bytes
fromdba_data_files
groupbytablespace_name)a,
(selecttablespace_name,sum(bytes)bytes
fromdba_free_space
groupbytablespace_name)f
WHEREd.tablespace_name=a.tablespace_name(+)
ANDd.tablespace_name=f.tablespace_name(+)
ANDNOT
(d.extent_managementlike'LOCAL'ANDd.contentslike'TEMPORARY')
UNIONALL
SELECTd.status"Status",
d.tablespace_name"Name",
d.contents"Type",
d.extent_management"Extent",
TO_CHAR(NVL(a.bytes/1024/1024,0),'99,999,999')"Size(M)",
TO_CHAR(NVL(t.bytes,0)/1024/1024,'999,999,999')"Used(M)",
TO_CHAR(NVL(t.bytes/a.bytes*100,0),'990.00')"Used%"
FROMsys.dba_tablespacesd,
(selecttablespace_name,sum(bytes)bytes
fromdba_temp_files
groupbytablespace_name)a,
(selecttablespace_name,sum(bytes_cached)bytes
fromv$temp_extent_pool
groupbytablespace_name)t
WHEREd.tablespace_name=a.tablespace_name(+)
ANDd.tablespace_name=t.tablespace_name(+)
ANDd.extent_managementlike'LOCAL'
ANDd.contentslike'TEMPORARY'
ORDERBY7;
以上针对为数据文件非自动扩展表空间使用率情况统计,生产环境不建议使用自动扩展。
如果数据文件为自动扩展,在small表空间下,单个数据文件最大可扩展至32GB,可通过如下语句查询:
selects.tablespace_name,
t.total_MB,
t.total_MB-s.used_mbfree_mb,
round(s.used_mb/t.total_MB,4)*100use_precent
from(selecttablespace_name,sum(bytes)/1024/1024used_mb
fromdba_data_files
groupbytablespace_name)s,
(selecttablespace_name,count(*)*32*1024total_MB
fromdba_data_files
groupbytablespace_name)t
wheres.tablespace_name=t.tablespace_name;
2.4闪回区使用率
select*fromv$flash_recovery_area_usage;
该查询需要启用FRA区,如果未启用FRA区管理,则直接监控主机文件目录使用率。
2.5数据库等待事件
selects.SID,s.OSUSER,s.USERNAME,s.SQL_ID,s.EVENT,s.PROGRAM,s.BLOCKING_SESSION,s.LAST_CALL_ETfromv$sessionswheres.STATUS='ACTIVE'
andusernameisnotnull;
通过该语句可实时监控数据库中SQL执行效率和产生等待事件,其中EVENT列表示具体等待事件,LAST_CALL_ET列表示正在执行语句已执行时间,单位:
秒。
如果等待事件出现latch等待,dbfilescatteredread,readbyothersession等这类等待事件,则需分析具体语句,看是否存在效率提升的空间。
2.6告警日志监控
数据库alertlog记录了数据库的运行状态和日志信息,在一个运行良好的系统中,应该只会干净的出现在线日志切换记录,加强对alertlog巡检同时有利于发现数据库潜在风险,提前进行规避。
2.7灾备DataGuard同步监控
selectPROCESS,STATUS,THREAD#,SEQUENCE#fromv$managed_standby;
定期检查主库至DataGuard环境日志同步状态,如果出现gap,应及时进行人工干预和修复,避免灾备环境数据延迟。
2.8AWR采样报告分析
生产系统应定期提取awr报告进行性能分析和比对,保证数据库在最优环境下运行。
数据库性能指标命中率:
语句执行效率分析:
关于AWR报告具体解读可参考附件《STATSPACK报告解读.doc》,AWR报告是STATSPACK报告的升级版,提供了更全面的信息用于进行性能分析。