【備份與恢復】控制檔案的恢復(不完全恢復)
出現情況:
控制檔案受損,例項會立即終止。嘗試啟動,只能啟動到nomount模式中。
解決方法:
建立新的控制檔案:
日常維護中,只要修改了資料庫的物理結構,那麼就使用如下命令生成一個CREATE CONTROLFILE跟蹤,同時將跟蹤檔案放在安全的位置。隨後,我們可以建立一個能夠與任何還原版本的資料庫一起使用的控制檔案。
SQL> alter database backup controlfile to trace;
使用使用者託管的備份還原控制檔案:
使用使用者託管的備份來備份控制檔案時,要麼必須關閉資料庫,要麼必須使用如下所示的命令:
SQL> alter database backup controlfile to '';
為了還原控制檔案的一個備份,就需要將這個備份複製至例項引數CONTROL_FILES所指定的位置,並且使用STARTUP MOUNT命令在載入模式中啟動資料庫,隨後還需要執行下面的命令:
SQL> recover database until cancel using backup controlfile;
此時會提示輸入某些歸檔日誌,並且在恢復失敗之前會應用這些歸檔日誌。恢復失敗的原因是由於被提示輸入一個並不存在的歸檔日誌:這是當前聯機日誌的序列號,並且尚未被歸檔。此時,我們必須輸入當前聯機日誌組某個成員的名稱。如果不知道當前的聯機日誌組,那麼可以依次嘗試每個組的成員,最終就可以得到一個正確的名稱,同時恢復也將完成。隨後,我們能夠在不丟失任何資料的情況下使用RESETLOGS命令開啟資料庫。雖然仍就必須建立一個新的資料庫場景,但是丟失控制檔案的不完全恢復語法實際上會導致一個完全恢復。
如果被還原的資料庫的結構與當前結構不同,那麼進行不完全恢復時也可以使用RECOVER DATABASE UNTIL …… BACKUP CONTROLFILE語法。此時,我們必須還原控制檔案以及所有資料檔案。應用重做直至指定的時間點,隨後可以繼續正常地進行各種操作。
使用RMAN還原控制檔案:
RMAN可以透過以下幾種方式備份控制檔案:
RMAN> backup as copy current controlfile;
RMAN> backup as backupset current controlfile;
RMAN> backup tablespace system include current controlfile;
RMAN> configure controlfile autobackup on;
控制檔案的還原問題是一個遞迴的問題。解決這個問題的2中方法是:首先,如果使用一個獨立的恢復目錄資料庫,那麼這個資料庫具有儲存倉庫的一個副本。此時,RMAN能夠輕易地定位控制檔案備份並進行還原與備份。其次,如果沒有使用回覆目錄資料庫,那麼配置的控制檔案的自動備份功能就至關重要。
即使在nomount模式中,也可以使用如下命令從控制檔案自動備份中還原控制檔案:
RMAN> resotre controlfile from autobackup;
如果多個資料庫共享同一個自動備份目的地(類似於多個資料庫具有一個公共的閃回恢復區的情況),那麼就必須提供DBID,從而使RMAN能夠還原正確的控制檔案。
使用下面的命令能夠找出DBID:
SQL> select dbid from v$database;
DBID
----------------
3385973595
隨後,使用如下所示的程式碼塊還原與恢復控制檔案:
RMAN> run {
startup nomount;
set dbid 3385973595;
restore controlfile from autobackup;
alter database mount;
recover database;
alter database open resetlogs;}
控制檔案受損,例項會立即終止。嘗試啟動,只能啟動到nomount模式中。
解決方法:
建立新的控制檔案:
日常維護中,只要修改了資料庫的物理結構,那麼就使用如下命令生成一個CREATE CONTROLFILE跟蹤,同時將跟蹤檔案放在安全的位置。隨後,我們可以建立一個能夠與任何還原版本的資料庫一起使用的控制檔案。
SQL> alter database backup controlfile to trace;
使用使用者託管的備份還原控制檔案:
使用使用者託管的備份來備份控制檔案時,要麼必須關閉資料庫,要麼必須使用如下所示的命令:
SQL> alter database backup controlfile to '
為了還原控制檔案的一個備份,就需要將這個備份複製至例項引數CONTROL_FILES所指定的位置,並且使用STARTUP MOUNT命令在載入模式中啟動資料庫,隨後還需要執行下面的命令:
SQL> recover database until cancel using backup controlfile;
此時會提示輸入某些歸檔日誌,並且在恢復失敗之前會應用這些歸檔日誌。恢復失敗的原因是由於被提示輸入一個並不存在的歸檔日誌:這是當前聯機日誌的序列號,並且尚未被歸檔。此時,我們必須輸入當前聯機日誌組某個成員的名稱。如果不知道當前的聯機日誌組,那麼可以依次嘗試每個組的成員,最終就可以得到一個正確的名稱,同時恢復也將完成。隨後,我們能夠在不丟失任何資料的情況下使用RESETLOGS命令開啟資料庫。雖然仍就必須建立一個新的資料庫場景,但是丟失控制檔案的不完全恢復語法實際上會導致一個完全恢復。
如果被還原的資料庫的結構與當前結構不同,那麼進行不完全恢復時也可以使用RECOVER DATABASE UNTIL …… BACKUP CONTROLFILE語法。此時,我們必須還原控制檔案以及所有資料檔案。應用重做直至指定的時間點,隨後可以繼續正常地進行各種操作。
使用RMAN還原控制檔案:
RMAN可以透過以下幾種方式備份控制檔案:
RMAN> backup as copy current controlfile;
RMAN> backup as backupset current controlfile;
RMAN> backup tablespace system include current controlfile;
RMAN> configure controlfile autobackup on;
控制檔案的還原問題是一個遞迴的問題。解決這個問題的2中方法是:首先,如果使用一個獨立的恢復目錄資料庫,那麼這個資料庫具有儲存倉庫的一個副本。此時,RMAN能夠輕易地定位控制檔案備份並進行還原與備份。其次,如果沒有使用回覆目錄資料庫,那麼配置的控制檔案的自動備份功能就至關重要。
即使在nomount模式中,也可以使用如下命令從控制檔案自動備份中還原控制檔案:
RMAN> resotre controlfile from autobackup;
如果多個資料庫共享同一個自動備份目的地(類似於多個資料庫具有一個公共的閃回恢復區的情況),那麼就必須提供DBID,從而使RMAN能夠還原正確的控制檔案。
使用下面的命令能夠找出DBID:
SQL> select dbid from v$database;
DBID
----------------
3385973595
隨後,使用如下所示的程式碼塊還原與恢復控制檔案:
RMAN> run {
startup nomount;
set dbid 3385973595;
restore controlfile from autobackup;
alter database mount;
recover database;
alter database open resetlogs;}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11411056/viewspace-733743/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RAC備份恢復之Voting備份與恢復
- 備份與恢復:polardb資料庫備份與恢復資料庫
- MySQL 非常規恢復與物理備份恢復MySql
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- XFS檔案系統的備份、恢復、修復
- MySQL 備份與恢復MySql
- Jenkins備份與恢復Jenkins
- Postgresql 備份與恢復SQL
- GitLab的備份與恢復Gitlab
- DB的備份與恢復
- MySQL備份與恢復——基於MyDumper/MyLoader 邏輯備份恢復MySql
- 與控制檔案有關的恢復
- MySQL備份與恢復——基於OUTFILE /LOAD DATA 邏輯備份恢復MySql
- 備份和恢復
- mydumper備份恢復
- Mysql備份恢復MySql
- Oracle 備份 與 恢復 概述Oracle
- Linux中XFS檔案系統的備份,恢復,修復Linux
- 12 使用RMAN備份和恢復檔案
- 與控制檔案有關的恢復(二)
- 詳解叢集級備份恢復:物理細粒度備份恢復
- RMAN備份恢復典型案例——異機恢復未知DBID
- Mysql備份與恢復(1)---物理備份MySql
- 備份與恢復oracle_homeOracle
- 《入門MySQL—備份與恢復》MySql
- DB2備份與恢復DB2
- MySQL備份與恢復——實操MySql
- 入門MySQL——備份與恢復MySql
- MySQL備份與恢復操作解析MySql
- Mysql資料備份與恢復MySql
- RMAN備份與恢復測試
- redis 備份和恢復Redis
- RMAN備份恢復技巧
- KunlunDB備份和恢復
- Grafana 備份恢復教程Grafana
- rman 增量備份恢復
- Elasticsearch叢集的備份與恢復Elasticsearch
- Linux 系統的備份與恢復Linux
- Mysql的幾種備份與恢復MySql