recover database的四條語句區別 .
1 recover database using backup controlfile
2 recover database until cancel
3 recover database using backup controlfile until cancel;
4 recover database until cancel using backup controlfile;
結果如下:
如果控制檔案丟失,restore備份的控制檔案後,則必須使用using backup controlfile選項。而until cancel則是不完全恢復,即current/active redo丟失,或者從restore資料庫後某個歸檔檔案缺失,則終止。
結論:
1、適用於restore舊的控制檔案,且歸檔日誌和cuurrent/active redo都沒有丟失情況。如果一切歸檔日誌和線上日誌完好,可以不丟失資料。類似於recover database
2、當前控制檔案未丟失(不需要restore舊的控制檔案),此時有歸檔日誌或者current/active log有丟失情況下,則終止。最大可能恢復資料
3、4:我在oracle 10.2.0.4環境下測試效果是相同的,即適用於restore舊的控制檔案,在恢復到控制檔案備份那刻後,系統會提示應用控制檔案備份後的歸檔日誌,如果沒有則停止。也是最大可能的恢復資料。
可以得出結果,如果有舊的資料庫備份,在歸檔日誌和線上日誌全部儲存完好的情況下,使用recover database或recover database using backup controlfile。則不丟失資料
如果存在備份資料檔案restore後,歸檔日誌或者線上日誌(active、current)丟失情況下,則可以恢復到丟失的前一個歸檔日誌
until cancel就是不完全恢復
需要alter database open resetlogs
資料庫開啟後需要理解做一個全庫備份
線上日誌檔案丟失:
如果正常關閉資料庫,然後啟動時報錯:
SQL> alter database open;
alter database open
*
第 1 行出現錯誤:
ORA-00313: 無法開啟日誌組 1 (用於執行緒 1) 的成員
ORA-00312: 聯機日誌 1 執行緒 1:
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG'
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出現錯誤:
ORA-01139: RESETLOGS 選項僅在不完全資料庫恢復後有效
SQL> recover database until cancel;
完成介質恢復。
SQL> alter database open resetlogs;
資料庫已更改。
此時不會有資料丟失
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31444259/viewspace-2135754/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【轉】 oracle備份恢復之recover database的四條語句區別OracleDatabase
- recover database until cancel和 recover database區別Database
- recover database using backup controlfile與 recover database 的區別Database
- restore,recover的區別REST
- restore和recover 區別REST
- oracle restore與recover的區別OracleREST
- Recover_DatabaseDatabase
- rman recover databaseDatabase
- C語言中迴圈語句while 中判斷條件出現 || 和 && 的區別C語言While
- 實現四則運算的一條sql語句SQL
- Flashback database與flashback table使用條件區別Database
- JavaScript switch與if else語句的區別JavaScript
- 12條語句學會oracle cbo計算(四)Oracle
- recover database until timeDatabase
- do-while語句和while的區別While
- 【js迴圈語句】for與while的區別JSWhile
- 冷備手工完全恢復(recover database,recover tablespace,recover datafile)Database
- Oracle rman中recover和restore的區別:OracleREST
- 把條件寫在單獨的if語句和放在for迴圈表示式中的區別
- oracle中的條件語句Oracle
- GO 條件語句Go
- javaScript條件語句JavaScript
- Python中break語句和continue語句有什麼區別?Python
- 限定性定語從句和非限定性定語從句的區別
- SQL語句case when外用sum與count的區別SQL
- 一條簡單SQL語句的構成及語句解析SQL
- 一條SQL語句的書寫SQL
- 一條很 巧妙的 SQL 語句SQL
- 一條sql語句的優化SQL優化
- 一條SQL語句的旅行之路SQL
- Go:條件控制語句Go
- if條件語句sed命令
- Python-條件語句和迴圈語句Python
- database和instance的區別Database
- 【SQL】14 UNION 操作符、SELECT INTO 語句、INSERT INTO SELECT 語句、CREATE DATABASE 語句、CREATE TABLE 語句SQLDatabase
- 4.3.3 使用CREATE DATABASE語句建立CDBDatabase
- 【SQL】Oracle SQL join on語句and和where使用區別SQLOracle
- 12c-RECOVER PLUGGABLE DATABASEDatabase