ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:20.74KB ,
资源ID:28380247      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/28380247.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(利用Oracle数据库存储和分析Unix操作系统的性能.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

利用Oracle数据库存储和分析Unix操作系统的性能.docx

1、利用Oracle数据库存储和分析Unix操作系统的性能文章来源: 王朝网络网友评论转载本文标签: Oracle Unix 分析 利用 存储 性能 操作系统 数据利用Oracle数据库存储和分析Unix操作系统的性能 利用Oracle数据库存储和分析Unix操作系统的性能 作者简介:张乐奕,通常使用的网名为kamus,也曾用过seraphim,现在任职于北京某大型软件公司,Oracle数据库DBA,主要负责证券行业的核心交易系统数据库管理及维护工作。热切关注Oracle技术和相关操作系统技术,出没于各大数据库技术论坛,目前是中国最大的Oracle技术论坛的数据库管理版版主。我的邮件地址:kamu

2、s我的MSN: kamusis期望与各位朋友讨论Oracle相关技术。本人所有文章,不经许可,不得转载。目录一、 前言. 4二、 思路. 4三、 vmstat脚本及步骤. 41. 安装statspack. 42. 创建stats$vmstat表. 43. 创建vmstat目录. 64. 创建get_vmstat.ksh脚本. 65. 创建run_vmstat.ksh脚本. 86. 创建crontab作业,定时执行run_vmstat.ksh脚本. 97. 分析数据. 91) 异常报告. 92) 每小时趋势报告. 133) 周趋势报告. 144) 长期趋势报告. 14四、 使用Excel生成趋势

3、图. 15五、 参考资料. 15一、 前言作为UNIX系统中的Oracle数据库管理员,时刻监控操作系统的性能无疑是非常重要的,幸运的是UNIX系统提供了大量的监控命令,比如vmstat, iostat, sar, top等等,这些监控命令均以字符界面输出结果,再加上UNIX系统中shell的强大分析功能,这样我们只需要编写一些脚本就可以实现自动的后台监控,当有问题的时候再自动发送邮件给DBA。其实相类似的一些监控脚本可能已经随处可见了,但是本文提到的一个新的思路,就是利用Oracle数据库的statspack空间来存储监控的结果,再利用数据库天生的检索优势,这样比以往靠shell分析甚或是人

4、工分析生成的监控结果文件要更加轻松,智能,同时也能实现更持久和更广泛的监控。本文大部分素材来源自Donald K. Burleson的Oracle9i UNIX Administration Handbook,但是对于脚本中的一些错误和不合理的地方作了修改,并且添加了一些功能,本文的测试环境全部基于Sun Solaris 8 Sparc 64bit + Oracle9.2.0.5。本文第一版主要以监控内存消耗和CPU等待的vmstat命令为例,将陆续添加iostat等其它命令的监控脚本。二、 思路首先安装statspack,然后手工创建一个用于存储vmstat命令输出结果的表,再作一个shel

5、l定时执行vmstat,将结果全部插入数据库表中,最后就是通过SQL定时分析表中的数据,超过预先指定的门限值就告警。同时根据表中的数据,我们还能作出系统性能的趋势报告。三、 vmstat脚本及步骤1. 安装statspacksqlplus “/ as sysdba”SQL ?/rdbms/admin/spcreate.sql按照提示设定perfstat用户的密码之后,由于是10g,我选择了SYSAUX表空间作为perfstat用户的默认表空间,而没有另行创建表空间。2. 创建stats$vmstat表SQL connect perfstat/perfstatSQL create_vmstat_

6、tab.sql# create_vmstat_tab.sql drop table stats$vmstat;create table stats$vmstat( start_date date, duration number, server_name varchar2(20), running_queue number,waiting_queue number,swap_in number,swap_out number, kbytes_page_in number, Kbytes_page_out number,page_scan number, user_cpu number, sys

7、tem_cpu number, idle_cpu number, wait_cpu number)tablespace sysauxstorage (initial 10m next 1m pctincrease 0);comment on column stats$vmstat.start_date is 监控时间;comment on column stats$vmstat.duration is 监控时长;comment on column stats$vmstat.server_name is 服务器名称;comment on column stats$vmstat.running_q

8、ueue is 执行队列;comment on column stats$vmstat.waiting_queue is 等待队列;comment on column stats$vmstat.swap_in is 每秒平均交换进LWPs数;comment on column stats$vmstat.swap_out is 交换出进程数;comment on column stats$vmstat.kbytes_page_in is 换页进字节(K);comment on column stats$vmstat.kbytes_page_out is 换页出字节(K);comment on c

9、olumn stats$vmstat.page_scan is 换页守护进程扫描页数;comment on column stats$vmstat.user_cpu is 用户操作占用的CPU;comment on column stats$vmstat.system_cpu is 系统操作占用的CPU;comment on column stats$vmstat.idle_cpu is CPU空闲率;comment on column stats$vmstat.wait_cpu is CPU等待率(AIX独有);3. 创建vmstat目录在oracle用户主目录下创建用于存放所有相关脚本的v

10、mstat目录。$ cd$ mkdir vmstat4. 创建get_vmstat.ksh脚本改脚本用于定时执行vmstat命令并且将结果存入数据库。# get_vmstat.ksh#!/bin/ksh#-# 首先设定环境变量,根据实际环境修改. . . .#-ORACLE_SID=kamusdbexport ORACLE_SIDORACLE_HOME=cat /var/opt/oracle/oratab|grep $ORACLE_SID:|cut -f2 -d:export ORACLE_HOMEPATH=$ORACLE_HOME/bin:$PATHexport PATHSERVER_NAM

11、E=uname -a|awk print $2typeset -u SERVER_NAMEexport SERVER_NAME#-# 每5分钟运行一次vmstat(300秒),可以根据实际情况修改 . . . .#-SAMPLE_TIME=300#-# 脚本一旦运行将不会停止,除非关闭操作系统 . . . .# -S参数表示监控swap空间的情况,报告si,so列# msg$中的$表示一个任意2位数字,系统自动生成#-while truedo vmstat S $SAMPLE_TIME 2 /tmp/msg$#-# Solaris系统的vmstat没有wait CPU统计,所以我们在那一列中存

12、入0# $1, $2, $6, $7等数字分别表示vmstat输出中的第几列,# 每个Unix系统中的vmstat输出可能都不一样,# 所以修改这些列号,就可以应对不同的操作系统。#-cat /tmp/msg$|sed 1,3d | awk printf(%s %s %s %s %s %s %s %s %s %s n, $1, $2, $6, $7, $8, $9, $12, $20, $21, $22) | while read RUNQUE WAITQUE SWAPIN SWAPOUT PAGE_IN PAGE_OUT PAGE_SCAN USER_CPU SYSTEM_CPU IDLE_

13、CPU do $ORACLE_HOME/bin/sqlplus perfstat/perfstat /dev/null fielseif $vmstat_num -le 0 then nohup $SCRIPT_PATH/get_vmstat.ksh /dev/null 2&1 &fifi6. 创建crontab作业,定时执行run_vmstat.ksh脚本 该作业每半小时运行一次。$ crontab l oracle.cron$ echo 00,30 * * * * /export/home/oracle/vmstat/run_vmstat.ksh /export/home/oracle/v

14、mstat/run.lst 2&1 oracle.cron$ crontab oracle.cron7. 分析数据至此已经完成了定时运行vmstat和在数据库中存储vmstat结果的步骤。自然,仅仅是搜集了统计信息是远远不够的,下面我们要分析搜集来的信息,产生操作系统的性能报告。将报告分为以下几类,分别用脚本实现。异常报告:显示超过了门限值的时间段(vmstat_alert.ksh + vmstat_alert.sql)每小时趋势报告:显示一天内每小时的系统平均利用情况(rpt_vmstat_hr.sql)周趋势报告:显示每天的系统平均利用情况(rpt_vmstat_dy.sql)长期趋势报告

15、:显示系统性能的一个长期趋势线(rpt_vmstat.sql)1) 异常报告# vmstat_alert.sqlREM -REM 该SQL用于报告Oracle环境中每个服务器的异常情况。REM 根据get_vmstat.ksh脚本得到的信息,报告每个小时的平均值。REM DBA发现异常时间段,则可以深入检查每5分钟的详细数据。REM 在这个脚本中接受一个参数,表示需要报告的时间跨度。REM 对于runing queue的门限值应该设置为CPU数,REM 表示如果出现大量等待执行的任务就报警,这通常表示CPU负载过重。REM 对于page scan(sr)的门限值设置为1,REM 表示只要出现p

16、age daemon扫描页就报警,这通常表示内存不足。REM 对于CPU利用率,设置为70,表示超过70%以上的利用率才报警。REM 比如运行vmstat_alert 7REM 表示输出当前日期之前7天之内的执行队列大于4,REM sr大于1,CPU利用率超过70%的按照小时统计的报告。REM -set lines 80;set pages 999;set feedback off;set verify off;column my_date heading date hour format a20column c2 heading waitq format 9999column c3 head

17、ing pg_in format 9999column c4 heading pg_ot format 9999column c5 heading usr format 9999column c6 heading sys format 9999column c7 heading idl format 9999column c8 heading wt format 9999ttitle run queue CPUs|May indicate an overloaded CPU|When runqueue exceeds the number of CPUs| on the server, tas

18、ks are waiting for service.;selectserver_name,to_char(start_date,YY/MM/DD HH24) my_date,avg(running_queue) c2,avg(kbytes_page_in) c3,avg(kbytes_page_out) c4,avg(user_cpu) c5,avg(system_cpu) c6,avg(idle_cpu) c7fromperfstat.stats$vmstatWHERErunning_queue 4and start_date sysdate-&1group byserver_name,t

19、o_char(start_date,YY/MM/DD HH24)ORDER BYserver_name,to_char(start_date,YY/MM/DD HH24);ttitle page_scan 1|May indicate overloaded memory|Whenever Unix performs a page-in, the RAM memory | on the server has been exhausted and swap pages are being used.;selectserver_name,to_char(start_date,YY/MM/DD HH2

20、4) my_date,avg(running_queue) c2,avg(kbytes_page_in) c3,avg(kbytes_page_out) c4,avg(user_cpu) c5,avg(system_cpu) c6,avg(idle_cpu) c7fromperfstat.stats$vmstatWHEREpage_scan 1and start_date sysdate-&1group byserver_name,to_char(start_date,YY/MM/DD HH24)ORDER BYserver_name,to_char(start_date,YY/MM/DD H

21、H24);ttitle user+system CPU 70%|Indicates periods with a fully-loaded CPU subssystem.|Periods of 100% utilization are only a | concern when runqueue values exceeds the number of CPs on the server.;selectserver_name,to_char(start_date,YY/MM/DD HH24) my_date,avg(running_queue) c2,avg(kbytes_page_in) c

22、3,avg(kbytes_page_out) c4,avg(user_cpu) c5,avg(system_cpu) c6,avg(idle_cpu) c7fromperfstat.stats$vmstatWHERE(user_cpu + system_cpu) 70and start_date sysdate-&1group byserver_name,to_char(start_date,YY/MM/DD HH24)ORDER BYserver_name,to_char(start_date,YY/MM/DD HH24);# vmstat_alert.ksh#-# 可以将此shell加入cron中,每天7点运行#-#!/bin/ksh#-# 首先设定环境变量,根据实际环境修改. . . .# 接受一个参数输入,表示当前要报告的数据库SID#-ORACLE_SID=$1export ORACLE_SIDORACLE_HOME=cat /var/opt/oracle/oratab|grep $ORACLE_SID:|cut -f2 -d:export ORACLE_HOMEPATH=$ORA

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1