OracleDBA日常工作手册
Oracle DBA日常工作手册
概述 .................................................................................................................................................. 2
第一章 . 事前阶段 ........................................................................................................................ 3
一 、 日常工作-每天应做工作内容 ................................................................................... 3
1、工作内容-日常环境监控 ......................................................................................... 3
1.1系统运行环境监控 ............................................................................................. 3
1.2数据库运行状况监控 ......................................................................................... 3
2、工作内容-日常性能监控 ......................................................................................... 4
2.1 间隔一段时间使用操作系统top等工具监控系统资源动态运行状况 ....... 4
2.2间隔一段时间对数据库性能进行监控 ............................................................ 4
3、工作内容-日常数据库管理 ................................................................................... 13
3.1一天内间隔一定时间运行 ............................................................................... 13
3.2 每天工作结束后、系统空闲时运行 ............................................................. 25
二 、日常工作-每隔一周工作内容 ................................................................................... 52
1. 文件整理工作 ............................................................................................................ 52
2. 数据库全量备份 ........................................................................................................ 52
2.1 Oracle 9i RMAN自动化脚本方式全量备份 ................................................ 52
2.2 Oracle 10g OEM 图形方式创建RMAN全量备份数据库任务 ..................... 52
3. 根据一周数据增长率分析预留数据文件下一周所需增长空间 ............................ 53
3.1 SQL脚本方式查看 .......................................................................................... 53
3.2 Oracle 9i OEM 数据文件管理 ..................................................................... 54
3.3 Oracle 10g OEM 数据文件管理 ................................................................... 55
4. 索引使用情况及碎片分析 ........................................................................................ 55
4.1表包含的索引及相关列检查 .......................................................................... 55
4.2自动化脚本方式对索引进行碎片分析 .......................................................... 56
4.3打开索引自动监控开关 .................................................................................. 56
5. 对用户所有表、索引进行统计分析 ........................................................................ 57
5.1 查询EAS用户所有表、索引的最新统计分析时间 ..................................... 57
5.2 自动化脚本方式对所有表、索引统计分析 ................................................. 57
5.3 Oracle 10g OEM图形化自定义对所有表、索引统计分析的自动化调度任
务 ............................................................................................................................. 57
6. 导出表、索引最新统计分析数据 ............................................................................ 63
7. 性能报告分析 ............................................................................................................ 64
三 、 日常工作-每月应做工作内容 ................................................................................. 64
1. 性能全面分析 ............................................................................................................ 64
全面分析一次STATSPACK报告 ............................................................................. 64
空间使用增长的全面分析 ..................................................................................... 64
2. 备份数据转备 ............................................................................................................ 64
四 日常工作-数据库第一次安装部署后需做的工作 ....................................................... 64
1. Statspack-系统快照采集工具初始化 .................................................................. 64
2. 创建统计信息导出表 ................................................................................................ 65
3. 运行EAS用户下所有表、索引统计分析,导出基准统计信息 ............................ 65
4. 创建Oracle10g 逻辑备份dump文件存放目录 ..................................................... 65
第二章 事中阶段 ........................................................................................................................... 66
一、Oracle数据库出现问题时需掌握的相关信息 ............................................................ 66
1. 问题症状描述 ............................................................................................................ 66
2. 问题在什么地方出现 ................................................................................................ 66
3. 问题在什么时间出现 ................................................................................................ 66
4. 问题在什么条件下出现 ............................................................................................ 66
5. 问题涉及的范围 ........................................................................................................ 67
6. 问题是否能重现 ........................................................................................................ 67
7. 数据库运行环境软、硬件基本信息 ........................................................................ 67
8. Oracle性能相关 ......................................................................................................... 67
二、Oracle数据库问题的解决途径 .................................................................................... 68
概述
该文档主要目的是降低现场实施人员及用户Oracle数据库的管理难度,提高Oracle数据库技术能力,文档针对Oracle9i、10g两个版本提供了一套完整的Oracle数据库监控、管理的思路、方法步骤,依照该手册进行Oracle数据库的日常工作,能有效的把握Oracle后台数据库的整体运行健康状况,通过收集相关重要信息分析,能很好的防范即将出现的系统风险,系统出现问题后尽快的定位问题,现场解决一部分常规数据库问题。对其它专业要求比较强的数据库问题,也能为后续Oracle专家深入分析、诊断问题提供规范、完整的信息。
文档按问题处于的阶段分两部分-事前阶段、事中阶段,事前阶段描述了每天、每周末、每月末针对数据库所需进行的管理工作,如:日常监控,包括有环境监控、数据库运行状况监控、性能监控;日常数据库管理,包括:系统运行快照采集、表空间管理、数据库备份恢复、表、索引统计分析、TOP会话、SQL执行计划信息查看等。涉及有相关图形化管理工具使用方法、数据库自动脚本、命令使用方法。事中阶段描述了数据库发生问题时处理思路,需要收集哪些相关信息。
第一章. 事前阶段
一、 日常工作-每天应做工作内容
1、工作内容-日常环境监控
1.1系统运行环境监控
查看Oracle 数据文件、控制文件、联机日志及归档日志存放的文件系统或裸设备空间使用情况。
检测操作系统CPU、内存、交换区、I/O配置状况
1.2数据库运行状况监控
1.2.1 外部
检查Oracle实例核心后台进程是否都存在、状态是否正常
查看数据库实例是否能正常连接、访问
1.2.2 内部
2、工作内容-日常性能监控
2.1 间隔一段时间使用操作系统top等工具监控系统资源动态运行状况
2.2间隔一段时间对数据库性能进行监控
2.2.1 Oracle 9i 图形工具-Performance Manager监控顶层会话及顶层SQL
1. 打开OEM控制台,选中要监控的数据库。
2. 工具中选择 Diagnostic Pack-Performance Manager,也可直接选中Top Session
或Top SQL。
Oracle9i 的Performance Manager工具监控内容主要有:内存的使用情况,IO情况,Oracle数据库进程情况,sql语句运行情况等,主界面如下:
可以通过顶层会话下钻获取到相关SQL执行计划等信息,也可以直接查看TopSql选项获取当前执行最频繁、消耗资源最多的SQL语句
在数据页签下面列出了监控的选项列表,可以根据各类选项对SQL语句进行排序。 选中相关SQL语句,单击右键选择“下钻”到“解释计划”查看执行计划:
执行计划显示如下:
2.2.2 Oracle10g OEM工具监控顶层会话及获取SQL详细信息 登录Oracle10g OEM,选择性能 - 其它监视链接:顶级活动
点击顶级会话中的会话ID
点击SQL ID,查看该顶级会话中SQL的详细信息
点击计划标签,查看该SQL语句的详细执行计划
浏览该顶层会话对应SQL语句的详细信息
2.2.3 字符界面下Sql语句及用户进程信息采集
3、工作内容-日常数据库管理
3.1一天内间隔一定时间运行
3.1.1检查警告日志文件中最新错误信息
3.1.2系统运行状况快照采集
每天根据实际情况,在以下三个阶段手工运行Statspack快照采集,输出快照报表: 正常工作压力下
每天业务最高峰期
特殊业务运行阶段
3.1.2.1 Oracle 9i自动化脚本方式快照采集
创建当前时间点快照
如需采集当前数据库运行状况快照,取20分钟间隔两次运行该脚本。
输出最近两个快照时间点之间的快照信息报表 自动产生最近两个快照时间点统计信息快照脚本:statspack_auto_report.sh
#!/bin/sh
# creator: james_jiang
# function:get statpack report
echo " Auto create statspack snapshot!"
SQLPLUS=$ORACLE_HOME/bin/sqlplus
LOGFILE=$ORACLE_HOME/spreport.log
REPFILE=$ORACLE_HOME/spreport.lst
$ORACLE_HOME/bin/sqlplus -S perfstat/perfstat
SET ECHO OFF
SET HEADING OFF
SET FEEDBACK OFF
SET PAGESIZE 0
SET LINESIZE 1000
SET TRIMSPOOL ON
SPOOL $LOGFILE
select SNAP_ID from (select SNAP_ID from stats\$snapshot where INSTANCE_NUMBER=1 order by SNAP_TIME desc) where rownum
SPOOL OFF;
set echo on
set feedback on
set heading on
exit
EOF
line1=`tail -1 $LOGFILE`
line2=`head -1 $LOGFILE`
echo "line1 is"$line1
echo "line2 is"$line2
$ORACLE_HOME/bin/sqlplus -S perfstat/perfstat
define begin_snap=$line1
define end_snap=$line2
define report_name=$REPFILE
@?/rdbms/admin/spreport.sql
echo "Auto create statspack snapshot successfully!"
exit
EOF
3.1.2.2 Oracle 10g OEM图形管理工具实现系统快照采集
自动化脚本执行快照收集主要是Oracle9i版本的使用方式,Oracle 10g OEM图形工具自动执行快照采集,缺省1小时收集一次,可以根据实际情况修改收集间隔时间、降低对系统性能影响。
系统快照自动收集时间、间隔、保留期限设置
登录Oracle10g OEM,选择管理 - 自动工作量档案库
点击编辑,查看或修改快照收集时间及间隔
Oracle10g缺省系统快照每隔一小时执行一次,保留最近15天的所有快照,可根据实际情况修改调整,点确定后保存所做修改。
创建当前时间点系统快照
点击管理快照和保留的快照集下面的当前快照ID
选择创建保留快照集,点击创建
选择“是”开始执行快照创建
快照在当前时间点成功创建。
输出两个快照时间点之间的快照信息报表
修改原来“创建保留的快照集”为“查看报告”,选择起始快照号,点击创建
选择结束快照号,点击“确定”
开始创建两个快照时间点之间的所有统计信息报告
另存该输出快照报告为HTML文件
注:生成的统计信息快照报告放在专门目录下,定期对其整理、分析,作为EAS数据库运行整体状况及问题诊断的依据。
3.2 每天工作结束后、系统空闲时运行
3.2.1表空间使用率
3.2.1.1 SQL脚本方式查看
3.2.1.2 图形界面查看表空间使用率
Oracle 9i OEM 表空间管理
Oracle 10g OEM表空间管理
登录OEM后选择管理 - 表空间
3.2.2数据库备份及日志清理
数据库备份主要提供两种方式,物理备份及逻辑备份,物理备份主要使用Oracle RMAN工具,逻辑备份主要使用Oracle导出工具Exp及Expdp。
Oracle 物理备份(RMAN)
该方式下周一到周五每天做一次增量备份,并检查备份是否正确,同时清理归档日志。
3.2.2.1 Oracle 9i RMAN自动化脚本增量备份
该命令可设置为crontab(unix/linux),bat批处理任务(Windows),在每天特定的时间点自动运行。
注:上述脚本中涉及的文件路径需根据现场环境具体情况进行相应修改。
3.2.2.2 Oracle10g OEM图形化方式设置RMAN备份自动执行任务
RMAN备份主要参数设置
登录10g OEM,选择维护 - 备份设置
磁盘设备备份路径、并行度指定(根据服务器cpu个数匹配)
备份策略设置
主要是指定备份磁盘位置及备份保留时间,下图设置中为周备份策略考虑,保留最近7天备份。
两种RMAN自动调度备份策略
1) 使用Oracle建议的自动调度备份策略 选择维护-调度备份
选择“调度Oracle建议的备份”
选择备份目标介质,缺省备份到磁盘介质
该备份策略内容描述
设置该策略执行数据库全量或增量备份的调度时间
2) 自定义RMAN自动备份策略 选择“调度定制备份”
选择备份类型、模式、归档日志、过时备份清理策略
备份目标介质设置(缺省使用前面“备份设置”中设置的参数)
备份自动执行的调度时间设置(通常设置在系统空闲时进行,如晚上12点过后)
备份设置信息复查,确定后提交作业
通过查看作业可以了解备份任务进展情况。
3) 查看当前数据库RMAN备份信息
选择维护-备份/恢复中“备份报告”可以查看所有备份执行情况
注:前面描述的是数据库全量备份的调度策略设置,增量备份的调度策略设置方法类似,只需要在备份类型中选择增量备份即可。设置完成后EAS数据库自动备份策略为一周一次全量备份,在星期六晚上12点进行。周一到周五每天晚上12点执行一次增量备份,保留最近7天备份,过期备份、归档日志自动删除。建议现场每周周末将RMAN备份的文件脱机保存。(防止服务器存储介质损坏导致数据丢失)
Oracle逻辑备份(EXP/EXPDP)
1) 操作系统级设置自动备份任务
2) 逻辑备份脚本
逻辑备份脚本 eas_expdp_MontoSat.sh(星期一到星期六)
#!/bin/sh
#====================================================
# SCRIPT : eas_expdp_MontoSat.sh
# AUTHOR : James_jiang
# Date : 2007-10-10
# REV : 1.0
# PLATFORM : AIX Linux Solaris HpUnix
# PURPOSE : This script is used to run logic backup.
# Copyright(c) 2007 Kingdee Co.,Ltd.
# All Rights Reserved
#=====================================================
DAY=`date +%u`
FILE_TARGET=eas_expdp_`expr $DAY'.dmp
FILE_LOG=eas_expdp_`expr $DAY`.log
export FILE_TARGET FILE_LOG
#导出的Oracle实例名,尤其是服务器存在多个实例时需指定
ORACLE_SID=orcl
ORACLE_BASE=/home/app/oracle
ORACLE_HOME=$ORACLE_BASE/oracle/product/10.2.0/db_1
export ORACLE_SID ORACLE_BASE ORACLE_HOME
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
expdp system/oracle schemas=nm directory=eas_expdp_dir dumpfile=$FILE_TARGET logfile=$FILE_LOG job_name=cases_export parallel=4
逻辑备份脚本 eas_expdp_Sunday.sh(星期日)
附: 上述脚本中导出路径 /home/oracle/10gautoexpdp需根据现场实际情况修改,备份脚本eas_expdp_MontoSat.sh、eas_expdp_Sunday.sh需赋予可执行权限。Expdp导出的EAS用户(schemas=用户名)根据现场EAS用户名修改。Expdp导出目录需要创建,具体方法请参看本文档 四 日常工作-数据库第一次安装部署后需做的工作。建议现场每周周末将逻辑备份的dmp文件脱机保存。
(防止服务器存储介质损坏导致数据丢失)
3.2.3根据监控信息,对需要的表、索引统计分析
3.2.3.1 Oracle9i 自动化脚本方式对表、索引进行统计分析
Oracle9i缺省不对表进行改动监控,如果需要根据监控信息来判断是否需对表进行重新统计分析,则需要手工打开表监控开关,如下:
3.2.3.2 Oracle10g 自动化任务表、索引统计分析方式
Oracle10g 缺省自动对所有表变动进行监控,并自动执行所有用户统计分析,可以禁止该缺
Oracle10g OEM图形工具自定义配置统计分析任务
登录OEM,选择管理-统计信息管理-管理优化程序统计信息
选择“操作”-搜集优化程序统计信息
选择“方案”,点击下一步
设置用户统计信息分析自动执行的时间调度
示例中设置的是从2007-03-29开始,每天晚上12点自动执行用户NMEAS统计信息分析,
用户统计信息分析任务设置完整栏目显示
提交完成任务设置