oracle recover redo,oracle redo log日志(当前或非当前日志)损坏之后的db恢复
出錯情況:
sql> alter database open;
alter database open
*
第 1 行出現錯誤:
ora-01113: 文件 1 需要介質恢復
ora-01110: 數據文件 1: 'f:/oracle/oradata/orcl/system01.dbf'
試圖恢復數據文件出錯:
sql> recover datafile 'f:/oracle/oradata/orcl/system01.dbf';
ora-00283: 恢復會話因錯誤而取消
ora-00322: 日志 3 (用于線程 1) 不是最新副本
ora-00312: 聯機日志 3 線程 1: 'f:/oracle/oradata/orcl/redo03.log'
聯機日志分為當前聯機日志(current)和非當前聯機日志(inactive),非當前聯機日志(inactive)的損壞是比較簡單的,一般通過clear命令就可以解決問題。
在數據庫mount或open狀態下查詢v$log,顯示log狀態。
sql> select group#,
2???????? status,
3???????? first_change#
4? from?? v$log;
group# status?????????? first_change#
---------- ---------------- -------------
1 unused???????????????? 1324963
3 current??????????????? 1363585
2 unused???????????????? 1343246
此時可以發現redo日志3是current狀態,具體恢復步驟如下:
使用clear命令清理這個文件所在的redo log group。
sql> alter database clear unarchived logfile group 3;
數據庫已更改。
sql>recover datafile 'f:/oracle/oradata/orcl/system01.dbf';
完成介質恢復。
sql> alter database open;
alter database open
*
第 1 行出現錯誤:
ora-01113: 文件 2 需要介質恢復
ora-01110: 數據文件 2: 'f:/oracle/oradata/orcl/sysaux01.dbf'
然后根據提示一步步恢復數據文件即可。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的oracle recover redo,oracle redo log日志(当前或非当前日志)损坏之后的db恢复的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 在所有表中查某个值,ora
- 下一篇: mysql查询数据为0的所有字段6_My