definebegin_snap=$line1
defineend_snap=$line2
definereport_name=$REPFILE
@?
/rdbms/admin/spreport.sql
echo"Autocreatestatspacksnapshotsuccessfully!
"
exit
EOF
3.1.2.2Oracle10gOEM图形管理工具实现系统快照采集
自动化脚本执行快照收集主要是Oracle9i版本的使用方式,Oracle10gOEM图形工具自动执行快照采集,缺省1小时收集一次,可以根据实际情况修改收集间隔时间、降低对系统性能影响。
系统快照自动收集时间、间隔、保留期限设置
登录Oracle10gOEM,选择管理-自动工作量档案库
点击编辑,查看或修改快照收集时间及间隔
Oracle10g缺省系统快照每隔一小时执行一次,保留最近15天的所有快照,可根据实际情况修改调整,点确定后保存所做修改。
创建当前时间点系统快照
点击管理快照和保留的快照集下面的当前快照ID
选择创建保留快照集,点击创建
选择“是”开始执行快照创建
快照在当前时间点成功创建。
输出两个快照时间点之间的快照信息报表
修改原来“创建保留的快照集”为“查看报告”,选择起始快照号,点击创建
选择结束快照号,点击“确定”
开始创建两个快照时间点之间的所有统计信息报告
另存该输出快照报告为HTML文件
注:
生成的统计信息快照报告放在专门目录下,定期对其整理、分析,作为EAS数据库运行整体状况及问题诊断的依据。
3.2每天工作结束后、系统空闲时运行
3.2.1表空间使用率
3.2.1.1SQL脚本方式查看
脚本:
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
3.2.1.2图形界面查看表空间使用率
Oracle9iOEM表空间管理
Oracle10gOEM表空间管理
登录OEM后选择管理-表空间
⏹
3.2.2数据库备份及日志清理(RmanandExpdp)
数据库备份主要提供两种方式,物理备份及逻辑备份,物理备份主要使用OracleRMAN工具,逻辑备份主要使用Oracle导出工具Exp及Expdp。
Oracle物理备份(RMAN)
该方式下周一到周五每天做一次增量备份,并检查备份是否正确,同时清理归档日志。
3.2.2.1Oracle9iRMAN自动化脚本增量备份
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);
}
显示RMAN备份集信息:
RMAN>listbackupset;
注:
上述脚本中涉及的文件路径需根据现场环境具体情况进行相应修改。
3.2.2.2Oracle10gOEM图形化方式设置RMAN备份自动执行任务
RMAN备份主要参数设置
登录10gOEM,选择维护-备份设置
磁盘设备备份路径、并行度指定(根据服务器cpu个数匹配)
备份策略设置
主要是指定备份磁盘位置及备份保留时间,下图设置中为周备份策略考虑,保留最近7天备份。
两种RMAN自动调度备份策略1)使用Oracle建议的自动调度备份策略
选择维护-调度备份
选择“调度Oracle建议的备份”
选择备份目标介质,缺省备份到磁盘介质
该备份策略内容描述
设置该策略执行数据库全量或增量备份的调度时间
2)自定义RMAN自动备份策略
选择“调度定制备份”
选择备份类型、模式、归档日志、过时备份清理策略
备份目标介质设置(缺省使用前面“备份设置”中设置的参数)
备份自动执行的调度时间设置(通常设置在系统空闲时进行,如晚上12点过后)
备份设置信息复查,确定后提交作业
通过查看作业可以了解备份任务进展情况。
3)查看当前数据库RMAN备份信息
选择维护-备份/恢复中“备份报告”可以查看所有备份执行情况
注:
前面描述的是数据库全量备份的调度策略设置,增量备份的调度策略设置方法类似,只需要在备份类型中选择增量备份即可。
设置完成后EAS数据库自动备份策略为一周一次全量备份,在星期六晚上12点进行。
周一到周五每天晚上12点执行一次增量备份,保留最近7天备份,过期备份、归档日志自动删除。
建议现场每周周末将RMAN备份的文件脱机保存。
(防止服务器存储介质损坏导致数据丢失)
Oracle逻辑备份(EXP/EXPDP)
1)操作系统级设置自动备份任务
oracle用户登录操作系统,运行crontab-e,添加以下内容:
5023**1-6/home/oracle/10gautoexpdp/eas_expdp_MontoSat.sh>>/home/oracle/10gautoexpdp/expdp.log2>&1
#星期一到星期六晚上11点50导出数据
5023**0/home/oracle/10gautoexpdp/eas_expdp_Sunday.sh>>/home/oracle/10gautoexpdp/expdp.log2>&1
#星期日11点50开始导出数据,并删除上周一到周六导出的备份数据。
2)逻辑备份脚本
逻辑备份脚本eas_expdp_MontoSat.sh(星期一到星期六)
#!
/bin/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_HOME=$ORACLE_BASE/oracle/product/10.2.0/db_1
exportORACLE_SIDORACLE_BASEORACLE_HOME
PATH=$PATH:
$HOME/bin:
$ORACLE_HOME/bin
expdpsystem/oracleschemas=nmdirectory=eas_expdp_dirdumpfile=$FILE_TARGETlogfile=$FILE_LOGjob_name=cases_exportparallel=4
逻辑备份脚本eas_expdp_Sunday.sh(星期日)
#!
/bin/sh
#=====================================================
#SCRIPT:
eas_expdp_Sunday.sh
#AUTHOR:
James_jiang
#Date:
2007-10-10
#REV:
1.0
#PLATFORM:
AIXLinuxSolarisHpUnix
#PURPOSE:
Thisscriptisusedtorunlogicbackup.
#=====================================================
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_HOME=$ORACLE_BASE/oracle/product/10.2.0/db_1
cd/home/oracle/10gautoexpdp
rm-feas_expdp*.dmpeas_expdp*.log
expdpsystem/oracleschemas=nmdirectory=eas_expdp_dirdumpfile=$FILE_TARGETlogfile=$FILE_LOGjob_name=cases_exportparallel=4
附:
上述脚本中导出路径/home/oracle/10gautoexpdp需根据现场实际情况修改,备份脚本eas_expdp_MontoSat.sh、eas_expdp_Sunday.sh需赋予可执行权限。
Expdp导出的EAS用户(schemas=用户名)根据现场EAS用户名修改。
Expdp导出目录需要创建,具体方法请参看本文档四日常工作-数据库第一次安装部署后需做的工作。
建议现场每周周末将逻辑备份的dmp文件脱机保存。
(防止服务器存储介质损坏导致数据丢失)
3.2.3根据监控信息,对需要的表、索引统计分析
3.2.3.1Oracle9i自动化脚本方式对表、索引进行统计分析
Oracle9i缺省不对表进行改动监控,如果需要根据监控信息来判断是否需对表进行重新统计分析,则需要手工打开表监控开关,如下:
打开表监控开关:
altertable表名monitoring;//监控表信息记录在sys.dba_tab_modifications视图中
根据监控信息对用户统计信息分析收集脚本:
dbms_stats.gather_schema_stats(ownname=>'nmeas',options=>'GATHERAUTO')
3.2.3.2Oracle10g自动化任务表、索引统计分析方式
Orac