Oracle冷備份練習
備份恢復的基礎知識從很早以前就開始慢慢了解
但實踐練習方面卻一直沒有進行
而且,對於備份恢復的相關知識,感覺並沒有其它方面瞭解的深入
可對於DBA來說,備份恢復也是相當主要的職責
光是Oracle的官方文件,和Backup and Recovery有關的至少四個
Basics,Reference,Quick Start Guide,Advanced User's Guide
所以,近期可能會更多的去練習一些有關備份恢復的東西
先從最基本的開始吧,冷備份
冷備份就說要讓資料庫暫停執行,利用系統命令拷貝資料庫的所有相關檔案
這個備份的難度相對簡單(正常關閉資料庫,拷貝,就這些)
把自己的test資料庫所有控制檔案,資料檔案,引數檔案,日誌檔案,密碼檔案
拷貝到另一個目錄中,開始破壞試驗
先刪除所有test資料庫相關檔案
因為密碼檔案沒有了,所以無法正常使用SqlPlus,提示
ORA-01031: insufficient privileges
將密碼檔案拷貝回去,就可進入sqlplus了,執行startup nomount
因為引數檔案沒有了,所以出現錯誤提示
ORA-01078: failure in processing system parameters
LRM-00109:
could not open parameter file
'/home/oracle/oracle/product/10.2.0/db_1/dbs/inittest.ora'
把備份的引數檔案拷貝到相應目錄,或在啟動時指定引數檔案
startup nomount [pfile=’路徑’]
資料庫順利進入nomount模式
再轉換到mount模式,alter database mount;
因為控制檔案沒有了,所以再次出錯
ORA-00205: error in identifying control file, check alert log for more info
檢視alert檔案,得到如下錯誤提示
ORA-00202: control file: '/home/oracle/oracle/oradata/test/control01.ctl'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
再將控制檔案拷貝回去,再次轉換到mount模式,這次轉換正常
此時可以執行少部分的SQL查詢或SqlPlus命令,如
SELECT * FROM V$DATAFILE;
SHOW PARAMETER INSTANCE_NAME;
再將資料庫轉化到open狀態,alter database open;
錯誤再次出現
ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
ORA-01110: data file 1: '/home/oracle/oracle/oradata/test/system01.dbf'
檢視相應跟蹤檔案
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
(省略其它資料檔案報錯資訊)
將資料檔案拷貝回原路徑,再次轉換到open
這次報錯是因為redo log檔案
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/home/oracle/oracle/oradata/test/redo02.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
再拷回去,繼續open,沒想到這次出現了資料塊損壞,需要媒體恢復
ORA-01172: recovery of thread 1 stuck at block 41 of file 2
ORA-01151: use media recovery to recover block, restore backup if needed
file 2是undo表空間資料檔案
既然讓recovery,那就執行吧,recover datafile 2;
提示恢復結束,再次open
暈,竟然出現600錯誤了
ORA-00600: internal error code, arguments: [kdxlin:psno out of range], [], [],
[], [], [], [], []
這個是Oracle的內部未知錯誤號,一般情況,解決起來比較麻煩……
另外,因為出現600錯誤,test資料庫的sqlplus無法進行關閉資料庫等操作
需要殺掉相應程式
ps -ef|grep $ORACLE_SID|grep -v grep|awk '{print $2}'|xargs -i kill -9 {}
回憶整個試驗過程,自己是一步一步分次拷貝各個資料檔案的
所以,中途有可能發生了資料庫SCN等資訊的變化
這樣吧,一次性拷貝回所有檔案
進入sqlplus後,直接startup
暈……還錯?
ORA-01122: database file 6 failed verification check
ORA-01110: data file 6:
'/home/oracle/oracle/product/10.2.0/db_1/dbs/ts_test.dbf'
ORA-01207: file is more recent than control file - old control file
呃………………資料檔案怎麼出現在dbs目錄了???
又回憶了了一下………………想到曾經用這個庫建立過表空間建立的測試
當時也許沒有指定表空間檔案路徑,Oracle建立到預設目錄下了
再想想辦法吧……
上網找了找,大致有以下步驟
alter database backup controlfile to trace; 重建控制檔案
然後就可以根據重建的SQL語句在sqlplus中執行
簡要列舉一些步驟
STARTUP NOMOUNT;
CREATE CONTROLFILE REUSE DATABASE "TEST" NORESETLOGS ARCHIVELOG
...(省略若干子句)
RECOVER DATABASE;
ALTER SYSTEM ARCHIVE LOG ALL;
ALTER DATABASE OPEN;
ALTER TABLESPACE TEMP
ADD TEMPFILE '/home/oracle/oracle/oradata/test/temp01.dbf' REUSE;
整個走了下來,中途沒有任何異常
隨便select幾個表,結果正常
從今天試驗的整個過程中,既實踐了計劃的操作,還接觸到一些計劃外的東西
另外,自己還犯了一個錯誤,在進行試驗之前,並沒有相當謹慎的進行備份
特別是對於現有資料庫檔案的審查不夠自己
沒有通過v$datafile等檢視記錄必要的檔案路徑
所以,才丟了一個ts_test資料檔案,這種情況今後一定要避免
今天的試驗還只是很小的一部分
就當作是對備份恢復的一種初期熟悉好了 ^_^
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/556359/viewspace-528639/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 冷備份Oracle
- oracle的熱備份和冷備份Oracle
- Oracle冷備份級冷備份的不完全恢復Oracle
- Oracle OCP(60):冷備份Oracle
- Oracle冷備份和熱備份的處理Oracle
- Oracle 熱備份和冷備份的區別Oracle
- Oracle冷備份(一致備份)指令碼Oracle指令碼
- Oracle物理冷備份指令碼Oracle指令碼
- 揭祕ORACLE備份之--冷備份(也叫離線備份)Oracle
- Oracle資料庫的冷備份及冷備份異地恢復方法Oracle資料庫
- Oracle資料庫的備份方法-冷備份(轉)Oracle資料庫
- oracle自動冷備份指令碼Oracle指令碼
- Oracle冷備份的通常步驟Oracle
- Oracle資料庫冷備份與熱備份操作梳理Oracle資料庫
- windows 下的Oracle 冷備份指令碼WindowsOracle指令碼
- oracle 自動冷備份指令碼(轉)Oracle指令碼
- mysql的冷備份與熱備份MySql
- SQL Server 冷備份SQLServer
- oracle冷備份、恢復和異機恢復Oracle
- MySQL冷備份過程MySql
- 生成冷備份指令碼指令碼
- Oracle資料庫冷備份的異地恢復Oracle資料庫
- ORACLE DB建立步驟-運用冷備份和RMANOracle
- 啟動/關閉與冷備份Oracle資料庫Oracle資料庫
- windows和unix平臺下Oracle冷備份指令碼WindowsOracle指令碼
- Oracle資料庫備份與恢復之匯出/匯入(EXP/IMP)、熱備份和冷備份Oracle資料庫
- MySQL的冷備份和熱備份概念理解(轉)MySql
- 冷備份應用歸檔
- oracle冷備恢復Oracle
- 練習一下Oracle的邏輯備份恢復,EXP/IMPOracle
- 資料庫冷備份內容資料庫
- oracle 冷備及恢復Oracle
- oracle冷備指令碼薦Oracle指令碼
- oracle的冷備指令碼Oracle指令碼
- Oracle學習系列—資料庫備份—熱備份Oracle資料庫
- rman 搭建,備份,恢復基礎練習
- Backup And Recovery User's Guide-RMAN備份概念-增量備份-累積增量備份-練習GUIIDE
- 【原】Oracle學習系列—資料庫備份—RMAN備份Oracle資料庫