Controlfile 重建控制檔案 noresetlogs, resetlogs..
當資料庫當前的Redo Log都可用時(no matter 斷電或者shutdown abort),可以透過
noresetlogs
引數重建控制檔案,此時
Oracle能夠從日誌檔案中讀取Redo資訊
(同樣的,控制檔案也能夠從資料檔案中獲得詳細的檢查點資訊),記錄到控制檔案中,由於Redo中記錄的資訊足以重演所有提交成功的事物,所以能夠實現完全恢復,成功開啟資料庫,
這時的資料庫就如同進行了一次斷電之後的例項恢復,資料沒有損失,重做日誌可以繼續向前寫入
。
CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS NOARCHIVELOG
。。。。
轉儲新建的控制檔案,可看到 LOG FILE #3是當前的日誌檔案,而且包含scn等資訊。
alter session set events 'immediate trace name CONTROLF level 8'
***************************************************************************
LOG FILE RECORDS
***************************************************************************
(size = 72, compat size = 72, section max = 16, section in-use = 3,
last-recid= 0, old-recno = 0, last-recno = 0)
(extent = 1, blkno = 10, numrecs = 16)
LOG FILE #1:
name #5: E:\ORACLE\ORADATA\ORCL\ONLINELOG\O1_MF_1_G23756JL_.LOG
name #6: E:\ORACLE\FAST_RECOVERY_AREA\ORCL\ORCL\ONLINELOG\O1_MF_1_G2375PPY_.LOG
Thread 1 redo log links: forward: 2 backward: 0
siz: 0x64000 seq: 0x00000010 hws: 0x3 bsz: 512 nab: 0x16c flg: 0x0 dup: 2
Archive links: fwrd: 0 back: 0 Prev scn: 0x0000000000000000
Low scn: 0x000000000024df24 01/01/2019 17:09:28
Next scn: 0x000000000024e27c 01/01/2019 17:43:47
LOG FILE #2:
name #3: E:\ORACLE\ORADATA\ORCL\ONLINELOG\O1_MF_2_G23756JT_.LOG
name #4: E:\ORACLE\FAST_RECOVERY_AREA\ORCL\ORCL\ONLINELOG\O1_MF_2_G2375PQF_.LOG
Thread 1 redo log links: forward: 3 backward: 1
siz: 0x64000 seq: 0x00000011 hws: 0x4 bsz: 512 nab: 0x4e05 flg: 0x0 dup: 2
Archive links: fwrd: 0 back: 0 Prev scn: 0x000000000024df24
Low scn: 0x000000000024e27c 01/01/2019 17:43:47
Next scn: 0x0000000000267e7b 01/01/2019 20:59:36
LOG FILE #3:
name #1: E:\ORACLE\ORADATA\ORCL\ONLINELOG\O1_MF_3_G23756K3_.LOG
name #2: E:\ORACLE\FAST_RECOVERY_AREA\ORCL\ORCL\ONLINELOG\O1_MF_3_G2375PQ6_.LOG
Thread 1 redo log links: forward: 0 backward: 2
siz: 0x64000 seq: 0x00000012 hws: 0x2 bsz: 512 nab: 0xffffffff flg: 0xa dup: 2
Archive links: fwrd: 0 back: 0 Prev scn: 0x000000000024e27c
Low scn: 0x0000000000267e7b 01/01/2019 20:59:36
Next scn: 0xffffffffffffffff 01/01/1988 00:00:00
如果用resetlogs重建控制檔案,在恢復時就需要 RECOVER DATABASE USING BACKUP CONTROLFILE
CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 1024
。。。。
這時檢視轉儲的控制檔案,scn是0
***************************************************************************
LOG FILE RECORDS
***************************************************************************
(size = 72, compat size = 72, section max = 16, section in-use = 3,
last-recid= 0, old-recno = 0, last-recno = 0)
(extent = 1, blkno = 10, numrecs = 16)
LOG FILE #1:
name #5: E:\ORACLE\ORADATA\ORCL\ONLINELOG\O1_MF_1_G23756JL_.LOG
name #6: E:\ORACLE\FAST_RECOVERY_AREA\ORCL\ORCL\ONLINELOG\O1_MF_1_G2375PPY_.LOG
Thread 1 redo log links: forward: 2 backward: 0
siz: 0x64000 seq: 0x00000000 hws: 0x0 bsz: 512 nab: 0x0 flg: 0x1 dup: 2
Archive links: fwrd: 0 back: 0 Prev scn: 0x0000000000000000
Low scn: 0x0000000000000000 01/01/1988 00:00:00
Next scn: 0x0000000000000000 01/01/1988 00:00:00
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL ;
ORA-00279: ?? 2829520 (? 01/01/2019 22:22:52 ??) ???? 1 ????
ORA-00289: ??: E:\ORACLE\FAST_RECOVERY_AREA\ORCL\ORCL\ARCHIVELOG\2019_01_01\O1_MF_1_2_%U_.ARC
ORA-00280: ?? 2829520 (???? 1) ??? #2 ?
指定日誌: {<RET>=suggested | filename | AUTO | CANCEL}
E:\oracle\oradata\ORCL\ONLINELOG\O1_MF_2_G23756JT_.LOG
(如果當前redo日誌在,不需要指定日誌檔案,選cancel會自動media recovery。 這裡測試了把日誌檔案都移走,選cancel的話,
open resetlogs會出錯,提示需要介質恢復。)
已應用的日誌。
完成介質恢復。
SQL> alter database open resetlogs ;
資料庫已更改。
再檢視轉儲的控制檔案,logfile2,3 scn是0,到v$log能看到狀態是unused.
***************************************************************************
LOG FILE RECORDS
***************************************************************************
(size = 72, compat size = 72, section max = 16, section in-use = 3,
last-recid= 9, old-recno = 0, last-recno = 0)
(extent = 1, blkno = 10, numrecs = 16)
LOG FILE #1:
name #5: E:\ORACLE\ORADATA\ORCL\ONLINELOG\O1_MF_1_G23756JL_.LOG
name #6: E:\ORACLE\FAST_RECOVERY_AREA\ORCL\ORCL\ONLINELOG\O1_MF_1_G2375PPY_.LOG
Thread 1 redo log links: forward: 2 backward: 0
siz: 0x64000 seq: 0x00000001 hws: 0x3 bsz: 512 nab: 0xffffffff flg: 0x8 dup: 2
Archive links: fwrd: 0 back: 0 Prev scn: 0x0000000000000000
Low scn: 0x000000000029a3d3 01/01/2019 22:15:44
Next scn: 0xffffffffffffffff 01/01/1988 00:00:00
LOG FILE #2:
name #3: E:\ORACLE\ORADATA\ORCL\ONLINELOG\O1_MF_2_G23756JT_.LOG
name #4: E:\ORACLE\FAST_RECOVERY_AREA\ORCL\ORCL\ONLINELOG\O1_MF_2_G2375PQF_.LOG
Thread 1 redo log links: forward: 3 backward: 1
siz: 0x64000 seq: 0x00000000 hws: 0x2 bsz: 512 nab: 0x2 flg: 0x1 dup: 2
Archive links: fwrd: 0 back: 0 Prev scn: 0x0000000000000000
Low scn: 0x0000000000000000 01/01/1988 00:00:00
Next scn: 0x0000000000000000 01/01/1988 00:00:00
resetlogs重建控制檔案恢復時,控制檔案沒有redo資訊,rman怎麼知道恢復到哪? 答案就在資料檔案頭的RBA(Redo Byte Address) ,RBA包含了日誌檔案的序列號(log sequence)
RBA就是重做日誌塊(redo log block)的地址,相當與資料檔案中的ROWID, 透過這個地址來定位重做日誌塊 。RBA由三個部分組成:
- 日誌檔案序列號(4位元組) ——根據這個找到對應的日誌檔案地址。
- 日誌檔案塊編號(4位元組) ——根據這個找到對應日誌條目所在的日誌檔案塊。
- 重做日誌記錄在日誌塊中的起始偏移位元組數(2位元組) ——找到對應的日誌條目。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14377/viewspace-2287098/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle快速拿到重建控制檔案語句的方法二Oracle
- 惡意軟體PE檔案重建指南
- Oracle 控制檔案Oracle
- 2.6.4 指定控制檔案
- ORACLE 控制檔案(Control Files)概述Oracle
- 控制檔案損壞處理
- recover database using backup controlfile理解Database
- 【RMAN】Oracle中如何備份控制檔案?備份控制檔案的方式有哪幾種?Oracle
- 【/proc/檔案淺析】另類辦法恢復資料檔案和控制檔案
- 把“點檔案”放到版本控制中
- windwos檔案控制代碼數限制
- oracle 控制檔案及引數檔案何時自動備份Oracle
- 重建共享(db或asm)密碼檔案 in Oracle 19c RAC-20220209ASM密碼Oracle
- 使用git不希望檔案被版本控制Git
- Oracle 控制檔案損壞解決方案Oracle
- 與控制檔案有關的恢復
- 【RMAN】如果控制檔案損壞那麼如何恢復?恢復控制檔案的方式有哪幾種?
- 新建的表空間(或資料檔案)丟失以及控制檔案丟失,有新建表空間(或資料檔案)前的控制文
- Oracle 11g 重新建立控制檔案Oracle
- oracle11g修改控制檔案路徑Oracle
- git移除已經加入版本控制的檔案Git
- 修改linux最大檔案控制程式碼數Linux
- 與控制檔案有關的恢復(二)
- [20210224]控制檔案序列號滿的分析.txt
- 填報表上下載檔案控制元件可寫許可權控制控制元件
- RAC控制檔案恢復(三種不同情況)
- [20210225]控制檔案序列號滿的恢復.txt
- 清除Oracle控制檔案中的歸檔資訊v$archived_logOracleHive
- windows10系統怎麼重建BCD或修復系統引導配置檔案Windows
- rman恢復控制檔案的一個小錯誤
- 控制檔案不一致引發的“血案”
- 技術分享 | OceanBase 資料處理之控制檔案
- 支援 ACL 訪問控制、引入 HOCON 全新配置檔案格式
- 幽默:重建模、重建和重構
- oracle ORA-01189 ORA-01110(控制檔案建立報錯)Oracle
- 關於Docx動態控制word模板檔案的資料
- 透過修改控制檔案scn推進資料庫scn資料庫
- 寶塔控制皮膚php.ini檔案在哪裡找PHP