Oracle解決ORA-01034:?ORACLE?not?available問(wèn)題的辦法
這個(gè)…不知道是鏡像問(wèn)題還是配置上有問(wèn)題,Docker版的Oracle 11g在上次部署完之后已經(jīng)出現(xiàn)了多次無(wú)法訪(fǎng)問(wèn)的情況(就是 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g這個(gè)鏡像),最后一次修復(fù)已經(jīng)將連接數(shù)從150(默認(rèn))提升到8000,這次無(wú)法訪(fǎng)問(wèn)肯定不是連接數(shù)已滿(mǎn)的問(wèn)題。
遇事不要慌,先通過(guò)docker exec進(jìn)入容器內(nèi)部連接一下oracle數(shù)據(jù)庫(kù),看到的是
ORA-01034: ORACLE not available
這…難道是之前為了修改連接數(shù)直接關(guān)機(jī)導(dǎo)致日志無(wú)法歸檔么?
上網(wǎng)查了些資料,最終通過(guò)如下步驟解決的:
- 先用sqlplus使用sysdba權(quán)限訪(fǎng)問(wèn)連接數(shù)據(jù)庫(kù)
[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.
- 查詢(xún)v$log看看能否正常查詢(xún)到日志信息
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ā)現(xiàn)報(bào)ORA-01034: ORACLE not available錯(cuò)誤后,我們?cè)僭囋嚥僮鱮esetlogs
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方式打開(kāi)數(shù)據(jù)庫(kù)對(duì)oracle進(jìn)行恢復(fù)是存在風(fēng)險(xiǎn)的,如果日志文件沒(méi)有損壞的情況下可以直接恢復(fù)就可以了,這次的情況比較麻煩,所以才想用這種方式進(jìn)行。
- 既然所有操作都報(bào)錯(cuò)了,就先關(guān)閉實(shí)例
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
- 重新掛載啟動(dòng)
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.
- 重啟之后再?lài)L試使用resetlogs打開(kāi)數(shù)據(jù)庫(kù)
SQL> alter database open resetlogs; alter database open resetlogs ERROR at line 1: ORA-01139: RESETLOGS option only valid after an incomplete database recovery
這里又是一個(gè)ERROR,先不要管它繼續(xù)下一步操作
- 這時(shí)我們又再查一次v$log

如上圖所示,通過(guò)v$log得知日志只記錄到昨天(11月13日),還好不是生產(chǎn)環(huán)境的一天的時(shí)間還能夠接受。
- 通過(guò)recover database命令進(jìn)行數(shù)據(jù)恢復(fù)
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'
嗯…沒(méi)有頭緒還是先“重啟”吧
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
這次連啟動(dòng)也報(bào)錯(cuò),真是“一波未平一波又起”。
- sqlplus再查詢(xún)一次l日志

既然這樣就手動(dòng)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.
這樣就搞定了。
總結(jié)
到此這篇關(guān)于Oracle解決ORA-01034: ORACLE not available問(wèn)題的文章就介紹到這了,更多相關(guān)ORA-01034:ORACLE not available內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle用戶(hù)自定義異常實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Oracle用戶(hù)自定義異常實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
詳解Linux平臺(tái) Oracle 10gR2(10.2.0.5)RAC安裝 Part1:準(zhǔn)備工作
本篇文章主要介紹了Linux平臺(tái) Oracle 10gR2(10.2.0.5)RAC安裝 Part1:準(zhǔn)備工作 ,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01
Oracle存儲(chǔ)過(guò)程游標(biāo)用法分析
這篇文章主要介紹了Oracle存儲(chǔ)過(guò)程游標(biāo)用法,結(jié)合實(shí)例形式分析了游標(biāo)的使用步驟與相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
Oracle如何使用PL/SQL調(diào)試存儲(chǔ)過(guò)程
這篇文章主要介紹了Oracle如何使用PL/SQL調(diào)試存儲(chǔ)過(guò)程,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
Oracle SqlPlus設(shè)置Login.sql的技巧
sqlplus在啟動(dòng)時(shí)會(huì)自動(dòng)運(yùn)行兩個(gè)腳本:glogin.sql、login.sql這兩個(gè)文件,接下來(lái)通過(guò)本文給大家介紹Oracle SqlPlus設(shè)置Login.sql的技巧,對(duì)oracle sqlplus設(shè)置相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-01-01
Oracle參數(shù)設(shè)置教程之set和reset的實(shí)用案例
最近在學(xué)習(xí)oracle,學(xué)習(xí)中遇到了一些覺(jué)著有必要記錄下的內(nèi)容,所以下面這篇文章主要給大家介紹了關(guān)于Oracle參數(shù)設(shè)置教程之set和reset實(shí)用案例的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起看看吧。2017-10-10
EF 配置Oracle數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)連接字符串的實(shí)例
下面小編就為大家?guī)?lái)一篇EF 配置Oracle數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)連接字符串的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04
教你怎樣用Oracle方便地查看報(bào)警日志錯(cuò)誤
由于報(bào)警日志文件很大,而每天都應(yīng)該查看報(bào)警日志(查看有無(wú)“ORA-”,Error”,“Failed”等出錯(cuò)信息),故想找到一種比較便捷的方法,查看當(dāng)天報(bào)警日志都有哪些錯(cuò)誤。2014-08-08
ORACLE SQL語(yǔ)句優(yōu)化技術(shù)要點(diǎn)解析
這篇文章主要介紹了ORACLE SQL語(yǔ)句優(yōu)化技術(shù)的相關(guān)內(nèi)容,小編覺(jué)得挺不錯(cuò)的,在這里分享給大家,需要的朋友可以參考下。2017-10-10

