
(企业管理手册)Oracle管理工作手册.doc
39页ORACLE管理工作手册 EAS产品支持部 蒋俊 请注意:本文件只作为产品介绍之用,不属于您与金蝶签署的任何协议本文件仅包括金蝶既定策略、产品及功能方面的信息,不能以本文件作为要求金蝶履行商务条款、产品策略以及开发义务的依据本文件内容可能随时变更,恕不另行通知前 言概述该文档主要目的是降低现场实施人员及用户Oracle数据库的管理难度,提高Oracle数据库技术能力,文档针对Oracle9i、10g两个版本提供了一套完整的Oracle数据库监控、管理的思路、方法步骤,依照该手册进行Oracle数据库的日常工作,能有效地把握Oracle后台数据库的整体运行健康状况,通过收集相关重要信息分析,能很好地防范即将出现的系统风险,系统出现问题后尽快地定位问题,现场解决一部分常规数据库问题对其它专业要求比较强的数据库问题,也能为后续Oracle专家深入分析、诊断问题提供规范、完整的信息文档按问题处于的阶段分两部分-事前阶段、事中阶段,事前阶段描述了每天、每周末、每月末针对数据库所需进行的管理工作,如:日常监控,包括有环境监控、数据库运行状况监控、性能监控;日常数据库管理,包括:系统运行快照采集、表空间管理、数据库备份恢复、表、索引统计分析、TOP会话、SQL执行计划信息查看等。
涉及有相关图形化管理工具使用方法、数据库自动脚本、命令使用方法事中阶段描述了数据库发生问题时的处理思路,需要收集哪些相关信息适用范围适于需求分析、设计、实现和测试、实施所有阶段适于架构设计师、系统设计师、开发工程师和项目经理适于EAS产品所有版本约定符号约定在本文中可能出现下列标志,它们所代表的含义如下符号说明表示有潜在风险,如果忽视这些文本,可能导致操作错误、数据丢失、设备性能降低或不可预知的结果表示可以帮助您获取更多相关信息或提示您通过其它方式也可以获得相同结果强调或补充说明所描述的信息内容约定本处对文中通用信息作如下约定 l $EAS_HOME表示EAS服务器安装的根目录,即安装过程中输入的本地路径 l $BOS_HOME表示BOS工具的安装根目录,即安装过程中输入的本地路径目 录概述 2适用范围 2约定 21 事前阶段 61.1 日常工作-每天应做工作内容 61.1.1 工作内容-日常环境监控 61.1.2 工作内容-日常性能监控 81.1.3 工作内容-日常数据库管理 181.2 日常工作-每隔一周工作内容 601.2.1 文件整理工作 601.2.2 数据库全量备份 601.2.3 根据一周数据增长率分析预留数据文件下一周所需增长空间 611.2.4 索引使用情况及碎片分析 641.2.5 对用户所有表、索引进行统计分析 661.2.6 导出表、索引最新统计分析数据 721.2.7 性能报告分析 731.3 日常工作-每月应做工作内容 731.3.1 性能全面分析 731.3.2 备份数据转备 731.4 日常工作-数据库第一次安装部署后需做的工作 731.4.1 Statspack-系统快照采集工具初始化 731.4.2 创建统计信息导出表 741.4.3 运行EAS用户下所有表、索引统计分析,导出基准统计信息 741.4.4 创建Oracle10g 逻辑备份dump文件存放目录 752 事中阶段 752.1 Oracle数据库出现问题时需掌握的相关信息 752.1.1 问题症状描述 752.1.2 问题在什么地方出现 752.1.3 问题在什么时间出现 762.1.4 问题在什么条件下出现 762.1.5 问题涉及的范围 762.1.6 问题是否能重现 772.1.7 数据库运行环境软、硬件基本信息 772.1.8 Oracle性能相关 772.2 Oracle数据库问题的解决途径 771 事前阶段1.1 日常工作-每天应做工作内容1.1.1 工作内容-日常环境监控1) 系统运行环境监控查看Oracle 数据文件、控制文件、联机日志及归档日志存放的文件系统或裸设备空间使用情况。
重点关注Oracle软件及数据文件所在卷空间使用率:su - oracleAIX、linux查看磁盘空间:df –kv HP-UX查看磁盘空间:bdf检测操作系统CPU、内存、交换区、I/O配置状况AIX :CPU、内存、网络、IO、进程、页面交换:topasLinux、HP-UX :CPU、内存、网络、IO、进程、页面交换: top2) 数据库运行状况监控外部检查Oracle实例核心后台进程是否都存在、状态是否正常$ ps -ef|grep ora_查看数据库实例是否能正常连接、访问SQL> select status from v$instance;监听是否正常$ lsnrctl status内部是否有表空间出现故障SQL> select tablespace_name,status from dba_tablespaces;日志文件是否正常SQL> Select * from v$log;SQL> Select * from v$logfile;1.1.2 工作内容-日常性能监控1) 间隔一段时间使用操作系统top等工具监控系统资源动态运行状况CPU、内存、网络、IO、进程、页面交换等主要活动监控:: top、topas、vmstat、iostat等2) 间隔一段时间对数据库性能进行监控Oracle 9i 图形工具-Performance Manager监控顶层会话及顶层SQL1. 打开OEM控制台,选中要监控的数据库。
2. 工具中选择 Diagnostic Pack-Performance Manager,也可直接选中Top Session或Top SQLOracle9i 的Performance Manager工具监控内容主要有:内存的使用情况,IO情况,Oracle数据库进程情况,sql语句运行情况等,主界面如下: 可以通过顶层会话下钻获取到相关SQL执行计划等信息,也可以直接查看TopSql选项获取当前执行最频繁、消耗资源最多的SQL语句:在数据页签下面列出了监控的选项列表,可以根据各类选项对SQL语句进行排序选中相关SQL语句,单击右键选择“下钻”到“解释计划”查看执行计划: 执行计划显示如下:Oracle10g OEM工具监控顶层会话及获取SQL详细信息登录Oracle10g OEM,选择性能-其它监视链接:顶级活动点击顶级会话中的会话ID 点击SQL ID,查看该顶级会话中SQL的详细信息点击计划标签,查看该SQL语句的详细执行计划浏览该顶层会话对应SQL语句的详细信息字符界面下Sql语句及用户进程信息采集l 通过视图查看当前主要影响性能SQL语句语法模版SELECT * FROM (SELECT hash_value,address,substr(sql_text,1,40) sql, [list of columns], [list of derived values] FROM [V$SQL or V$SQLXS or V$SQLAREA] WHERE [list of threshold conditions for columns] ORDER BY [list of ordering columns] DESC)WHERE rownum <= [number of top SQL statements];实际举例SELECT * FROM (SELECT hash_value,address,substr(sql_text,1,40) sql, buffer_gets, executions, buffer_gets/executions "Gets/Exec" FROM V$SQLAREA WHERE buffer_gets > 100000 AND executions > 10 ORDER BY buffer_gets DESC)WHERE rownum <= 10;l 跟踪用户进程获取统计信息获取要跟踪的用户进程SQL> select sid,serial#,username from v$session;开始跟踪-结束跟踪Exec dbms_system.set_ev(9,437,10046,8,‘用户名');Exec dbms_system.set_ev(9,437,10046,0,‘用户名');生成的跟踪文件在user_dump_dest目录下 tkprof工具输出跟踪报表信息tkprof /opt/oracle/admin/ytcw/udump/ytcw_ora_1026.trc /opt/oracle/admin/ytcw/udump/ytcw_ora_1026.prf aggregate=yes sys=no sort=fchela1.1.3 工作内容-日常数据库管理1) 一天内间隔一定时间运行检查警告日志文件中最新错误信息Linux、Unix系列平台:vi alertsid.log输入:“/ORA-” 回车进行查找Windows平台下使用常用的文本编辑工具即可查看搜索警告日志文件中Oracle错误信息系统运行状况快照采集每天根据实际情况,在以下三个阶段手工运行Statspack快照采集,输出快照报表:l 正常工作压力下l 每天业务最高峰期l 特殊业务运行阶段Oracle 9i自动化脚本方式快照采集创建当前时间点快照如需采集当前数据库运行状况快照,取20分钟时间间隔运行该脚本两次自动执行statspack快照脚本:statspack_auto_exec.sh#!/bin/sh# creator: james_jiang# function: produce statpack snapshotecho "Auto Execute Statspack"$ORACLE_HOME/bin/sqlplus /nolog <
