ORACLE数据库应急预案_第1页
ORACLE数据库应急预案_第2页
ORACLE数据库应急预案_第3页
ORACLE数据库应急预案_第4页
ORACLE数据库应急预案_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业中关村软件园数据中心数据库系统应急预案一、总则为了有效应对ORACLE数据库各类突发事故(事件),力争实现早发现、早报告、早控制、早解决,保护系统数据的安全,将突发公共事件造成的损失降到最低程度,制定本预案。应急处置的原则是以人为本,统一指挥,各负其责、反应迅速,处理果断、防患未然,消灭初险、及时上报,如实准确。本预案适用于ORACLE数据库可能发生突发事故(事件)的应急处置。二、基本概况ORACLE数据库当前共有*个服务器,*个实例。数据库详情列表序号应用操作系统用途

2、关联Ip设备型号位置管理员软件体系三、应急管理机构、联系方式及职责24小时的应急联系人和电话:应急工作人员安排表中心部门成员应急电话职责 全程组织与实施 协助组织、故障判断 排除故障、录井数据处理维护人员: 四、数据库系统发生紧急状况时的处置措施 数据库个别业务性能问题1、大部分业务基本正常,个别业务长时间执行未成功 根据应用的pid、sid等信息,找到数据库中对应的session、SQL。得到该SQL的执行计划。1)执行$ORACLE_BASE/sql/show_spid.sql即可根据SID快速获取操作系统进行号spid的信息;2)执行$ORACLE_BASE/sql/get_by_spi

3、d.sh spid,即可根据操作系统进程号依次打印执行的SQL语句和执行计划;3)执行$ORACLE_BASE/sql/showsql_pid.sql即可根据pid快速获取执行的SQL语句4)执行$ORACLE_BASE/sql/showsql_sid.sql即可根据sid快速获取执行的SQL语句如果执行计划不恰当,需要分析执行计划变化的原因(如索引不正确、统计信息过时、绑定变量偷窥等)采取相应的错误如添加缺失的索引、重新收集统计信息等,评估中止该业务的影响,尝试停止该SQL的执行后,重新收集相关表的统计信息,使业务SQL能按正确的执行计划执行。如果执行计划正确,SQL却长时间不能返回结果,则

4、按照以下办法尽快收集必要信息,再重启任务。$ sqlplus /as sysdbaoradebug setospid oradebug unlimitoradebug dump processstate 10oradebug tracefile_name-得到trace文件名exit 得到该进程的stack信息:$ sqlplus /as sysdbaoradebug setospid oradebug unlimitoradebug dump errorstack 3oradebug tracefile_name-得到trace文件名Exit如果PID、SID定位不到,则查询STATSPAC

5、K、AWR报告、v$session_wait和v$lock视图。1)执行$ORACLE_HOME/rdbms/admin/awrrpt.sql获取最近时间的AWR报告2)执行$ORACLE_BASE/sql/show_wait.sql和show_wait_global.sql快速获得v$session_wait视图的详细信息3)执行$ORACLE_BASE/sql/session_enqueue.sql获得v$lock视图中中锁持有者和锁等待者的详细信息2、单个ORACLE连接进程持续非常繁忙通过toptopasglance命令在OS上获得持续繁忙的操作系统进程号spid然后执行$ORACLE

6、_BASE/sql/get_by_spid.sh spid,即可根据操作系统进程号依次打印执行的SQL语句和执行计划;如果执行计划不恰当,需要分析执行计划变化的原因(如索引不正确、统计信息过时、绑定变量偷窥等)采取相应的错误如添加缺失的索引、重新收集统计信息等,评估中止该业务的影响,尝试停止该SQL的执行后,重新收集相关表的统计信息,使业务SQL能按正确的执行计划执行。如果执行计划正确,SQL却长时间不能返回结果,则按照以下办法尽快收集必要信息,再重启任务。$ sqlplus /as sysdbaoradebug setospid oradebug unlimitoradebug dump p

7、rocessstate 10oradebug tracefile_name-得到trace文件名exit 得到该进程的stack信息:$ sqlplus /as sysdbaoradebug setospid oradebug unlimitoradebug dump errorstack 3oradebug tracefile_name-得到trace文件名Exit数据库整体性能问题现象:业务处理总体非常缓慢,但也有部分业务能够处理完成或者数据库主机CPU持续异常很高,而且都是ORACLE连接进程造成的时候请用以下方法检查1 等待事件找到当前数据库等待最多的事件:使用ash工具来看最近15分

8、钟等待事件及造成等待事件的SQL和session ASH的收集办法:执行$ORACLE_HOME/rdbms/admin/ashrpt.sql2 获取AWR报告执行$ORACLE_HOME/rdbms/admin/awrrpt.sql获取最近时间的AWR报告3 获取执行计划用以下办法获取执行计划$ORACLE_HOME/rdbms/admin/awrsqrpt.sql或者select * from table(dbms_xplan.display_cursor(SQL_ID);得到以上SQL的执行计划后如保存有该SQL正常时期的执行计划,则判断和正常的执行计划是否有不同如果没有该SQL正常时期

9、的执行计划,则需要判断执行计划是否是否恰当。4 相应的处理建议对比历史情况分析确认这些等待是否正常,SQL执行计划是否正常,确认问题SQL对于已确认的问题SQL,评估中止该session对业务的影响:该session是否可被中止;中止后需要进行的进行的处理:是否要重新收集表的统计信息,是否要新建索引;中止该session,完成事务回滚预计需要的时间根据评估结果选择需要执行的操作:中止session、停库重启、切应急库5不能使用sqlplus / as sysdba进入数据库时确保ORACLE_SID指向问题实例后sqlplus -prelim / as sysdbaoradebug setmy

10、pidoradebug unlimit;oradebug dump systemstate 266注意:9206以下版本oradebug dump systemstate 266行用oradebug dump systemstate 10代替6能使用sqlplus / as sysdba进入数据库时1)登录窗口 1:$ sqlplus /nologconnect / as sysdbaoradebug setmypidoradebug unlimitoradebug hanganalyze 3exec dbms_lock.sleep(90);oradebug hanganalyze 3orad

11、ebug tracefile_name-得到trace文件名exit RAC环境,hanganalyze行为:oradebug -g def hanganalyze 3生成的文件在数据库连接较多时可能有几百M2) 登录窗口 2:$ sqlplus /nologconnect / as sysdbaoradebug setmypidoradebug unlimitoradebug dump systemstate 266exec dbms_lock.sleep(90);oradebug dump systemstate 266exec dbms_lock.sleep(90);oradebug d

12、ump systemstate 266oradebug tracefile_name-得到trace文件名exit注意:9206以下版本oradebug dump systemstate 266行用oradebug dump systemstate 10代替以上命令为单实例下收集的办法,在RAC环境中,systemstate对应的行需改为:oradebug -g all dump systemstate 2667 执行RDA收集信息cd $ORACLE_HOME/rdaksh rda.sh -fv8 收集最近的AWR报告执行$ORACLE_HOME/rdbms/admin/awrrpt.sql

13、获取最近时间的AWR报告9 收集ASH报告对10g以上版本,收集最近15分钟的ash报告$ORACLE_HOME/rdbms/admin/ashrpt.sql10 收集的CRS信息如果是10gR2上的RAC系统, 以root运行如下命令来收集CRS信息:$env $id $cd $ORA_CRS_HOME/bin 确认环境变量ORA_CRS_HOME/ ORACLE_BASE指向正确;HOSTNAME设为本机名后,运行:$./diagcollection.pl -collect 数据库损坏及误操作1数据库文件损坏-SPFILE文件恢复RMAN startup nomount; -通过nomou

14、nt启动数据库,则会提示SPFILE问题。RMAN set dbid ;-生产库的DBID为;RMAN restore spfile from autobackup; -系统自动搜索备份中的SPFILE,若无文件,则通过直接赋予它的文件RMAN restore spfile from F:ORABK_29_1_;-生产库中的SPFILE对应的文件是在/backup目录下以C开头的文件RMAN shutdown immediate;RMAN startup;-重启数据库即可。-控制文件恢复数据库控制文件丢失,导致数据库无法启动。RMAN startup nomount; RMAN set dbi

15、d ;-生产库的DBID为;RMAN restore controlfile from autobackup; -系统自动搜索备份中的SPFILE,若无文件,则通过直接赋予它的文件RMAN restore controlfile from F:ORABK_28_1_;-生产库中的SPFILE对应的文件是在/backup目录下以C开头的文件RMAN alter database mount;RMAN recover database;RMAN alter database open resetlogs;-数据文件恢复数据库数据文件丢失,导致数据启动报错。RMAN startup nomount;

16、 RMAN alter database mount;RMAN sql alter database datafile 4 offline; RMAN restore datafile 4; -若提示没有找到数据文件4的副本来恢复,可以用CATLOG语句注册下备份集RMAN CATALOG BACKUPPIECE F:ORABK_26_1_;RMAN restore datafile 4;RMAN recover datafile 4;RMAN sql alter database datafile 4 online;RMAN alter database open;2数据库表误操作 1)对误

17、操作表对应的表空间马上进行离线操作2) 在有限时间内尽可能通过闪回恢复被误操作的表 3)通过异机RMAN不完全恢复得到被误操作的表(步骤相对复杂) 4)通过DUL/ODU/AUL等第三方数据库恢复工具恢复被误操作的表五、30分钟内恢复业务的处置方法1、数据库系统进程故障故障现象:查看日志有报警信息事故应对:判断为数据库系统进程类故障,数据库管理员检查警告日志,根据日志错误信息判断问题所在,进行排除,如果在30分钟内还不能排除,重新启动数据库,让系统自动修复,修复不能成功,重新启动操作系统修复,还不成功,启动数据库备用恢复流程进行数据库的本机恢复;2、数据库文件丢失或损坏故障现象:数据库异常,检

18、查警告日志中的告警信息。 事故应对:判断数据库文件丢失或损坏,启动数据库本机恢复流程;3、数据库服务器硬件故障故障现象:服务器报警灯长亮,查看警告日志中的告警信息。 事故应对:判断为数据库服务器硬件故障,联系操作系统应急小组,启动操作系统应急预案,如果在30分钟内能够恢复操作系统,那么启动数据库本机恢复流程,否则,启动数据库备用恢复流程。 4、应急终止 1)当ORACLE数据库系统工作正常时,得到上级主管领导应急行动终止指令后,应急行动终止。 2)应急小组完成事故分析报告,并提出改进工作的要求和建议。 3)对于硬件故障,应急小组分析故障部件,向中心提出维修建议。 4)应急小组依据事故处置过程的

19、具体情况,对本预案的有效性进行评审,必要时对本预案进行修订和完善。附录1:数据库本机恢复流程需要恢复数据库时,数据库管理员查找数据库备份情况登记表,依据被恢复系统的备份保存路径、操作系统版本和备份方式,进行恢复1冷备恢复步骤:登录数据库服务器aix操作系统和linux操作系统:telnet *.*.*.*user:oraclepassword:(查找*oracle数据库综合情况表.xls中oracle用户口令)关闭数据库在命令窗口输入如下命令关闭数据库:sqlplus /nologconn sys/password as sysdba;shutdown (immediate/abort);下载

20、备份文件到本地aix操作系统和linux操作系统ftpopen *.*.*.*(备份服务器地址参照附表四备份路径)user:password:(备份服务器登录用户名口令参照*oracle数据库综合情况表.xls得到备份服务器用户名/口令)cd(备份路径地址参照*oracle数据库综合情况表.xls备份路径)binpromptget *.*(找到最近的一个备份文件)将原数据库数据文件、日志文件、控制文件、参数文件备份,然后删除原文件在SQL*PLUS中查看数据文件的路径:Select file_name From dba_Data_files查看日志文件路径:Select NAME From v

21、$logfile查看控制文件路径:Select name From v$controlf用备份文件恢复数据库按照以上的路径将备份文件拷贝到文件目录,启动数据库。热备(RMAN)恢复步骤启动恢复管理器rman target / catalog rman/rmancatdb RMAN startup pfile=/oracle/admin/SID/pfile/initSID.ora (指定初始化参数文件启动数据库)数据文件恢复RMAN run 2 allocate channel dev1 type disk; 3 sql alter tablespace users offline immedi

22、ate; 4 restore datafile 4; 5 recover datafile 4; 6 sql alter tablespace users online; 7 release channel dev1; 8 控制文件的恢复rmanstartup nomount;rmanset dbid=*rmanrestore controlfile from autobackup rmanalter database open resetlogs;RMAN startup mount;表空间的恢复RMAN startup mountRMAN restore tablespace tables

23、pacename;RMAN recover tablespace tablespacename;RMNA alter database open resetlogs注意: 表空间不要命名为rman的关键字, 如test整个数据库恢复RMAN restore database; (还原数据库)RMAN recover database; (恢复数据库)RMNA alter database open resetlogs; (打开数据库)不完全恢复RMAN run set until time= 20*-6-4 12:00:00;restore database;recover database;

24、sql alter database open resetlogs;逻辑备份恢复步骤重新安装数据库,设置SID与原数据库一致。安装步骤如下:aix系统或linux系统按照ORCLE数据库安装手册进行安装(参考*ORCLE数据库安装手册.doc)数据库安装完毕后,按照原数据库结构创建数据文件、表空间、用户。将数据库逻辑备份DUMP文件下载到本地dump文件位置参考备份相关文档。导入数据备份全库恢复:Imp system/passworddb file=*.dmp full=y ignore=y恢复单个用户 Imp system/passworddb file=*.dmp fromuser=user touser=user2 ignore=y grant=y附录2 备机恢复流程如果生产机已经无法正常使用,需要启用备用数据库对数据库进行恢复:系统备机恢复流程:备用数据库地址:*.*.*.*1、数据库安装,设置SID与原数据库一致ai

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论