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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C語言中迴圈語句while 中判斷條件出現 || 和 && 的區別C語言While
- recover database using backup controlfile理解Database
- JavaScript switch與if else語句的區別JavaScript
- 【SQL】14 UNION 操作符、SELECT INTO 語句、INSERT INTO SELECT 語句、CREATE DATABASE 語句、CREATE TABLE 語句SQLDatabase
- 【js迴圈語句】for與while的區別JSWhile
- do-while語句和while的區別While
- 條件語句
- Python中break語句和continue語句有什麼區別?Python
- 4.3.3 使用CREATE DATABASE語句建立CDBDatabase
- linux 中 awk語句 getline 和 enxt的區別Linux
- oracle中的條件語句Oracle
- javaScript條件語句JavaScript
- GO 條件語句Go
- Python-條件語句和迴圈語句Python
- ORA-279 signalled during: alter database recover logfileDatabase
- SQL語句case when外用sum與count的區別SQL
- Go:條件控制語句Go
- 04.條件語句
- Python if else條件語句Python
- 2.4 使用 CREATE DATABASE 語句建立資料庫Database資料庫
- 4、MySQL建立資料庫(CREATE DATABASE語句)MySql資料庫Database
- 【SQL】Oracle SQL join on語句and和where使用區別SQLOracle
- 7.Makefile中的條件語句
- 一條更新語句的執行流程
- php中條件語句的使用整理PHP
- 4.3.4 使用CREATE DATABASE語句建立一個CDB:示例Database
- 6、MySQL刪除資料庫(DROP DATABASE語句)MySql資料庫Database
- Go的條件判斷語句的使用Go
- MySQL 四種新增語句MySql
- PL/SQL 條件控制語句SQL
- Swift 條件語句講解Swift
- python-條件控制(if語句)Python
- 條件判斷語句 if case
- 學習Rust 條件語句Rust
- 「譯」寫好JavaScript條件語句的5條守則JavaScript
- Python學習筆記3(條件語句+迴圈語句)Python筆記
- SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shootDatabaseSQL
- [20181114]一條sql語句的優化.txtSQL優化
- 一條查詢語句的執行流程