1. 程式人生 > >Oracle備份恢復-控制檔案損壞的各種場景恢復專題

Oracle備份恢復-控制檔案損壞的各種場景恢復專題

1、檢視資料庫基本資訊和資料庫狀態       
SQL> show parameter db_name


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_name                              string      leonliao


SQL> show parameter control_files


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      /home/oracle/oradata/leonliao/
                                                 control01.ctl, /home/oracle/or
                                                 adata/leonliao/control02.ctl

SQL> select * from v$logfile;


    GROUP# STATUS  TYPE    MEMBER                                             IS_
---------- ------- ------- -------------------------------------------------- ---
         1         ONLINE  /home/oracle/oradata/leonliao/redo01.log           NO
         3         ONLINE  /home/oracle/oradata/leonliao/redo03.log           NO
         2         ONLINE  /home/oracle/oradata/leonliao/redo02.log           NO

SQL> select open_mode from v$database;


OPEN_MODE
--------------------
READ WRITE    


2、備份控制檔案
RMAN> backup current controlfile;     


3、資料庫線上時刪除所有控制檔案和redo檔案
[
[email protected]
leonliao]$ rm -rf control0*ctl
[[email protected] leonliao]$ rm -rf redo0*log
[[email protected] leonliao]$ pwd
/home/oracle/oradata/leonliao

4、無法正常關閉資料庫只能shutdown abort
SQL> shutdown immediate
Database closed.
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/home/oracle/oradata/leonliao/control01.ctl'
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3

SQL> shutdown abort
ORACLE instance shut down.
SQL> 

5、啟動資料庫到nomount狀態並還原備份的控制檔案
SQL> startup nomount
ORACLE instance started.


Total System Global Area  626327552 bytes
Fixed Size                  2230952 bytes
Variable Size             184550744 bytes
Database Buffers          432013312 bytes
Redo Buffers                7532544 bytes


RMAN> restore controlfile from '/u01/app/oracle/dbs/01qvmtbj_1_1';


6、將資料庫啟動到mount狀態並生成建立控制檔案的指令碼
SQL> alter database mount;

Database altered.

SQL> alter database backup controlfile to trace;

Database altered.



7、shutdown immediate並啟動到startup nomount狀態建立resetlogs的控制檔案
SQL> shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL> startup nomount
ORACLE instance started.


Total System Global Area  626327552 bytes
Fixed Size                  2230952 bytes
Variable Size             184550744 bytes
Database Buffers          432013312 bytes
Redo Buffers                7532544 bytes
SQL> CREATE CONTROLFILE REUSE DATABASE "LEONLIAO" RESETLOGS  ARCHIVELOG
  2      MAXLOGFILES 16
  3      MAXLOGMEMBERS 3
  4      MAXDATAFILES 100
  5      MAXINSTANCES 8
  6      MAXLOGHISTORY 292
  7  LOGFILE
  8    GROUP 1 '/home/oracle/oradata/leonliao/redo01.log'  SIZE 50M BLOCKSIZE 512,
  9    GROUP 2 '/home/oracle/oradata/leonliao/redo02.log'  SIZE 50M BLOCKSIZE 512,
 10    GROUP 3 '/home/oracle/oradata/leonliao/redo03.log'  SIZE 50M BLOCKSIZE 512
 11  -- STANDBY LOGFILE
 12  DATAFILE
 13    '/home/oracle/oradata/leonliao/system01.dbf',
 14    '/home/oracle/oradata/leonliao/sysaux01.dbf',
 15    '/home/oracle/oradata/leonliao/undotbs01.dbf',
 16    '/home/oracle/oradata/leonliao/users01.dbf'
 17  CHARACTER SET ZHS16GBK
 18  ;

Control file created.


8、因為所有redo檔案都刪除了,無法恢復,所以會出現一致性的問題,通過設定隱含引數_allow_resetlogs_corruption為true跳過一致性檢查;
SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile;

System altered.

SQL> shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.

SQL> startup mount
ORACLE instance started.

Total System Global Area  626327552 bytes
Fixed Size                  2230952 bytes
Variable Size             184550744 bytes
Database Buffers          432013312 bytes
Redo Buffers                7532544 bytes
Database mounted.

9、以open resetlogs方式開啟資料庫
SQL> alter database open resetlogs;

Database altered.

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ WRITE

相關推薦

Oracle備份恢復-控制檔案損壞各種場景恢復專題

1、檢視資料庫基本資訊和資料庫狀態        SQL> show parameter db_name NAME                                 TYPE        VALUE ------------------------------------ -------

oracle備份之rman_恢復控制檔案

測試環境:redhat 5.5  oracle 11g RMAN> backup database; Starting backup at 21-DEC-17 using channel ORA_DISK_1 channel ORA_DISK_1: starting full d

Oracle聯機日誌檔案損壞後的恢復方法

Oracle聯機日誌檔案損壞後的恢復方法 李守亮 2004-11-12 Oracle聯機日誌分為當前聯機日誌和非當前聯機日誌,非當前聯機日誌的損壞是比較簡單的,一般通過clear命令就可以解決問題。 1、啟動資料庫,遇到ORA-00312 or ORA-00313錯誤,如 ORA-0

ARCHIVELOG模式下使用者管理的不完全恢復—基於備份控制檔案的不完全恢復

基於備份控制檔案的恢復只要適用於以下情況:表空間被意外刪除;所有控制檔案全部損壞。   先關閉資料庫,執行一次全庫冷備份。 [sql] view plain copy print ?

ORACLE RMAN 各種場景恢復

--恢復整個資料庫 run { shutdown immediate; startup mount; restore database; recover database; alter database open; } --恢復表空間users run { sql 'alter tables

歸檔模式下無備份資料檔案損壞的完全恢復-2

資料檔案在無備份的情況下恢復 如果控制檔案,聯機重做日誌檔案都沒有損壞,而只是資料檔案損壞,並且沒有備份喲,但是歸檔日誌必須存在,則可以完全恢復。 啟動實驗 create tablespace test2 datafile 'D:\oracle\product\10.

oracle恢復控制檔案

資料庫在執行過程當中,可能會處於某種原因導致控制檔案丟失或者損壞,資料庫檔案記錄著資料庫的結構資訊,包括資料檔案,歸檔日誌檔案等資料庫的重要資訊,控制檔案丟失,直接會導致資料庫宕機。這篇部落格會模擬各種控制檔案丟失的情況,來恢復資料庫的正常使用。 丟失部分控制檔案 控制檔

ARCHIVELOG模式下使用者管理恢復控制檔案—使用trace檔案重建控制檔案

首先生成控制檔案的sql指令碼 [sql] view plain copy print ? SQL> alter database backup contr

ARCHIVELOG模式下使用者管理恢復控制檔案—使用二進位制控制檔案恢復

在生產資料庫中,控制檔案一般多路複用的。每個控制檔案的內容是一模一樣的,只要其中有一個沒有丟失,那麼就可以複製一下,改一下名字就可以用了。   首先在資料庫中備份執行一個二進位制的控制檔案,也可以使用作業系統的命令直接複製控制檔案來備份。 [sql]

聯機日誌檔案損壞後的恢復方法

昨天遇到一個Oracle資料庫 的問題,環境是:Windows2000+Oracle9i。 使用windows關機重啟後,oracle無法連線,當用startup啟動時總是報ORA-00333錯誤,檢查Oracle文件對此問題的描述,如下: ORA-00333 redo log read error

Oracle備份之資料檔案等的轉移,遷移

如果原盤快滿了,要把dbf檔案轉移到新的大的盤,可以做如下操作: 測試環境:redhat 5.5,oracle 12g r2 測試移動資料檔案 CREATE TABLESPACE tbs_test1219 DATAFILE  '/opt/oracle/oradata/ORCL/te

Oracle備份歸檔日誌檔案的兩種方法比較

備份歸檔日誌方式有兩種:  1 單獨備份歸檔日誌:backup archivelog all  2 在執行備庫時一起備份歸檔日誌:backup database plus archivelog;  這兩種方式有什麼區別呢?  執行ba

mysql InnoDB idata1檔案損壞,單個恢復表格資料

伺服器異常斷電,導致mysql某一個table .idb檔案損壞,在idata1頁存在異常損壞; 在開啟mysql服務一開啟就之後據自動關閉,提示異常服務終端異常; mysql資料維護人員一定要有定時備份資料,利用mysql worhbench 的management

硬碟視訊檔案損壞如何快速恢復

   我這人喜歡文藝的東西,不在乎價值,看中心意,這不,今年是我第二個本命年,朋友們都說一定要好好過。他們都紛紛給我準備了禮物,雖然都24歲了,但是因為讀研究生的關係,大家都沒有太多錢。但朋友們還是合夥給我錄製了一個祕密視訊,頂尖資料恢復軟體http://www.crsk

RMAN學習3——其他備份控制檔案、歸檔日誌、spfile、備份集)

1、控制檔案備份 (1)備份到預設目錄 RMAN> backup current controlfile; 啟動 backup 於 17-7月 -12 使用通道 ORA_DISK_1 通道 ORA_DISK_1: 正在啟動全部資料檔案備份集 通道 ORA_DISK_

Oracle 基於備份控制檔案恢復(unsing backup controlfile)

    通常在當前控制檔案丟失,或者當前的控制檔案與需要恢復的控制檔案不一致的情況下,我們需要重新建立一個控制檔案或者使用 unsingbackup controlfile方式來恢復控制檔案。說簡單點,只要是備份的控制檔案與當前的控制檔案不一致進行恢復資料庫,就需要使用到 u

oracle-控制檔案備份恢復

控制檔案(control file)是資料庫重要的檔案,一旦其丟失將導致資料庫宕機。控制檔案在資料庫的MOUNT階段被讀取,它記錄著資料庫許多重要的資訊。因此控制檔案的日常檢查以及一些常規故障恢復方法就是需要我們必須要掌握的。 一、控制檔案的查詢 -->通過引數查詢

oracle備份之rman_恢復資料檔案

測試環境:redhat 5.5 oracle 11g 測試步驟: 1.備庫 2.插資料 3.刪dbf 4.關閉並啟動到mount 5.restore 6.recover 7.開啟 RMAN> backup database; Starting back

ORACLE控制檔案備份

1、將控制檔案備份為二進位制檔案 SQL>alter database backup controlfile to 'i:\oracle\backup\control.bkp'; 2、將控制檔案備份為文字檔案(備份到oracle\base\admin\sid\udump目錄下的跟蹤檔案中,將在跟蹤檔案

Oracle:如何備份控制檔案?

 一、作業系統:Windows 2000   二、資料庫: Oracle 8i (8.1.7) for NT 企業版   三、安裝路徑:D:\ORACLE   實現方法:   1、   ALTER DATABASE BACKUP CONTROLFILE TO TRACE;   ALTER DATABASE B