Oracle解決ORA-01034:?ORACLE?not?available問題的辦法
這個…不知道是鏡像問題還是配置上有問題,Docker版的Oracle 11g在上次部署完之后已經出現了多次無法訪問的情況(就是 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g這個鏡像),最后一次修復已經將連接數從150(默認)提升到8000,這次無法訪問肯定不是連接數已滿的問題。
遇事不要慌,先通過docker exec進入容器內部連接一下oracle數據庫,看到的是
ORA-01034: ORACLE not available
這…難道是之前為了修改連接數直接關機導致日志無法歸檔么?
上網查了些資料,最終通過如下步驟解決的:
- 先用sqlplus使用sysdba權限訪問連接數據庫
[oracle@e156e1b777f5 -]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Sun Nov 14 13:36:28 2021 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to an idle instance.
- 查詢v$log看看能否正常查詢到日志信息
SQL> select * from v$log; select × from v$log ERROR at line 1: ORA-01034: ORACLE not available Process ID: 0 Session ID: 0 Serial number: 0
- 在發(fā)現報ORA-01034: ORACLE not available錯誤后,我們再試試操作resetlogs
SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1: ORA-01034: ORACLE not available Process ID: O Session ID: 0 Serial number: 0
要注意,這里使用resetlogs方式打開數據庫對oracle進行恢復是存在風險的,如果日志文件沒有損壞的情況下可以直接恢復就可以了,這次的情況比較麻煩,所以才想用這種方式進行。
- 既然所有操作都報錯了,就先關閉實例
SQL> shutdown immediate; ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Linux-x86 64 Error: 2: No such file or directory
- 重新掛載啟動
SQL> startup mount; ORACLE instance started. Total System Global Area 1603411968 bytes Fixed Size 2213776 bytes Variable Size 1342179440 bytes Database Buffers 251658240 bytes Redo Buffers 7360512 bytes Database mounted.
- 重啟之后再嘗試使用resetlogs打開數據庫
SQL> alter database open resetlogs; alter database open resetlogs ERROR at line 1: ORA-01139: RESETLOGS option only valid after an incomplete database recovery
這里又是一個ERROR,先不要管它繼續(xù)下一步操作
- 這時我們又再查一次v$log

如上圖所示,通過v$log得知日志只記錄到昨天(11月13日),還好不是生產環(huán)境的一天的時間還能夠接受。
- 通過recover database命令進行數據恢復
SQL> recover database until time '2021-11-13 00:00:00' ORA-10879: error signaled in parallel recovery slave ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '/home/oracle/app/oracle/oradata/helowin/systeml.dbf'
嗯…沒有頭緒還是先“重啟”吧
SOL> shutdown; ORA-01109: database not open Database dismounted. ORACLE instance shut down. SOL> startup ORACLE instance started. Total System Global Area 1603411968 bytes Fixed Size 2213776 bytes Variable Size 1342179440 bytes Database Buffers 251658240 bytes Redo Buffers 7360512 bytes Database mounted. ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
這次連啟動也報錯,真是“一波未平一波又起”。
- sqlplus再查詢一次l日志

既然這樣就手動redo一次吧。
- 執(zhí)行recover database

執(zhí)行完了之后再open resetlogs就可以了
SQL> alter database open resetlogs; Database altered.
為了使操作完全生效決定重啟了一下oracle
SQL> shutdown immedate; SP2-0717: illegal SHUTDOWN option SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SOL> startup; ORACLE instance started. Total System Global Area 1603411968 bytes Fixed Size 2213776 bytes Variable Size 1342179440 bytes Database Buffers 251658240 bytes Redo Buffers 7360512 bytes Database mounted. Database opened.
這樣就搞定了。
總結
到此這篇關于Oracle解決ORA-01034: ORACLE not available問題的文章就介紹到這了,更多相關ORA-01034:ORACLE not available內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
安裝Oracle時出現環(huán)境變量Path的值大于1023的解決辦法
這篇文章主要介紹了安裝Oracle時出現環(huán)境變量Path的值大于1023的解決辦法,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧2016-12-12
最簡單的Oracle數據恢復 select as of使用方法
這篇文章主要介紹了最簡單的Oracle數據恢復 select as of使用方法,需要的朋友可以參考下2015-08-08
Oracle中將非分區(qū)表轉換為分區(qū)表的最佳實踐
本文介紹了使用在線表重定義技術將普通表轉換為分區(qū)表的方法,通過創(chuàng)建臨時表、同步數據和原子交換步驟,在線重定義允許在不中斷業(yè)務的情況下修改表結構,特別適合需要高可用性的生產環(huán)境,需要的朋友可以參考下2026-04-04
oracle創(chuàng)建刪除用戶示例分享(oracle刪除用戶命令及授權)
這篇文章主要介紹了oracle創(chuàng)建刪除用戶示例還有oracle刪除用戶命令及授權的使用,需要的朋友可以參考下2014-03-03

