ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 转:Oracle日常维护 指导手册(UT斯达康公司)

转:Oracle日常维护 指导手册(UT斯达康公司)

原创 Linux操作系统 作者:mengzhaoliang 时间:2008-03-05 10:08:14 0 删除 编辑
Oracle日常维护
指导手册
UTS.610G05.A0
UT斯达康通讯有限公司
项目管理和技术支持部
UT斯达康公司以"客户成功,我们成功"的价值观衡量,规范员工的行为,致
力于服务创新和服务承诺的兑现,以高效快速解决客户各种问题,并最大限度节
省和保护客户投资的行为,力求为用户提供超越客户期望的服务.
UT斯达康公司拥有完善的服务体系,技术服务中心拥有一批优秀的专业技术
人员,并在全国设有十多个服务分支机构,提供24小时技术服务.本着用户至
上,信守承诺的原则,UT斯达康公司承诺:在24小时之内对用户的问题给予答
复.为客户提供优质,高效,专业的服务是UT斯达康的追求.
UT斯达康通讯有限公司项目管理和技术支持部
联系地址:浙江省杭州市教工号1号12号楼
邮政编码:310012
电话号码:(0571)88916789
传 真:(0571)88916789
800免费电话:8008571466
Call Log邮件地址:call_log@utstar.com
客户支持网站:http://support.utstar.com.cn
版权声明
本文档属UT斯达康通讯有限公司版权所有,侵权必究.
本文档专供用户,本公司职员以及经本公司许可的人员使用.未经公司书面
同意,任何单位或个人不得以任何方式复制,翻印,改编或传播手册的全部
或部分内容.
UTStarcom,PAS,WACOS, iAN, AIRSTAR, WLL, ISP, WICOPS, NGDLC,
Intranode, Internode, Xtr-m-IP, UNITECH,小灵通, 为UT斯达康公司或其
子公司,关联公司的注册商标,受商标法保护,任何个人或团体非法使用以
上商标,UT斯达康公司有权追究其法律责任.
Oracle日常维护指导手册
本文的相关约定
本文内容涉及到许多操作命令,为了便于读者阅读,我们对本文进行了如下约定:
输入图标表示以下的内容为输入命令,输入命令使用宋体黑斜体9号
字符,并缩进两个字符.
输出图标表示以下的内容为输出显示,输出显示使用宋体黑斜体9
号字符,并缩进两个字符.
分析图标后的文字内容是对输出显示的解释;分析的文字内容中引
用输出显示的内容,对引用部分使用双引号加以区别.
当一行代码太长以至于超过本文的一行时,它在一个合适的地方断开并在下一行
继续,续行符"\"出现在上一行的行尾.(在输入含有这个续行符的一行时,应
该把它作为没有断开的一个长行).
本文所有检查命令除特殊申明,都是在主数据库服务器ipasdb执行的.若命令
以"#"开头表示以root用户来执行,若命令以"$"开头表示以Oracle用户来执
行.

……
注意部分的的内容,以注意图标开始,具体文字内容加粗并加黑框表示.注意给出了
重要的信息,以帮助读者理解.

……
警告部分的的内容,以警告图标开始,具体文字内容加粗并加黑框表示.警告提供了
有关有害操作或危险错误的信息.对警告信息要特别注意.
Oracle日常维护指导手册
目 录
1 目的..............................................................1
2 适用范围..........................................................1
3 Oracle数据库的日常维护............................................1
3.1 检查数据库的基本状况...................................................2
3.1.1 检查Oracle的进程................................................2
3.1.2 检查Oracle监听进程..............................................3
3.1.3 检查Oracle实例状态..............................................4
3.2 检查Solaris和Oracle的日志文件..........................................6
3.2.1 检查操作系统的日志文件..........................................6
3.2.2 检查关于root用户和Oracle用户的email.............................6
3.2.3 检查Oracle日志文件..............................................7
3.2.4 检查Oracle核心转储目录..........................................7
3.3 检查Oracle对象的状态...................................................8
3.3.1 检查Oracle控制文件状态..........................................8
3.3.2 检查Oracle在线日志状态..........................................8
3.3.3 检查Oracle表空间的状态..........................................9
3.3.4 检查Oracle所有数据文件状态.....................................10
3.3.5 检查Oracle所有表,索引,存储过程,触发器,包等对象的状态.......11
3.3.6 检查Oracle所有回滚段的状态.....................................12
3.4 检查Oracle相关资源的使用情况..........................................13
3.4.1 检查Oracle初始化文件中相关的参数值.............................14
3.4.2 检查Oracle各个表空间的增长情况.................................15
3.4.3 检查一些扩展异常的对象.........................................17
3.4.4 检查system表空间内的内容.......................................17
3.4.5 检查对象的下一扩展与表空间的最大扩展值.........................18
客户成功 我们成功 I
Oracle日常维护指导手册
3.5 数据库备份结果的检查..................................................19
3.5.1 没有采用带库备份的项目点.......................................19
3.5.2 采用带库备份的项目点...........................................21
4 附录.............................................................30
4.1 getinfo.sh脚本........................................................30
4.2 脚本的执行方法........................................................30
4.3 脚本的产生结果........................................................30
4.4 getinfo.sh脚本清单:...................................................31
5 参考文献.........................................................38
6 术语解释.........................................................39
7 命令解释.........................................................40
客户成功 我们成功 II
Oracle日常维护指导手册
1 目的
目前,iPAS/mSwitch系统在全国范围内广泛应用,iPAS/mSwitch系统的数据存储主要采
Oracle 8i数据库.随着用户的不断增长,Oracle数据库中存储的数据量也不断增大,这样
数据库的日常维护就显得十分重要.
本手册详细描述了对iPAS/mSwitch系统中Oracle 8i数据库进行日常检查的主要步骤,指
导现场工程师如何对数据库进行简单的监控和维护.
2 适用范围
适用于iPAS/mSwitch系统中Oracle8i数据库.
使用者为所有iPAS/mSwitch系统维护工程师.
3 Oracle数据库的日常维护
工程师在进行数据库维护前请注意以下几点:
1. 数据库的检查工作必须每天做一次;
2. 在iPAS/mSwitch Oracle8i数据库的实例名(SID)必须为ORCL,否则视为错
误;
3. 本文中所述的任一检查不符合要求,即表明数据库存在安全隐患;
4. 本文只列出了数据库检查的主要步骤,若实际检查结果与本文中的要求不一
致时,本文中没有提出可行的解决方案,若有这样的情况发生并且现场工程
师不具备判断和解决的能力时请与杭州Call Center联系,寻求技术支持.
数据库检查的操作必须在业务相对比较空闲的时候执行,否则有影响系统性能的
可能性.
客户成功 我们成功 1
Oracle日常维护指导手册
3.1 检查数据库的基本状况
本节主要介绍如何对数据库的基本状况进行检查,内容共分三部分,分别为:检查
Oracle的进程;检查Oracle监听进程;检查Oracle实例状态.
3.1.1 检查Oracle的进程
$ps -ef|grep "ora_"|grep -v grep
oracle 6586 1 0 May 15 0:00 ora_pmon_ORCL
oracle 6598 1 0 May 15 0:00 ora_snp0_ORCL
oracle 6600 1 0 May 15 0:00 ora_snp1_ORCL
oracle 6594 1 0 May 15 0:06 ora_smon_ORCL
oracle 6604 1 0 May 15 0:00 ora_snp3_ORCL
oracle 6588 1 0 May 15 6:50 ora_dbw0_ORCL
oracle 6590 1 0 May 15 37:48 ora_lgwr_ORCL
oracle 6602 1 0 May 15 0:00 ora_snp2_ORCL
oracle 6606 1 0 May 15 5:19 ora_arc0_ORCL
oracle 6592 1 0 May 15 0:45 ora_ckpt_ORCL
oracle 6596 1 0 May 15 0:01 ora_reco_ORCL
…….
在检查Oracle的进程命令输出后,输出显示至少应包括以下一些进程:
Oracle写数据文件的进程,输出显示为:"ora_dbw0_ORCL"
Oracle写日志文件的进程,输出显示为:"ora_lgwr_ORCL"
Oracle监听实例状态的进程,输出显示为:"ora_smon_ORCL"
客户成功 我们成功 2
Oracle日常维护指导手册
Oracle监听客户端连接进程状态的进程,输出显示为:"ora_pmon_ORCL"
Oracle进行归档的进程,输出显示为:"ora_arc0_ORCL"
Oracle进行检查点的进程,输出显示为:"ora_ckpt_ORCL"
Oracle进行恢复的进程,输出显示为:"ora_reco_ORCL"
上面所有的进程中ORCL是数据库的实例名,必须为ORCL,否则为错误.
3.1.2 检查Oracle监听进程
$lsnrctl status
LSNRCTL for Solaris: Version 8.1.7.3.0 - Production on 23-MAY-2003 13:12:09
(c) Copyright 1998 Oracle Corporation. All rights reserved.
Connecting to
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ipasdb)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Solaris: Version 8.1.7.3.0 - Production
Start Date 15-MAY-2003 22:05:58
Uptime 7 days 15 hr. 6 min. 11 sec
Trace Level off
Security OFF
SNMP OFF
Listener Parameter File
客户成功 我们成功 3
Oracle日常维护指导手册
/opt/oracle/db01/app/oracle/product/8.1.7/network/
admin/listener.ora
Listener Log File
/opt/oracle/db01/app/oracle/product/8.1.7/network/
log/listener.log
Services Summary...
ORCL has 1 service handler(s)
PLSExtProc has 1 service handler(s)
The command completed successfully
"Services Summary"项表示Oracle的监听进程正在监听哪些数据库实例,输出显示中
至少应该有"ORCL"这一项.
3.1.3 检查Oracle实例状态
$sqlplus system/manager
sql>select instance_name,version,status,database_status
from v$instance;
INSTANCE_NAME VERSION STATUS DATABASE_STATUS
---------------- ----------------- ------- -----------------
ORCL 8.1.7.3.0 OPEN ACTIVE
其中"STATUS"表示Oracle当前的实例状态,必须为"OPEN";"DATABASE_STATUS"表
Oracle当前数据库的状态,必须为"ACTIVE".
客户成功 我们成功 4
Oracle日常维护指导手册
sql>select name,log_mode,open_mode from v$database;
sql>exit
NAME LOG_MODE OPEN_MODE
--------- ------------ ----------
ORCL ARCHIVELOG READ WRITE
其中"LOG_MODE"表示Oracle当前的归档方式."ARCHIVELOG"表示数据库运行在归档
模式下,"NOARCHIVELOG"表示数据库运行在非归档模式下.在我们的系统中数据库必须运
行在归档方式下.
客户成功 我们成功 5
Oracle日常维护指导手册
3.2 检查Solaris和Oracle的日志文件
本节主要介绍如何检查数据库的相关日志文件,内容共分四部分,分别为:检查操作系
统的日志文件;检查关于root用户和Oracle用户的email;检查Oracle日志文件;检查Oracle
核心转储目录.
3.2.1 检查操作系统的日志文件
#cat /var/adm/messages|grep oracle
查看是否有与Oracle用户相关的出错信息.
注:在此没有穷列出所有的出错信息,详细的出错信息以及解释请参照参考文献中
Oracle 8i Error messages》Part No. A76999-01一文.
3.2.2 检查关于root用户和Oracle用户的email
#more /var/mail/root
#more /var/mail/oracle
查看有无与Oracle用户相关的出错信息.
注:在此没有穷列出所有的出错信息,详细的出错信息以及解释请参照参考文献中
Oracle 8i Error messages》Part No. A76999-01一文.
客户成功 我们成功 6
Oracle日常维护指导手册
3.2.3 检查Oracle日志文件
$cat $ORACLE_BASE/admin/ORCL/bdump/alert_ORCL.log|grep -i ora-
$cat $ORACLE_BASE/admin/ORCL/bdump/alert_ORCL.log|grep -i err
$cat $ORACLE_BASE/admin/ORCL/bdump/alert_ORCL.log|grep -i fail
查看有无"ORA-","Error","Failed"等出错信息.
如:"ORA-07445: exception encountered: core dump [00000001015EF610] [SIGSEGV]
[Address not mapped to object]"这条错误信息表示Oracle的一个进程内存异常,而导致
核心转储.
注:在此没有穷列出所有的出错信息,详细的出错信息以及解释请参照参考文献中
Oracle 8i Error messages》Part No. A76999-01一文.
3.2.4 检查Oracle核心转储目录
$ls $ORACLE_BASE/admin/ORCL/cdump/*.trc|wc -l
$ls $ORACLE_BASE/admin/ORCL/udump/*.trc|wc -l
上面命令的结果是某个数字,如果这个数字每天增长10以上,则说明Oracle进程经常发
生核心转储,某些用户进程或者数据库后台进程由于无法处理的原因而异常退出.频繁的核
心转储特别是数据库后台进程的核心转储会导致数据库异常终止.
客户成功 我们成功 7
Oracle日常维护指导手册
3.3 检查Oracle对象的状态
本节主要介绍如何检查相关Oracle对象的状态,内容共分六个部分,分别为:检查
Oracle控制文件状态;检查Oracle在线日志状态;检查Oracle表空间的状态;检查Oracle
有数据文件状态;检查Oracle所有表,索引,存储过程,触发器,包等对象的状态;检查
Oracle所有回滚段的状态.
3.3.1 检查Oracle控制文件状态
$sqlplus system/manager
sql>select * from v$controlfile;
sql>exit
STATUS NAME
--------------------------------------------------------
/opt/oracle/db02/oradata/ORCL/control01.ctl
/opt/oracle/db03/oradata/ORCL/control02.ctl
/opt/oracle/db04/oradata/ORCL/control03.ctl
输出结果应该有3条以上(包含3条)的记录,"STATUS"应该为空.状态为空表示控制
文件状态正常.
3.3.2 检查Oracle在线日志状态
$sqlplus system/manager
客户成功 我们成功 8
Oracle日常维护指导手册
sql>select * from v$logfile;
sql>exit
GROUP# STATUS MEMBER
----------------------------------------------
1 /opt/oracle/db02/oradata/ORCL/redo01.log
2 /opt/oracle/db03/oradata/ORCL/redo02.log
3 /opt/oracle/db04/oradata/ORCL/redo03.log
输出结果应该有3条以上(包含3条)记录,"STATUS"应该为非"INVALID",非
"DELETED".
注:"STATUS"显示为空表示正常.
3.3.3 检查Oracle表空间的状态
$sqlplus system/manager
sql>select tablespace_name,status from dba_tablespaces;
sql>exit
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
TOOLS ONLINE
RBS ONLINE
TEMP ONLINE
客户成功 我们成功 9
Oracle日常维护指导手册
USERS ONLINE
INDX ONLINE
DRSYS ONLINE
WACOS ONLINE
IPAS_SUB_DATA ONLINE
IPAS_SUB_IDX ONLINE
IPAS_USG_DATA ONLINE
IPAS_USG_IDX ONLINE
IPAS_ACCT_DATA ONLINE
IPAS_ACCT_IDX ONLINE
NMS ONLINE
NMS_STAT_DATA ONLINE
NMS_STAT_IDX ONLINE
其中"STATUS"应该都为"ONLINE",加粗输出显示的部分为我们应用相关的表空间.
3.3.4 检查Oracle所有数据文件状态
$sqlplus system/manager
sql>select name,status from v$datafile;
sql>exit
NAME STATUS
--------------------------------------------------------------
/opt/oracle/db02/oradata/ORCL/system01.dbf ONLINE
/opt/oracle/db02/oradata/ORCL/tools01.dbf ONLINE
客户成功 我们成功 10
Oracle日常维护指导手册
/opt/oracle/db02/oradata/ORCL/rbs01.dbf ONLINE
/opt/oracle/db02/oradata/ORCL/temp01.dbf ONLINE
/opt/oracle/db02/oradata/ORCL/users01.dbf ONLINE
/opt/oracle/db02/oradata/ORCL/indx01.dbf ONLINE
/opt/oracle/db02/oradata/ORCL/drsys01.dbf ONLINE
/opt/oracle/wacos/oradata/ORCL/wacos01.dbf ONLINE
/opt/oracle/wacos/oradata/ORCL/ipas_sub_data01.dbf ONLINE
/opt/oracle/wacos/oradata/ORCL/ipas_sub_idx01.dbf ONLINE
/opt/oracle/wacos/oradata/ORCL/ipas_usg_data01.dbf ONLINE
/opt/oracle/wacos/oradata/ORCL/ipas_usg_idx01.dbf ONLINE
/opt/oracle/wacos/oradata/ORCL/ipas_acct_data01.dbf ONLINE
/opt/oracle/wacos/oradata/ORCL/ipas_acct_idx01.dbf ONLINE
/opt/oracle/nms/oradata/ORCL/nms01.dbf ONLLINE
/opt/oracle/nms/oradata/ORCL/nms_stat_data01.dbf ONLINE
/opt/oracle/nms/oradata/ORCL/nms_stat_idx01.dbf ONLINE
/opt/oracle/nms/oradata/ORCL/sa01.dbf ONLINE
/opt/oracle/nms/oradata/ORCL/fs01.dbf ONLINE
/opt/oracle/wacos/oradata/ORCL/ipas_usg_data02.dbf ONLINE
/opt/oracle/wacos/oradata/ORCL/ipas_usg_idx02.dbf ONLINE
输出结果中"STATUS"应该都为"ONLINE".
3.3.5 检查Oracle所有表,索引,存储过程,触发器,包等对象的
状态
$sqlplus system/manager
sql>select owner,object_name,object_type
from dba_objects where status!='VALID'
客户成功 我们成功 11
Oracle日常维护指导手册
and owner!='SYS' and owner!='SYSTEM';
sql>exit
no rows selected
如果有记录返回,则说明存在无效的对象.若这些对象与我们应用相关,那么需要重新
生成这个对象.具体生成方法可以寻求杭州Call Center的技术支持.
3.3.6 检查Oracle所有回滚段的状态
$sqlplus system/manager
sql>select segment_name,status from dba_rollback_segs;
sql>exit
SEGMENT_NAME STATUS
------------------------------ ----------------
SYSTEM ONLINE
RBS0 ONLINE
RBS1 ONLINE
RBS2 ONLINE
RBS3 ONLINE
RBS4 ONLINE
RBS5 ONLINE
RBS6 ONLINE
RBS7 ONLINE
客户成功 我们成功 12
Oracle日常维护指导手册
RBS8 ONLINE
RBS9 ONLINE
RBS10 ONLINE
RBS11 ONLINE
RBS12 ONLINE
RBS13 ONLINE
RBS14 ONLINE
RBS15 ONLINE
RBS16 ONLINE
RBS17 ONLINE
RBS18 ONLINE
RBS19 ONLINE
RBS20 ONLINE
RBS21 ONLINE
RBS22 ONLINE
RBS23 ONLINE
RBS24 ONLINE
RBS25 ONLINE
RBS26 ONLINE
RBS27 ONLINE
RBS28 ONLINE
APPRBS ONLINE
31 rows selected.
应该有31条记录返回,并且输出结果中所有回滚段的"STATUS"应该为"ONLINE".
3.4 检查Oracle相关资源的使用情况
本节主要介绍如何检查Oracle相关资源的使用情况,内容共分五个部分,分别为:检查
Oracle初始化文件中相关的参数值,检查Oracle各个表空间的增长情况,检查一些扩展异常
的对象,检查system表空间内的内容,检查对象的下一扩展与表空间的最大扩展值.
客户成功 我们成功 13
Oracle日常维护指导手册
3.4.1 检查Oracle初始化文件中相关的参数值
$sqlplus system/manager
sql>select resource_name,max_utilization,initial_allocation,
limit_value from v$resource_limit;
sql>exit
RESOURCE_NAME MAX_UTILIZATION INITIAL_AL LIMIT_VALU
------------------- --------------- ---------- ----------
processes 157 300 300
sessions 158 335 335
enqueue_locks 76 4180 4180
enqueue_resources 81 1692 1692
_lm_procs 0 0 0
lm_ress 0 0 UNLIMITED
lm_locks 0 0 UNLIMITED
lm_cache_ress 0 0 UNLIMITED
dml_locks 61 1472 1472
temporary_table_locks 1 UNLIMITED UNLIMITED
transactions 14 368 368
sort_segment_locks 1 UNLIMITED UNLIMITED
max_rollback_segments 31 74 74
distributed_transactions 0 10 10
mts_max_servers 0 20 20
parallel_max_servers 0 6 6
16 rows selected.
客户成功 我们成功 14
Oracle日常维护指导手册
若"LIMIT_VALU"-"MAX_UTILIZATION"select
A.tablespace_name,(1-(A.total)/B.total)*100 used_percent
from
(select tablespace_name,sum(bytes) total
from dba_free_space group by tablespace_name) A,
(select tablespace_name,sum(bytes) total
from dba_data_files group by tablespace_name) B
where A.tablespace_name=B.tablespace_name;
sql>exit
TABLESPACE_NAME USED_PERCENT
------------------------------ ------------
DRSYS 30.7578125
客户成功 我们成功 15
Oracle日常维护指导手册
FS .19375
INDX .00390625
IPAS_ACCT_DATA 1.2
IPAS_ACCT_IDX 2.2
IPAS_SUB_DATA 7.4
IPAS_SUB_IDX 7.25
IPAS_USG_DATA 12.378125
IPAS_USG_IDX 20.603125
NMS 5.221875
NMS_STAT_DATA 4.5
NMS_STAT_IDX 1.5125
RBS 27.0009766
SA .0375
SYSTEM 34.265625
TEMP 2.71972656
TOOLS .00390625
USERS .608473558
WACOS 10.621875
19 rows selected.
如果使用率"USED_PERCENT"在90%以上,则注意要增加数据文件来扩展表空
间而不要是用数据文件的自动扩展功能.具体方法可以寻求杭州Call Center
的技术支持.
客户成功 我们成功 16
Oracle日常维护指导手册
3.4.3 检查一些扩展异常的对象
$sqlplus system/manager
sql>select Segment_Name, Segment_Type, TableSpace_Name,
(Extents/Max_extents)*100 Percent
From sys.DBA_Segments
Where Max_Extents != 0 and (Extents/Max_extents)*100>=95
order By Percent;
sql>exit
no rows selected
如果有记录返回,则这些对象的扩展已经快达到它定义时的最大扩展值.对于这些对象
要修改它的存储结构参数,具体方法可以寻求杭州Call Center的技术支持.
3.4.4 检查system表空间内的内容
$sqlplus system/manager
sql>select distinct(owner) from dba_tables
where tablespace_name='SYSTEM' and
owner!='SYS' and owner!='SYSTEM'
union
select distinct(owner) from dba_indexes
where tablespace_name='SYSTEM' and
客户成功 我们成功 17
Oracle日常维护指导手册
owner!='SYS' and owner!='SYSTEM';
sql>exit
no rows selected
如果有记录返回,则表明system表空间内存在一些非system和sys用户的对象.应该进一
步检查这些对象是否与我们应用相关.如果相关请把这些对象移到非System表空间,同时应
该检查这些对象属主的缺省表空间值,具体方法可以寻求杭州Call Center的技术支持.
3.4.5 检查对象的下一扩展与表空间的最大扩展值
$sqlplus system/manager
sql>select a.table_name, a.next_extent, a.tablespace_name
from all_tables a,
(select tablespace_name, max(bytes) as big_chunk
from dba_free_space
group by tablespace_name ) f
where f.tablespace_name = a.tablespace_name
and a.next_extent > f.big_chunk
union
select a.index_name, a.next_extent, a.tablespace_name
from all_indexes a,
(select tablespace_name, max(bytes) as big_chunk
from dba_free_space
group by tablespace_name ) f
where f.tablespace_name = a.tablespace_name
客户成功 我们成功 18
Oracle日常维护指导手册
and a.next_extent > f.big_chunk;
sql>exit
no rows selected
如果有记录返回,则表明这些对象的下一个扩展大于该对象所属表空间的最大扩展值,
需调整相应表空间的存储参数,具体方法可以寻求杭州Call Center的技术支持.
3.5 数据库备份结果的检查
数据库备份的检查分为:没有采用带库备份的项目点和采用带库备份的项目点,两种情
况来说明.
3.5.1 没有采用带库备份的项目点
这些项目点目前都是采取热备份脚本来进行备份的.对于这些项目点数据库备份的检查
包含:检查热备份日志信息,检查Oracle用户的email,检查主数据库ipasdb上的归档日志,
检查backup卷中文件产生的时间,检查磁带中的相关备份内容五个部分.
3.5.1.1 检查热备份日志信息
#cat /opt/oracle/db02/hot_backup/hotback.log
查看有无"ORA-","Error","Failed"等出错信息,如果有则表明备份不正常.
如:"ORA-01012: not logged on"这条信息就表明数据库备份没成功.
注:在此没有穷举所有的出错信息,详细的出错信息以及解释请参照参考文献中《Oracle 8i
Error messages》Part No. A76999-01一文.
客户成功 我们成功 19
Oracle日常维护指导手册
3.5.1.2 检查oracle用户的email
#cat /var/mail/oracle
热备份脚本是通过Oracle用户的cron去执行的.cron执行完后操作系统就会发一条Email
通知Oracle用户任务已经完成.查看Oracle email中今天凌晨部分有无"ORA-",
"Error","Failed"等出错信息,如果有则表明备份不正常.如:"ORA-01012: not
logged on"这条信息就表明数据库备份没成功.
注:在此没有穷举所有的出错信息,详细的出错信息以及解释请参照参考文献中《Oracle 8i
Error messages》Part No. A76999-01一文.
3.5.1.3 检查主数据库ipasdb的归档日志
#ls /opt/oracle/arch/ORCL/arch
所有的归档日志都应是当天产生的, 如果存在更早的归档日志, 则说明当天凌晨的备
份有问题.现场归档日志的目录一般在/opt/oracle/arch/ORCL/arch下.具体的路径请查看
Oracle的初始化文件$ORACLE_BASE/admin/ORCL/pfile/initORCL.ora中log_archive_dest_1
参数的值.对于初始化文件中每个参数的意义请参照参考文献中《Oracle 8i
Reference ·Part No. A76961-01》一文.
如果归档目录所在卷已满会导致数据库挂起,Cluster反复切换.
客户成功 我们成功 20
Oracle日常维护指导手册
3.5.1.4 检查backup卷中文件产生的时间
#ls -lt /opt/oracle/backup
查看输出结果中文件的日期,都应当是在当天凌晨由热备份脚本产生的.如果时间不对
则表明热备份脚本没执行成功.
3.5.1.5 检查磁带中的相关备份内容
#tar tvf /dev/rmt/0
查看输出结果中文件的日期,都应是在当天凌晨由热备份脚本产生的.如果时间不对则
表明热备份脚本没执行成功.如果上面的命令在执行过程中报告I/O错误,或者磁带校验错
误,说明磁带存在问题.需要使用新的磁带重新备份.
3.5.2 采用带库备份的项目点
这些项目点都是采取RMAN联机热备份的方式来备份数据库的.具体备份策略是:每月第
一天进行数据库全备份;每月7,14,21,28进行数据库一级增量备份;其它时间进行数据库
二级增量备份.
对于这些项目点数据库备份的检查包含:检查备份服务器Sun 280R上的备份日志信息,
检查主数据库服务器ipasdb上的备份日志信息,检查备份服务器Sun 280R上某一天备份结果
集,检查备份服务器Sun 280R上备份软件所提供的信息,检查主数据库ipasdb的归档日志,
检查备份服务器280R上rman catalog中的备份结果集,总共六个部分.
客户成功 我们成功 21
Oracle日常维护指导手册
3.5.2.1 检查备份服务器Sun 280R上的备份日志信息
#cat /nsr/logs/messages
--- Successful Save Sets ---
ipas: index:ipas level=full, 43 KB 00:00:05 83 files
ipas: bootstrap level=full, 69 KB 00:00:20 7 files
* ipas:bootstrap _default: unknown printer
* ipas:bootstrap printing bootstrap information failed (reproduced below).
* ipas:bootstrap
* ipas:bootstrap June 03 15:09 2003 ipas's bootstrap information Page 1
* ipas:bootstrap
* ipas:bootstrap date time level ssid file record volume
* ipas:bootstrap 06/02/03 17:14:21 full 3675614465 9 0 HotDB.Full.001
* ipas:bootstrap 06/02/03 17:18:09 full 3675672833 11 0 HotDB.Full.001
* ipas:bootstrap 06/02/03 17:20:30 full 3675708929 13 0 HotDB.Full.001
* ipas:bootstrap 06/02/03 17:22:11 full 3675734785 15 0 HotDB.Full.001
* ipas:bootstrap 06/02/03 17:23:56 full 3675761665 17 0 HotDB.Full.001
* ipas:bootstrap 06/02/03 17:32:05 full 3675887105 24 0 HotDB.Full.001
* ipas:bootstrap 06/02/03 17:40:27 full 3676015361 31 0 HotDB.Full.001
* ipas:bootstrap 06/03/03 07:57:37 full 3689181441 38 0 HotDB.Full.001
* ipas:bootstrap 06/03/03 08:41:45 full 3689859329 44 0 HotDB.Full.001
* ipas:bootstrap 06/03/03 08:56:35 full 3690087169 51 0 HotDB.Full.001
* ipas:bootstrap 06/03/03 09:57:16 full 3691019265 58 0 HotDB.Full.001
* ipas:bootstrap 06/03/03 10:05:53 full 3691151617 66 0 HotDB.Full.001
* ipas:bootstrap 06/03/03 12:10:20 full 3693063169 76 0 HotDB.Full.001
* ipas:bootstrap 06/03/03 14:37:25 full 3695322369 80 13 HotDB.Full.001
* ipas:bootstrap 06/03/03 15:09:10 full 3695810049 87 127 HotDB.Full.001
客户成功 我们成功 22
Oracle日常维护指导手册
--- Unsuccessful Save Sets ---
* ipas:/opt/oracle/rman/hot_database_backup_level0.rcv 1 retry attempted
ipas:/opt/oracle/rman/hot_database_backup_level0.rcv: No full backups of this save
sel backup
* ipas:/opt/oracle/rman/hot_database_backup_level0.rcv nsrnmo: exited on signal 11
其中"--- Successful Save Sets ---"就表示这部分内容已经成功备份;"---
Unsuccessful Save Sets ---"就表示这部分内容的备份存在问题. 在输出结果中不应该
有Unsuccessful的内容.
3.5.2.2 检查主数据库服务器ipasdb上的备份日志信息
#cat /nsr/logs/rman.log
RMAN-03022: compiling command: backup
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure during compilation of command
RMAN-03013: command type: backup
RMAN-03014: implicit resync of recovery catalog failed
输出信息中有"ERROR MESSAGE STACK FOLLOWS"则表示数据库备份有问题.
客户成功 我们成功 23
Oracle日常维护指导手册
3.5.2.3 检查备份服务器Sun 280R上某一天备份结果集:(如6月3日)
#mminfo -a|grep 06/03
volume client date size level name
HotDB.Full.001 ipasdb 06/03/03 150 MB full /opt/oracle/rman/hot_database_backup_level0.rcv
HotDB.Full.001 ipasdb 06/03/03 4033 KB full /opt/oracle/rman/hot_database_backup_level0.rcv
HotDB.Full.001 ipasdb 06/03/03 235 MB full /opt/oracle/rman/hot_database_backup_level0.rcv
HotDB.Full.001 ipasdb 06/03/03 44 MB full /opt/oracle/rman/hot_database_backup_level0.rcv
HotDB.Full.001 ipasdb 06/03/03 4353 KB full /opt/oracle/rman/hot_database_backup_level0.rcv
这条命令是用来查找6月3日备份成功的备份集,用所需要查找的日期来替换命令行中的
"06/03".输出结果应该与前面所提的备份策略一致.
3.5.2.4 检查备份服务器Sun 280R上备份软件所提供的信息
#nwadmin
nwadmin是备份管理软件的GUI操作界面.其中Pending窗口中存在内容表示有挂起的任
务,说明当天的数据库备份没有成功.
3.5.2.5 检查主数据库ipasdb的归档日志
客户成功 我们成功 24
Oracle日常维护指导手册
#ls /opt/oracle/arch/ORCL/arch
所有的归档日志都应是当天产生的, 如果存在更早的归档日志, 则说明当天凌晨的备
份有问题.现场归档日志的目录一般在/opt/oracle/arch/ORCL/arch下.具体的路径请查看
Oracle的初始化文件$ORACLE_BASE/admin/ORCL/pfile/initORCL.ora中log_archive_dest_1
参数的值.对于初始化文件中每个参数的意义请参照参考文献中《Oracle 8i
Reference ·Part No. A76961-01》一文.
如果归档目录所在卷已满会导致数据库挂起,Cluster反复切换.
3.5.2.6 检查备份服务器280R上rman catalog中的备份结果集
$rman target sys/change_on_install@ORCL catalog rman/rman@RCAT
rman>list backup of database completed after='SYSDATE-1';
rman>list backup of archivelog all completed after='SYSDATE-1';
rman>list backup of controlfile completed after='SYSDATE-1';
rman>exit
Recovery Manager: Release 8.1.7.3.0 - Production
RMAN-06005: connected to target database: ORCL (DBID=1000277484)
RMAN-06008: connected to recovery catalog database
RMAN> list backup of database completed after='SYSDATE-1';
RMAN-03022: compiling command: list
List of Backup Sets
客户成功 我们成功 25
Oracle日常维护指导手册
Key Recid Stamp LV Set Stamp Set Count Completion Time
------- ---------- ---------- -- ---------- ---------- ----------------------
24 1 495749724 0 495749318 1 03-JUN-03
List of Backup Pieces
Key Pc# Cp# Status Completion Time Piece Name
------- --- --- ----------- ---------------------- ------------------------
28 1 1 AVAILABLE 03-JUN-03 db_1_1_495749318
List of Datafiles Included
File Name LV Type Ckp SCN Ckp Time
---- ------------------------------------- -- ---- ---------- -------------
2 /opt/oracle/db02/oradata/ORCL/tools01.dbf 0 Full 190562 03-JUN-03
6 /opt/oracle/db02/oradata/ORCL/indx01.dbf 0 Full 190562 03-JUN-03
List of Backup Sets
Key Recid Stamp LV Set Stamp Set Count Completion Time
------- ---------- ---------- -- ---------- ---------- ----------------------
25 2 495749735 0 495749318 3 03-JUN-03
List of Backup Pieces
Key Pc# Cp# Status Completion Time Piece Name
------- --- --- ----------- ---------------------- ------------------------
29 1 1 AVAILABLE 03-JUN-03 db_3_1_495749318
List of Datafiles Included
File Name LV Type Ckp SCN Ckp Time
---- ------------------------------------- -- ---- ---------- -------------
4 /opt/oracle/db02/oradata/ORCL/temp01.dbf 0 Full 190564 03-JUN-03
7 /opt/oracle/db02/oradata/ORCL/drsys01.dbf 0 Full 190564 03-JUN-03
List of Backup Sets
Key Recid Stamp LV Set Stamp Set Count Completion Time
------- ---------- ---------- -- ---------- ---------- ----------------------
26 3 495749750 0 495749319 4 03-JUN-03
List of Backup Pieces
Key Pc# Cp# Status Completion Time Piece Name
客户成功 我们成功 26
Oracle日常维护指导手册
------- --- --- ----------- ---------------------- ------------------------
30 1 1 AVAILABLE 03-JUN-03 db_4_1_495749319
List of Datafiles Included
File Name LV Type Ckp SCN Ckp Time
---- ------------------------------------- -- ---- ---------- -------------
1 /opt/oracle/db02/oradata/ORCL/system01.dbf 0 Full 190565 03-JUN-03
List of Backup Sets
Key Recid Stamp LV Set Stamp Set Count Completion Time
------- ---------- ---------- -- ---------- ---------- ----------------------
27 4 495749751 0 495749318 2 03-JUN-03
List of Backup Pieces
Key Pc# Cp# Status Completion Time Piece Name
------- --- --- ----------- ---------------------- -----------------------
31 1 1 AVAILABLE 03-JUN-03 db_2_1_495749318
List of Datafiles Included
File Name LV Type Ckp SCN Ckp Time
---- ------------------------------------- -- ---- ---------- ------------
3 /opt/oracle/db02/oradata/ORCL/rbs01.dbf 0 Full 190563 03-JUN-03
5 /opt/oracle/db02/oradata/ORCL/users01.dbf 0 Full 190563 03-JUN-03
RMAN> list backup of archivelog all completed after='SYSDATE-1';
RMAN-03022: compiling command: list
List of Backup Sets
Key Recid Stamp LV Set Stamp Set Count Completion Time
------- ---------- ---------- -- ---------- ---------- ----------------------
44 5 495749761 0 495749759 5 03-JUN-03
List of Backup Pieces
Key Pc# Cp# Status Completion Time Piece Name
------- --- --- ----------- ---------------------- -----------------------
45 1 1 AVAILABLE 03-JUN-03 al_5_1_495749759
List of Archived Logs Included
Thrd Seq Low SCN Next SCN Low Time Next Time
客户成功 我们成功 27
Oracle日常维护指导手册
---- ------- ---------- ---------- --------------- ---------------
1 20 187824 190568 13-SEP-02 03-JUN-03
RMAN> list backup of controlfile completed after='SYSDATE-1';
RMAN-03022: compiling command: list
List of Backup Sets
Key Recid Stamp LV Set Stamp Set Count Completion Time
------- ---------- ---------- -- ---------- ---------- ----------------------
26 3 495749750 0 495749319 4 03-JUN-03
List of Backup Pieces
Key Pc# Cp# Status Completion Time Piece Name
------- --- --- ----------- ---------------------- ------------------------
30 1 1 AVAILABLE 03-JUN-03 db_4_1_495749319
Controlfile Included
Ckp SCN Ckp time
---------- ---------------
190564 03-JUN-03
List of Backup Sets
Key Recid Stamp LV Set Stamp Set Count Completion Time
------- ---------- ---------- -- ---------- ---------- ----------------------
48 6 495749766 0 495749763 6 03-JUN-03
List of Backup Pieces
Key Pc# Cp# Status Completion Time Piece Name
------- --- --- ----------- ---------------------- ------------------------
49 1 1 AVAILABLE 03-JUN-03 cf_6_1_495749763
Controlfile Included
Ckp SCN Ckp time
---------- ---------------
190570 03-JUN-03
客户成功 我们成功 28
Oracle日常维护指导手册
输出结果中应该包含所有数据文件,归档日志以及控制文件的备份记录.上面输出结果
中的加粗部分表示需要查看的项目.如果输出结果不全,则说明备份存在问题, 需要寻求杭
州Call Center的技术支持.
客户成功 我们成功 29
Oracle日常维护指导手册
4 附录
4.1 getinfo.sh脚本
getinfo.sh脚本是用来收集Oracle信息的.执行完成后会产生一个info.tar.gz的压缩文
件.这个文件中包含了Oracle的表空间信息,日志文件信息,内存信息,license信息,国际
支持信息,索引信息,用户信息,表分区信息,索引分区信息,排序空间信息,回滚段信
息,初始化参数信息,CPU利用率,10条磁盘I/O最大的SQL语句,10条执行次数的SQL语句,
数据库等待事件,Oracle的初始化文件,Oracle的日志信息,Oracle的出错信息.当数据库
出问题时,现场工程师可以把这个文件发给杭州P&T.他们就可以根据这些信息来诊断数据
库.同样现场工程师通过这个文件中的内容就可以对当前数据库的基本状况有了一定的了
解.
4.2 getinfo.sh脚本的执行方法
Oracle用户登陆到主数据库服务器ipasdb,执行如下的命令:
$cd $ORACLE_BASE/admin
$chmod 755 getinfo.sql
$./getinfo.sh > err>& 1
在业务相对比较空闲的时间执行这个脚本,否则有可能影响系统性能.
4.3 getinfo.sh脚本的产生结果
最终产生的文件为$ORACLE_BASE/info.tar.gz.
客户成功 我们成功 30
Oracle日常维护指导手册
4.4 getinfo.sh脚本清单:
#!/bin/sh
cd $ORACLE_BASE/admin
$ORACLE_HOME/bin/svrmgrl<=95
order by percent;
客户成功 我们成功 32
Oracle日常维护指导手册
rem ++++++++++++++++++++++++++++++++++++++++++++++++++++++
rem redo logfile information
select A.group#,A.status,bytes,member from v\$log A,v\$logfile B
where A.group#=B.group#;
rem ++++++++++++++++++++++++++++++++++++++++++++++++++++++
rem datafile information
select name,status from v\$datafile;
rem ++++++++++++++++++++++++++++++++++++++++++++++++++++++
rem sga information
show sga;
select * from v\$sgastat;
rem ++++++++++++++++++++++++++++++++++++++++++++++++++++++
rem resource limit
select * from v\$resource_limit;
rem ++++++++++++++++++++++++++++++++++++++++++++++++++++++
rem all parameter
select * from v\$parameter;
rem ++++++++++++++++++++++++++++++++++++++++++++++++++++++
rem license information
select * from v\$license;
客户成功 我们成功 33
Oracle日常维护指导手册
rem ++++++++++++++++++++++++++++++++++++++++++++++++++++++
rem NLS information
select * from v\$nls_parameters;
rem ++++++++++++++++++++++++++++++++++++++++++++++++++++++
rem statistics for rollback segments
select sum(waits)* 100 /sum(gets) "Ratio", sum(waits) "Waits",
sum(gets) "Gets"
from v\$rollstat;
select class,count from v\$waitstat where class like '%undo%';
select class,count from v\$waitstat where class like '%undo%';
select value from v\$sysstat where name='consistent gets';
select event,total_waits,time_waited,average_wait
from v\$system_event where event like '%undo%';
select n.name,s.usn,s.wraps,s.extends, decode(s.waits,0,1,1-
s.waits/s.gets) "RBS header get ratio"
from v\$rollstat s,v\$rollname n where s.usn=n.usn;
select segment_name,status from dba_rollback_segs;
rem ++++++++++++++++++++++++++++++++++++++++++++++++++++++
rem statistics for sort_area_size
select a.name, value from v\$statname a, v\$sysstat
where a.statistic# = v\$sysstat.statistic#
and a.name in ('sorts (disk)', 'sorts (memory)', 'sorts (rows)');
rem ++++++++++++++++++++++++++++++++++++++++++++++++++++++
rem statistics for top 10 executions sql statement
客户成功 我们成功 34
Oracle日常维护指导手册
select sql_text,disk_reads,executions
from
(select sql_text,disk_reads,executions from v\$sqlarea order by
executions desc)
where rownum the tablespace's
max_extents
select a.table_name, a.next_extent, a.tablespace_name
from all_tables a,
(select tablespace_name, max(bytes) as big_chunk
客户成功 我们成功 37
Oracle日常维护指导手册
from dba_free_space
group by tablespace_name ) f
where f.tablespace_name = a.tablespace_name
and a.next_extent > f.big_chunk
union
select a.index_name, a.next_extent, a.tablespace_name
from all_indexes a,
(select tablespace_name, max(bytes) as big_chunk
from dba_free_space
group by tablespace_name ) f
where f.tablespace_name = a.tablespace_name
and a.next_extent > f.big_chunk;
spool off
exit
EOF
cd $ORACLE_BASE/admin
$ORACLE_HOME/bin/exp system/manager file=logic.dmp full=y rows=n
cd $ORACLE_BASE
tar cvf info.tar admin/ORCL/bdump admin/ORCL/udump admin/ORCL/pfile
admin/info.logs admin/logic.dmp
gzip -f info.tar
5 参考文献
Oracle 8i Concepts Release 2(8.1.6)》Part No. A76965-01
下载地址:http://download-west.Oracle.com/docs/cd/A87860_01/doc/
server.817/a76965/toc.htm
Oracle 8i Administrator's Guide Release 2(8.1.6)》Part No. A76956-01
下载地址:http://download-west.Oracle.com/docs/cd/A87860_01/doc/
客户成功 我们成功 38
Oracle日常维护指导手册
server.817/a76956/toc.htm
Oracle 8i Backup and Recovery Release 2(8.1.6)》Part No. A76993-01
下载地址:http://download-west.Oracle.com/docs/cd/A87860_01/doc/
server.817/a76993/toc.htm
Oracle 8i Reference》Part No. A76961-01
下载地址:http://download-west.Oracle.com/docs/cd/A87860_01/doc/
server.817/a76961/toc.htm
Oracle 8i Recovery manager user's guide and reference》Part No.
A76990-01
下载地址:http://download-west.Oracle.com/docs/cd/A87860_01/doc/
server.817/a76990/toc.htm
Oracle 8i Error messages》Part No. A76999-01
下载地址:http://download-west.Oracle.com/docs/cd/A87860_01/doc/
server.817/a76999/toc.htm
6 术语解释
Oracle的实例:由Oracle的内存结构和Oracle进程组成的集合.一般由
ORACLE_SID环境变量定义.
Oracle的监听进程:Oracle是一个基于client/server体系结构的应用程序.
Oracle服务进程和客户端进程之间通过Oracle监听进程进行连接和转发.Oracle
监听进程一般在数据库服务器的1521号端口进行监听.
核心转储:Core dump,Unix操作系统的一个概念.进程由于非法的,不能修正
的错误,如浮点溢出,内存段错误,而导致进程异常终止.进程终止后会形成一
个文件,这个文件包含了进程终止时所有的内存信息,堆栈信息,CPU寄存器信
息等内容.通过专门的工具可以对这个文件进行分析.
Oracle控制文件:Oracle系统文件之一.用来存放Oracle主要的控制信息,如:
日志文件的位置,数据文件的位置,数据库名字,数据库归档信息等等.
客户成功 我们成功 39
Oracle日常维护指导手册
Oracle在线日志:Oracle所有增,删,改等操作都记录在在线日志中.通过在线
日志和归档日志,Oracle就可以跟踪所有的数据库更改操作,就可以做完整的数
据恢复.
Oracle表空间:Oracle所有对象都存储在表空间中,表空间是Oracle数据库中的
逻辑存储单元.它在数据库中的概念类似于操作系统中文件的概念,不同的是每
个表空间可以由一个或多个数据文件构成.
Oracle回滚段:Oracle用回滚段来保存用户已经修改但没有递交的信息.回滚段
中的信息可以用来将没递交的信息进行回退,同时也可以保证用户视图的读一致
性.
Oracle检查点:Oracle将内存中所有已经修改但没有写入数据文件的信息集中写
入的过程叫做检查点,checkpoint.
Oracle的扩展:Oracle申请空间时的最小逻辑单元叫做Oracle的扩展,extent.
Oracle的归档和非归档模式:Oracle在归档模式下时只有当一个在线日志已经归
档结束后才能被Oracle实例重新写入.非归档模式下在线日志不用归档完成就可
以被Oracle实例重新写入.
Cron: Unix操作系统的一个进程,它可以定时执行一些脚本.
7 命令解释
ps:操作系统用来检查系统进程的命令.
cat:操作系统用来浏览一个文件的命令.
more:操作系统用来浏览一个文件的命令,类似与cat.
ls: 操作系统用来显示文件和目录的命令.
grep:操作系统用来在文件中进行字符串查找的命令.
sqlplus:Oracle提供的一个工具,用来执行标准SQL语句,以对数据库进行
操作.
svrmgrl:Oracle提供的一个工具,用来启动,停止,管理数据库.同时还
可以用来执行SQL语句,以对数据库进行操作.这个工具有好多功能与
Sqlplus重复,在Oracle9i以后这个工具将被淘汰.
客户成功 我们成功 40
Oracle日常维护指导手册
rman:Oracle提供的一个工具,用来进行数据库备份,恢复的管理.它一般
结合带库,备份软件一起工作.
lsnrctl:Oracle提供的一个工具,可以用来启动,停止Oracle监听进程以
及检查 Oracle监听进程的状态.
nwadmin:Legato提供的备份软件的图形化管理软件.
mminfo: Legato提供的用于查看备份结果的工具.
客户成功 我们成功 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12778571/viewspace-200325/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2008-01-30

  • 博文量
    335
  • 访问量
    2892454