Oracle管理工作手册.docx
- 文档编号:9242802
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:61
- 大小:3.56MB
Oracle管理工作手册.docx
《Oracle管理工作手册.docx》由会员分享,可在线阅读,更多相关《Oracle管理工作手册.docx(61页珍藏版)》请在冰豆网上搜索。
Oracle管理工作手册
ORACLE管理工作手册
EAS产品支持部蒋俊
请注意:
本文件只作为产品介绍之用,不属于您与金蝶签署的任何协议。
本文件仅包括金蝶既定策略、产品及功能方面的信息,不能以本文件作为要求金蝶履行商务条款、产品策略以及开发义务的依据。
本文件内容可能随时变更,恕不另行通知。
前言
概述
该文档主要目的是降低现场实施人员及用户Oracle数据库的管理难度,提高Oracle数据库技术能力,文档针对Oracle9i、10g两个版本提供了一套完整的Oracle数据库监控、管理的思路、方法步骤,依照该手册进行Oracle数据库的日常工作,能有效地把握Oracle后台数据库的整体运行健康状况,通过收集相关重要信息分析,能很好地防范即将出现的系统风险,系统出现问题后尽快地定位问题,现场解决一部分常规数据库问题。
对其它专业要求比较强的数据库问题,也能为后续Oracle专家深入分析、诊断问题提供规范、完整的信息。
文档按问题处于的阶段分两部分-事前阶段、事中阶段,事前阶段描述了每天、每周末、每月末针对数据库所需进行的管理工作,如:
日常监控,包括有环境监控、数据库运行状况监控、性能监控;日常数据库管理,包括:
系统运行快照采集、表空间管理、数据库备份恢复、表、索引统计分析、TOP会话、SQL执行计划信息查看等。
涉及有相关图形化管理工具使用方法、数据库自动脚本、命令使用方法。
事中阶段描述了数据库发生问题时的处理思路,需要收集哪些相关信息。
适用范围
适于需求分析、设计、实现和测试、实施所有阶段。
适于架构设计师、系统设计师、开发工程师和项目经理。
适于EAS产品所有版本。
约定
符号约定
在本文中可能出现下列标志,它们所代表的含义如下。
符号
说明
表示有潜在风险,如果忽视这些文本,可能导致操作错误、数据丢失、设备性能降低或不可预知的结果。
表示可以帮助您获取更多相关信息或提示您通过其它方式也可以获得相同结果。
强调或补充说明所描述的信息。
内容约定
本处对文中通用信息作如下约定
●$EAS_HOME表示EAS服务器安装的根目录,即安装过程中输入的本地路径。
●$BOS_HOME表示BOS工具的安装根目录,即安装过程中输入的本地路径。
目录
概述2
适用范围2
约定2
1事前阶段6
1.1日常工作-每天应做工作内容6
1.1.1工作内容-日常环境监控6
1.1.2工作内容-日常性能监控8
1.1.3工作内容-日常数据库管理18
1.2日常工作-每隔一周工作内容60
1.2.1文件整理工作60
1.2.2数据库全量备份60
1.2.3根据一周数据增长率分析预留数据文件下一周所需增长空间61
1.2.4索引使用情况及碎片分析64
1.2.5对用户所有表、索引进行统计分析66
1.2.6导出表、索引最新统计分析数据72
1.2.7性能报告分析73
1.3日常工作-每月应做工作内容73
1.3.1性能全面分析73
1.3.2备份数据转备73
1.4日常工作-数据库第一次安装部署后需做的工作73
1.4.1Statspack-系统快照采集工具初始化73
1.4.2创建统计信息导出表74
1.4.3运行EAS用户下所有表、索引统计分析,导出基准统计信息74
1.4.4创建Oracle10g逻辑备份dump文件存放目录75
2事中阶段75
2.1Oracle数据库出现问题时需掌握的相关信息75
2.1.1问题症状描述75
2.1.2问题在什么地方出现75
2.1.3问题在什么时间出现76
2.1.4问题在什么条件下出现76
2.1.5问题涉及的范围76
2.1.6问题是否能重现77
2.1.7数据库运行环境软、硬件基本信息77
2.1.8Oracle性能相关77
2.2Oracle数据库问题的解决途径77
1事前阶段
1.1日常工作-每天应做工作内容
1.1.1工作内容-日常环境监控
1)系统运行环境监控
查看Oracle数据文件、控制文件、联机日志及归档日志存放的文件系统或裸设备空间使用情况。
重点关注Oracle软件及数据文件所在卷空间使用率:
su-oracle
AIX、linux查看磁盘空间:
df–kv
HP-UX查看磁盘空间:
bdf
检测操作系统CPU、内存、交换区、I/O配置状况
AIX:
CPU、内存、网络、IO、进程、页面交换:
topas
Linux、HP-UX:
CPU、内存、网络、IO、进程、页面交换:
top
2)数据库运行状况监控
1外部
检查Oracle实例核心后台进程是否都存在、状态是否正常
$ps-ef|grepora_
查看数据库实例是否能正常连接、访问
SQL>selectstatusfromv$instance;
监听是否正常
$lsnrctlstatus
2内部
是否有表空间出现故障
SQL>selecttablespace_name,statusfromdba_tablespaces;
日志文件是否正常
SQL>Select*fromv$log;
SQL>Select*fromv$logfile;
1.1.2工作内容-日常性能监控
1)间隔一段时间使用操作系统top等工具监控系统资源动态运行状况
CPU、内存、网络、IO、进程、页面交换等主要活动监控:
:
top、topas、vmstat、iostat等
2)间隔一段时间对数据库性能进行监控
1Oracle9i图形工具-PerformanceManager监控顶层会话及顶层SQL
1.打开OEM控制台,选中要监控的数据库。
2.工具中选择DiagnosticPack-PerformanceManager,也可直接选中TopSession或TopSQL。
Oracle9i的PerformanceManager工具监控内容主要有:
内存的使用情况,IO情况,Oracle数据库进程情况,sql语句运行情况等,主界面如下:
可以通过顶层会话下钻获取到相关SQL执行计划等信息,也可以直接查看TopSql选项获取当前执行最频繁、消耗资源最多的SQL语句:
在数据页签下面列出了监控的选项列表,可以根据各类选项对SQL语句进行排序。
选中相关SQL语句,单击右键选择“下钻”到“解释计划”查看执行计划:
执行计划显示如下:
2Oracle10gOEM工具监控顶层会话及获取SQL详细信息
登录Oracle10gOEM,选择性能-其它监视链接:
顶级活动
点击顶级会话中的会话ID
点击SQLID,查看该顶级会话中SQL的详细信息
点击计划标签,查看该SQL语句的详细执行计划
浏览该顶层会话对应SQL语句的详细信息
3字符界面下Sql语句及用户进程信息采集
●通过视图查看当前主要影响性能SQL语句
语法模版
SELECT*FROM
(SELECThash_value,address,substr(sql_text,1,40)sql,
[listofcolumns],[listofderivedvalues]
FROM[V$SQLorV$SQLXSorV$SQLAREA]
WHERE[listofthresholdconditionsforcolumns]
ORDERBY[listoforderingcolumns]DESC)
WHERErownum<=[numberoftopSQLstatements];
实际举例
SELECT*FROM
(SELECThash_value,address,substr(sql_text,1,40)sql,
buffer_gets,executions,buffer_gets/executions"Gets/Exec"
FROMV$SQLAREA
WHEREbuffer_gets>100000ANDexecutions>10
ORDERBYbuffer_getsDESC)
WHERErownum<=10;
●跟踪用户进程获取统计信息
获取要跟踪的用户进程
SQL>selectsid,serial#,usernamefromv$session;
开始跟踪-结束跟踪
Execdbms_system.set_ev(9,437,10046,8,‘用户名');
Execdbms_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=yessys=nosort=fchela
1.1.3工作内容-日常数据库管理
1)一天内间隔一定时间运行
1检查警告日志文件中最新错误信息
Linux、Unix系列平台:
vialertsid.log
输入:
“/ORA-”回车进行查找
Windows平台下使用常用的文本编辑工具即可查看搜索警告日志文件中Oracle错误信息
2系统运行状况快照采集
每天根据实际情况,在以下三个阶段手工运行Statspack快照采集,输出快照报表:
●正常工作压力下
●每天业务最高峰期
●特殊业务运行阶段
Oracle9i自动化脚本方式快照采集
创建当前时间点快照
如需采集当前数据库运行状况快照,取20分钟时间间隔运行该脚本两次
自动执行statspack快照脚本:
statspack_auto_exec.sh
#!
/bin/sh
#creator:
james_jiang
#function:
producestatpacksnapshot
echo"AutoExecuteStatspack"
$ORACLE_HOME/bin/sqlplus/nolog< connectperfstat/perfstat execstatspack.snap echo"Autoexecutestatspacksuccessfully! " exit EOF 输出最近两个快照时间点之间的快照信息报表 自动产生最近两个快照时间点统计信息快照脚本: statspack_auto_report.sh #! /bin/sh #creator: james_jiang #function: getstatpackreport echo"Autocreatestatspacksnapshot! " SQLPLUS=$ORACLE_HOME/bin/sqlplus LOGFILE=$ORACLE_HOME/spreport.log REPFILE=$ORACLE_HOME/spreport.lst $ORACLE_HOME/bin/sqlplus-Sperfstat/perfstat< SETECHOOFF SETHEADINGOFF SETFEEDBACKOFF SETPAGESIZE0 SETLINESIZE1000 SETTRIMSPOOLON SPOOL$LOGFILE selectSNAP_IDfrom(selectSNAP_IDfromstats\$snapshotwhereINSTANCE_NUMBER=1orderbySNAP_TIMEdesc)whererownum<3; SPOOLOFF; setechoon setfeedbackon setheadingon exit EOF line1=`tail-1$LOGFILE` line2=`head-1$LOGFILE` echo"line1is"$line1 echo"line2is"$line2 $ORACLE_HOME/bin/sqlplus-Sperfstat/perfstat< definebegin_snap=$line1 defineend_snap=$line2 definereport_name=$REPFILE @? /rdbms/admin/spreport.sql echo"Autocreatestatspacksnapshotsuccessfully! " exit EOF Oracle10gOEM图形管理工具实现系统快照采集 自动化脚本执行快照收集主要是Oracle9i版本的使用方式,Oracle10gOEM图形工具自动执行快照采集,缺省1小时收集一次,可以根据实际情况修改收集的间隔时间、降低对系统性能的影响。 系统快照自动收集时间、间隔、保留期限设置 登录Oracle10gOEM,选择管理-自动工作量档案库 点击“编辑”,查看或修改快照收集时间及间隔 Oracle10g缺省系统快照每隔一小时执行一次,保留最近15天的所有快照,可根据实际情况修改调整,点确定后保存所做修改。 创建当前时间点系统快照 点击管理快照和保留的快照集下面的当前快照ID 选择创建保留快照集,点击创建 选择“是”开始执行快照创建 快照在当前时间点成功创建 输出两个快照时间点之间的快照信息报表 修改原来“创建保留的快照集”为“查看报告”,选择起始快照号,点击“创建” 选择结束快照号,点击“确定” 开始创建两个快照时间点之间的所有统计信息报告 另存该输出快照报告为HTML文件 注: 生成的统计信息快照报告放在专门目录下,定期对其整理、分析,作为EAS数据库运行整体状况及问题诊断的依据。 2)每天工作结束后、系统空闲时运行 1表空间使用率 SQL脚本方式查看 脚本: FREESPACE.SQL SELECTa.tablespace_name,ROUND(100-b.free/a.total*100)used_pct, ROUND(a.total/1024/1024)"total(MB)", ROUND(b.free/1024/1024)"free_total(MB)", ROUND(b.max_free/1024/1024)"free_max(MB)",b.free_cntfragment FROM(SELECT tablespace_name,SUM(BYTES)total FROMdba_data_files GROUPBYtablespace_name)a, (SELECT tablespace_name,SUM(BYTES)free,MAX(BYTES)max_free, COUNT(BYTES)free_cnt FROMdba_free_space GROUPBYtablespace_name)b WHEREa.tablespace_name=b.tablespace_name 图形界面查看表空间使用率 Oracle9iOEM表空间管理 Oracle10gOEM表空间管理 登录OEM后选择管理-表空间 2数据库备份及日志清理 数据库备份主要提供两种方式,物理备份及逻辑备份。 物理备份主要使用OracleRMAN工具,逻辑备份主要使用Oracle导出工具Exp和Expdp。 Oracle物理备份(RMAN) Oracle9iRMAN自动化脚本增量备份 RMAN备份环境初始化设置: rmannocatalog rman>connecttargetsys/oracle rman>configurecontrolfileautobackupon; rman>configurecontrolfileautobackupformatfordevicetypediskto'f: \rman_bak\%F.ctl'; rman>configuresnapshotcontrolfilenameto'f: \rman_bak\snap_%F.ctl'; Rman备份命令写到一个脚本中,在命令行中执行这个脚本 RMANTARGET/NOCATALOGsys/oracleCMDFILEf: \backup_incre_1.rcvLOGf: \backup_incre_1.log 以下为增量备份脚本,备份同时删除一天前的所有归档日志。 该命令可设置为crontab(unix/linux),bat批处理任务(Windows),每天在特定的时间点自动运行。 增量备份脚本: backup_incre_1.rcv run {allocatechannelc1typeDISK; backupincrementallevel=1format'f: \rman_bak\incre_1_%d_%s_%p.bak' (databaseincludecurrentcontrolfile); backupformat'f: \rman_bak\arch%u_%s_%p.bak' (archivelogfromtime'sysdate-1'alldeleteinput); } 增量备份脚本: backup_incre_1.rcv run {allocatechannelc1typeDISK; backupincrementallevel=1format'f: \rman_bak\incre_1_%d_%s_%p.bak' (databaseincludecurrentcontrolfile); backupformat'f: \rman_bak\arch%u_%s_%p.bak' (archivelogfromtime'sysdate-1'alldeleteinput); } 显示RMAN备份集信息: RMAN>listbackupset; 手工删除闪回区归档日志 oracle归档日志满处理方法如下,通常Oracle或第三方备份软件备份完归档后都应该及时删除已经备份的归档日志,否则归档日志会占用大量磁盘空间 #su-oracle $rmantarget/ rman>DELETEARCHIVELOGALLCOMPLETEDBEFORE'SYSDATE-7';#比如删除7天前的所有归档 或者也可以手工直接通过操作系统rm等命令删除归档日志,然后通过以下命令做同步。 rman>crosscheckarchivelogall; rman>deleteexpiredarchivelogall; 上述脚本中涉及的文件路径需根据现场环境具体情况进行相应修改。 Oracle10gOEM图形化方式设置RMAN备份自动执行任务RMAN备份主要参数设置 登录10gOEM,选择维护-备份设置 磁盘设备备份路径、并行度指定(根据服务器cpu个数匹配) 备份策略设置 主要是指定备份磁盘位置及备份保留时间,下图设置中为周备份策略考虑,保留最近7天备份。 两种RMAN自动调度备份策略1.使用Oracle建议的自动调度备份策略 选择维护-调度备份 选择“调度Oracle建议的备份” 选择备份目标介质,缺省备份到磁盘介质 该备份策略内容描述 设置该策略执行数据库全量或增量备份的调度时间 2.自定义RMAN自动备份策略 选择“调度定制备份” 选择备份类型、模式、归档日志、过时备份清理策略 备份目标介质设置(缺省使用前面“备份设置”中设置的参数) 备份自动执行的调度时间设置(通常设置在系统空闲时进行,如晚上12点过后) 备份设置信息复查,确定后提交作业 通过查看作业可以了解备份任务进展情况。 3.查看当前数据库RMAN备份信息 选择维护-备份/恢复中“备份报告”可以查看所有备份执行情况 注: 前面描述的是数据库全量备份的调度策略设置,增量备份的调度策略设置方法类似,只需要在备份类型中选择增量备份即可。 设置完成后EAS数据库自动备份策略为一周一次全量备份,在星期六晚上12点进行。 周一到周五每天晚上12点执行一次增量备份,保留最近7天备份,过期备份、归档日志自动删除。 Oracle逻辑备份(EXP/EXPDP) 操作系统级设置自动备份任务 root用户登录操作系统,运行crontab–e,添加以下内容: 5023**1-6su–oracle-c/usr/app/oracle/expdp/eas_expdp_MontoSat.sh>/dev/null2>&1 #星期一到星期六晚上11点50导出数据 5023**0su–oracle-c/usr/app/oracle/expdp/eas_expdp_Sunday.sh>/dev/null2>&1 #星期日11点50开始导出数据,并删除上周一到周六导出的备份数据。 逻辑备份脚本 逻辑备份脚本eas_expdp_MontoSat.sh(星期一到星期六) #==================================================== #SCRIPT: eas_expdp_MontoSat.sh #AUTHOR: James_jiang #Date: 2007-10-10 #REV: 1.0 #PLATFORM: AIXLinuxSolarisHpUnix #PURPOSE: Thisscriptisusedtorunlogicbackup. #Copyright(c)2007KingdeeCo.,Ltd. #AllRightsReserved #===================================================== DAY=`date+%u` FILE_TARGET=eas_expdp_`expr$DAY'.dmp FILE_LOG=eas_expdp_`expr$DAY`.log exportFILE_TARGETFILE_LOG #导出的Oracle实例名,尤其是服务器存在多个实例时需指定 ORACLE_SID=orcl ORACLE_BASE=/home/app/oracle ORACLE_HO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 管理工作 手册