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

提交評論