聯機日誌檔案丟失解決方法
非歸檔模式的當前聯機日誌檔案的丟失。
由於丟失的當前的聯機日誌檔案,所以可能會丟失部分資料,破壞資料庫的完整性,而且普通的重建
日誌檔案的方式是不可行的,這個時候我們需要藉助隱含引數_ALLOW_READ_ONLY_CORRUPTION或者
_ALLOW_RESETLOGS_CORRUPTION開啟資料庫。開啟完資料庫後立即用EXP/EXPDP匯出資料,然後重建資料庫。如果有備份,我們可以考慮藉助備份恢復,但是由於資料庫處於非歸檔模式,即使是備份也是資料庫某
一個時間點的快照,所以會丟失從備份時間點到現在的資料。當然用隱含引數開啟資料庫,會破壞資料庫的完整性。
SQL> SELECT NAME,OPEN_MODE,LOG_MODE FROM V$DATABASE;
NAME OPEN_MODE LOG_MODE
--------- ---------- ------------
TOMSYAN READ WRITE NOARCHIVELOG
--------- ---------- ------------
TOMSYAN READ WRITE NOARCHIVELOG
SQL> SELECT GROUP#,SEQUENCE#,STATUS FROM V$LOG;
GROUP# SEQUENCE# STATUS
---------- ---------- ----------------
1 106 INACTIVE
2 104 INACTIVE
3 107 CURRENT
---------- ---------- ----------------
1 106 INACTIVE
2 104 INACTIVE
3 107 CURRENT
SQL> SELECT MEMBER FROM V$LOGFILE WHERE GROUP#=3;
MEMBER
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\REDO03.LOG
SQL> SHUTDOWN IMMEDIATE
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> HOST DEL C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\REDO03.LOG
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> HOST DEL C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\REDO03.LOG
SQL> STARTUP
ORACLE 例程已經啟動。
ORACLE 例程已經啟動。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 239078276 bytes
Database Buffers 364904448 bytes
Redo Buffers 7135232 bytes
資料庫裝載完畢。
ORA-00313: 無法開啟日誌組 3 (用於執行緒 1) 的成員
ORA-00312: 聯機日誌 3 執行緒 1:
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\REDO03.LOG'
Fixed Size 1250428 bytes
Variable Size 239078276 bytes
Database Buffers 364904448 bytes
Redo Buffers 7135232 bytes
資料庫裝載完畢。
ORA-00313: 無法開啟日誌組 3 (用於執行緒 1) 的成員
ORA-00312: 聯機日誌 3 執行緒 1:
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\REDO03.LOG'
SQL> SELECT GROUP#,SEQUENCE#,STATUS FROM V$LOG;
GROUP# SEQUENCE# STATUS
---------- ---------- ----------------
1 106 INACTIVE
3 107 CURRENT
2 104 INACTIVE
---------- ---------- ----------------
1 106 INACTIVE
3 107 CURRENT
2 104 INACTIVE
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 3;
ALTER DATABASE CLEAR LOGFILE GROUP 3
*
第 1 行出現錯誤:
ORA-00313: 無法開啟日誌組 3 (用於執行緒 1) 的成員
ORA-00312: 聯機日誌 3 執行緒 1:
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\REDO03.LOG'
ORA-27041: 無法開啟檔案
OSD-04002: 無法開啟檔案
O/S-Error: (OS 2) 系統找不到指定的檔案。
ALTER DATABASE CLEAR LOGFILE GROUP 3
*
第 1 行出現錯誤:
ORA-00313: 無法開啟日誌組 3 (用於執行緒 1) 的成員
ORA-00312: 聯機日誌 3 執行緒 1:
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\REDO03.LOG'
ORA-27041: 無法開啟檔案
OSD-04002: 無法開啟檔案
O/S-Error: (OS 2) 系統找不到指定的檔案。
即使日誌檔案存在,如果日誌檔案損壞,重建當前的日誌檔案也不可行。
利用隱含引數_ALLOW_READ_ONLY_CORRUPTION開啟資料庫
SQL> ALTER SYSTEM SET "_ALLOW_READ_ONLY_CORRUPTION"=TRUE SCOPE=SPFILE;
系統已更改。
SQL> SHUTDOWN IMMEDIATE;
ORA-01109: 資料庫未開啟
ORA-01109: 資料庫未開啟
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> STARTUP MOUNT
ORACLE 例程已經啟動。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 239078276 bytes
Database Buffers 364904448 bytes
Redo Buffers 7135232 bytes
資料庫裝載完畢。
SQL> ALTER DATABASE OPEN READ ONLY;
Fixed Size 1250428 bytes
Variable Size 239078276 bytes
Database Buffers 364904448 bytes
Redo Buffers 7135232 bytes
資料庫裝載完畢。
SQL> ALTER DATABASE OPEN READ ONLY;
資料庫已更改。
SQL> SELECT NAME,OPEN_MODE,LOG_MODE FROM V$DATABASE;
NAME OPEN_MODE LOG_MODE
--------- ---------- ------------
TOMSYAN READ ONLY NOARCHIVELOG
--------- ---------- ------------
TOMSYAN READ ONLY NOARCHIVELOG
這種以只讀方法開啟的資料庫,並不會重建當前的日誌檔案,優點不會對當前的資料檔案造成破壞。
趕緊匯出資料庫吧。
利用隱含引數_ALLOW_RESETLOGS_CORRUPTION開啟資料庫
SQL> ALTER SYSTEM RESET "_ALLOW_READ_ONLY_CORRUPTION" SCOPE=SPFILE SID='*';
系統已更改。
SQL> ALTER SYSTEM SET "_ALLOW_RESETLOGS_CORRUPTION"=TRUE SCOPE=SPFILE;
系統已更改。
SQL> SHUTDOWN IMMEDIATE
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> STARTUP MOUNT
ORACLE 例程已經啟動。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 239078276 bytes
Database Buffers 364904448 bytes
Redo Buffers 7135232 bytes
資料庫裝載完畢。
Fixed Size 1250428 bytes
Variable Size 239078276 bytes
Database Buffers 364904448 bytes
Redo Buffers 7135232 bytes
資料庫裝載完畢。
下面需要做一次 media recover 不要OPEN 或者直接OPEN RESETLOGS方式開啟資料庫。
SQL> RECOVER DATABASE UNTIL CANCEL;
完成介質恢復。
SQL> ALTER DATABASE OPEN RESETLOGS;
完成介質恢復。
SQL> ALTER DATABASE OPEN RESETLOGS;
資料庫已更改。
如果 OPEN 方式開啟資料庫 會有下面的錯誤
SQL> ALTER DATABASE OPEN ;
ALTER DATABASE OPEN
*
第 1 行出現錯誤:
ORA-03113: 通訊通道的檔案結束
SQL> ALTER DATABASE OPEN ;
ALTER DATABASE OPEN
*
第 1 行出現錯誤:
ORA-03113: 通訊通道的檔案結束
如果 OPEN RESETLOGS 方式開啟資料庫 會有下面的錯誤
SQL> ALTER DATABASE OPEN RESETLOGS;
ALTER DATABASE OPEN RESETLOGS
*
第 1 行出現錯誤:
ORA-01139: RESETLOGS 選項僅在不完全資料庫恢復後有效。
ALTER DATABASE OPEN RESETLOGS
*
第 1 行出現錯誤:
ORA-01139: RESETLOGS 選項僅在不完全資料庫恢復後有效。
通過這種方法開啟資料庫,Oracle會重建日誌檔案。
通過隱含引數開啟資料庫,Oracle會跳過資料庫的一致性檢查,對資料庫造成一定的負面影響。這個時候
通過隱含引數開啟資料庫,Oracle會跳過資料庫的一致性檢查,對資料庫造成一定的負面影響。這個時候
我們應該立即匯出資料,重建個空資料庫,然後再匯入,以防資料庫以後遇到麻煩。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28894640/viewspace-765037/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle DataGuard歸檔日誌丟失處理方法Oracle
- win10 計算機丟失logmanager怎麼辦 win10丟失log.dll檔案的解決方法Win10計算機
- nuget打包檔案丟失如何使用powershell指令碼解決指令碼
- thinkphp5丟失日誌問題,該如何解決?PHP
- 計算機提示丟失BSE.ocx檔案如何解決?計算機
- vcruntime140.dll丟失的解決方法
- Laravel日誌檔案寫入失敗(permission denied)Laravel
- windows10系統由於丟失ntldr檔案無法開機怎麼解決Windows
- 救援丟失的Docx和Xlsx檔案的最佳方法
- 世界備份日——如果您丟失了所有檔案
- mysql的日誌檔案詳解MySql
- 限制 Apache日誌檔案大小的方法Apache
- win10桌面檔案丟失怎麼辦_win10開機桌面檔案丟失如何找回Win10
- 測試在丟失歸檔日誌的情況下,跳過部分歸檔日誌進行資料恢復資料恢復
- oracle丟失的是所有的redo日誌組Oracle
- Win7系統電腦提示“libeay32.dll檔案丟失”的兩種解決方法Win7
- Sql Server資料庫檔案丟失的恢復方法SQLServer資料庫
- 直接分離刪除日誌檔案後附加報錯的簡單解決方法
- Linux下日誌檔案過大解決方案Linux
- 將企業檔案共享解決方案與資料丟失防護配對
- 伺服器不能啟動,修復後部分檔案丟失怎麼解決伺服器
- Sqlserver系統資料庫和使用者資料庫日誌檔案全部丟失的恢復SQLServer資料庫
- RMAN-ERROR:因為找不到過期和丟失的歸檔日誌而備份失敗Error
- 升級Win10專業版系統後丟失檔案怎麼解決Win10
- 面對oracle ocfs2檔案丟失,你能想到解決辦法有哪些?Oracle
- OpenSIPS 2.4.2 高併發下,日誌丟失怎麼辦
- 【MySQL日誌】MySQL日誌檔案初級管理MySql
- Win10系統下所有字型丟失的解決方法Win10
- 電腦檔案丟失資料恢復資料恢復
- MySQL提升筆記(3)日誌檔案詳解MySql筆記
- java專案日誌配置檔案Java
- Nginx session丟失問題處理解決方法NginxSession
- JavaScript精度丟失原因以及解決方案JavaScript
- Feign 呼叫丟失Header的解決方案Header
- RocketMq訊息丟失問題解決MQ
- win10丟失msvbvm50.dll怎麼辦_win10提示計算機中丟失msvbvm50.dll的解決方法Win10計算機
- Oracle歸檔檔案丟失導致OGG不用啟動Oracle
- MySQL InnoDB日誌檔案配置MySql
- sybase iq日誌檔案管理