溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Online Redo Log損壞處理的示例分析

發(fā)布時間:2021-11-03 17:40:33 來源:億速云 閱讀:115 作者:柒染 欄目:建站服務(wù)器

本篇文章給大家分享的是有關(guān)Online Redo Log損壞處理的示例分析,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

我們一起來看一下非一致性關(guān)閉條件下當前日志組刪除的處理。 

6、非一致性關(guān)閉當前日志組處理

 

我們回到10g Windows版本進行實驗。

 

 

 

SQL> select group#, archived, status, first_change#,sequence# from v$log;

 

    GROUP# ARCHIVED STATUS           FIRST_CHANGE#  SEQUENCE#

---------- -------- ---------------- ------------- ----------

         1 NO       CURRENT                 605509          8

         2 YES      ACTIVE                  604411          7

         3 YES      INACTIVE                604371          6

 

SQL> shutdown abort;

ORACLE 例程已經(jīng)關(guān)閉。

SQL>

 

 

E:\oracle\product\10.2.0\oradata\orcl>rename REDO01B.LOG REDO01B.LOG_bak

E:\oracle\product\10.2.0\oradata\orcl>rename REDO01A.LOG REDO01A.LOG_bak

 

 

SQL> startup

ORACLE 例程已經(jīng)啟動。

 

Total System Global Area  603979776 bytes

Fixed Size                  1250380 bytes

Variable Size             218106804 bytes

Database Buffers          377487360 bytes

Redo Buffers                7135232 bytes

數(shù)據(jù)庫裝載完畢。

ORA-00313: 無法打開日志組 1 (用于線程 1) 的成員

ORA-00312: 聯(lián)機日志 1 線程 1:

'E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ONLINELOG\O1_MF_1_85TNYSWS_.L

OG'

ORA-27041: 無法打開文件

OSD-04002: ???????

O/S-Error: (OS 2) ???????????????

ORA-00312: 聯(lián)機日志 1 線程 1:

'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ONLINELOG\O1_MF_1_85TNYS8S_.LOG'

ORA-27041: 無法打開文件

OSD-04002: ??????

O/S-Error: (OS 2) ???????????????

 

 

 

之后,使用常規(guī)方法很難打開數(shù)據(jù)庫。

 

 

SQL> recover database until cancel;

ORA-00279: 更改 605036 ( 09/23/2012 09:01:03 生成) 對于線程 1 是必需的

ORA-00289: 建議:

E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_09_23\O1_MF_1_

7_%U_.ARC

ORA-00280: 更改 605036 (用于線程 1) 在序列 #7

 

 

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

auto

ORA-00279: 更改 605509 ( 09/23/2012 09:02:53 生成) 對于線程 1 是必需的

ORA-00289: 建議:

E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_09_23\O1_MF_1_

8_%U_.ARC

ORA-00280: 更改 605509 (用于線程 1) 在序列 #8

ORA-00278: 此恢復不再需要日志文件

'E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_09_23\O1_MF_1

_7_85WQXX8S_.ARC'

 

 

ORA-00308: 無法打開歸檔日志

'E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_09_23\O1_MF_1

_8_%U_.ARC'

ORA-27041: 無法打開文件

OSD-04002: ???????

O/S-Error: (OS 2) ????????????????

 

 

ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 將出現(xiàn)如下錯誤

ORA-01194: 文件 1 需要更多的恢復來保持一致性

ORA-01110: 數(shù)據(jù)文件 1:

'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATAFILE\O1_MF_SYSTEM_85TSQFJM_.DBF'

 

 

SQL> alter database open resetlogs;

alter database open resetlogs

*

1 行出現(xiàn)錯誤:

ORA-01194: 文件 1 需要更多的恢復來保持一致性

ORA-01110: 數(shù)據(jù)文件 1:

'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATAFILE\O1_MF_SYSTEM_85TSQFJM_.DBF'

 

 

 

在處理這個問題上,處理上節(jié)介紹的備份還原的手段,我們沒有太多很好的選擇。但是,如果沒有備份的時候,我們就需要進行冒險操作。

 

之所以我們無法從mount進入open狀態(tài),主要是源于無法通過文件頭完整性檢驗步驟。在Oracle中,我們可以利用一些后門來讓Oracle不進行檢查,通過open階段。下面我們就需要在參數(shù)中添加這些配置。

 

 

SQL> shutdown abort;

ORACLE 例程已經(jīng)關(guān)閉。

SQL> startup nomount;

ORACLE 例程已經(jīng)啟動。

 

Total System Global Area  603979776 bytes

Fixed Size                  1250380 bytes

Variable Size             218106804 bytes

Database Buffers          377487360 bytes

Redo Buffers                7135232 bytes

SQL>

 

--生成PFILE

SQL> create pfile='d:\pfile.ora' from spfile;

 

文件已創(chuàng)建。

 

 

隱含參數(shù)_allow_resetlogs_corruption可以讓我們避開一致性檢查。在pfile中加入?yún)?shù)行。

 

 

(參數(shù)文件內(nèi)容)

_allow_resetlogs_corruption=TRUE

orcl.__db_cache_size=377487360

orcl.__java_pool_size=4194304

orcl.__large_pool_size=4194304

orcl.__shared_pool_size=209715200

orcl.__streams_pool_size=0

 

 

之后,嘗試打開數(shù)據(jù)庫。

 

 

SQL> shutdown abort

ORACLE 例程已經(jīng)關(guān)閉。

SQL> startup pfile='d:\pfile.ora';

ORACLE 例程已經(jīng)啟動。

 

Total System Global Area  603979776 bytes

Fixed Size                  1250380 bytes

Variable Size             218106804 bytes

Database Buffers          377487360 bytes

Redo Buffers                7135232 bytes

數(shù)據(jù)庫裝載完畢。

ORA-01589: 要打開數(shù)據(jù)庫則必須使用 RESETLOGS NORESETLOGS 選項

 

 

SQL> alter database open resetlogs;

 

數(shù)據(jù)庫已更改。

 

SQL> conn sys/oracle@orcl as sysdba

Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0

Connected as SYS

 

SQL> select group#, archived, status, first_change#,sequence# from v$log;

 

    GROUP# ARCHIVED STATUS           FIRST_CHANGE#  SEQUENCE#

---------- -------- ---------------- ------------- ----------

         1 NO       CURRENT                 605510          1

         2 YES      UNUSED                       0          0

         3 YES      UNUSED                       0          0

 

注意:這種方法是有很多的問題的。加入?yún)?shù)可以讓我們繞開一致性驗證,但是很多場景下,特別是文件損壞的場景下,啟動可能還會遇到其他錯誤信息。一旦我們打開數(shù)據(jù)庫,要明白這個庫是處在危險之中,我們能做的就是將重要數(shù)據(jù)盡快的備份出來。

無論發(fā)生何種類型的錯誤,可用、完整的備份都是我們的救命草。要制定完備的備份策略,經(jīng)常性的檢查備份有效性,防患于未燃。

以上就是Online Redo Log損壞處理的示例分析,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI