Oracle還原恢復(fù)啟動時數(shù)據(jù)庫報ORA-00704、 ORA-00604,、ORA-00904的問題解決
Oracle數(shù)據(jù)庫還原恢復(fù)后,執(zhí)行alter database open resetlogs時遇到下面錯誤。如下所示:
SQL>?alter?database?open?resetlogs; alter?database?open?resetlogs * ERROR?at?line?1: ORA-00603:?ORACLE?server?session?terminated?by?fatal?error ORA-01092:?ORACLE?instance?terminated.?Disconnection?forced ORA-00704:?bootstrap?process?failure ORA-00604:?error?occurred?at?recursive?SQL?level?1 ORA-00904:?"I"."UNUSABLEBEGINNING#":?invalid?identifier Process?ID:?19288 Session?ID:?2?Serial?number:?4441
剛開始有點懵的,第一次遇到這種情形。不過搜索了一下metalink相關(guān)資料后,大致了解到是因為環(huán)境變量設(shè)置有誤導(dǎo)致這些錯誤出現(xiàn)的。這里先介紹一下這個案例的復(fù)雜背景:
當(dāng)前機器為一個測試服務(wù)器(UAT環(huán)境),操作系統(tǒng)版本為HP-UX,數(shù)據(jù)庫版本Oracle 19c,然后因為Support人員要查找歷史數(shù)據(jù),需要還原一個2020年時間點的數(shù)據(jù)庫備份。但是生產(chǎn)環(huán)境(PROD)在2020年是Oracle 11g,然后在2021年升級為了Oracle 19c,現(xiàn)在測試服務(wù)器(UAT環(huán)境)的數(shù)據(jù)庫版本也是Oracle 19c,于是從其它測試服務(wù)器拷貝了一個Oracle 11g版本的掛載帶點/opt/oracle11g到當(dāng)前測試服務(wù)器(為了方便省事,如果重新安裝搭建Oracle 11g環(huán)境還麻煩一些),然后設(shè)置了一下/etc/oratab,如下所示:(xxx表示ORACLE_SID)
#xxx:/opt/oracle19c/product/19.3.0/db_1:N xxx:/opt/oracle11g/product/11.2:N
退出當(dāng)前SecureCRT窗口,重新登陸,提示修改成功,如下所示
ORACLE_SID?=?[xxx]???xxx Oracle?SID??=?xxx Oracle?BASE?=?/opt/oracle11g Oracle?HOME?=?/opt/oracle11g/product/11.2 SQL*Net?TNS?=?/etc ORA_NLS10???=?/opt/oracle11g/product/11.2/nls/data
由于忙著檢查/修改pfile文件中的參數(shù),當(dāng)時沒有仔細(xì)檢查環(huán)境變量,匆匆忙忙就開始了數(shù)據(jù)庫實例的還原恢復(fù),但是當(dāng)前的和ORACLE_HOME環(huán)境變量確實還是Oracle 19c的環(huán)境變量
>echo?$ORACLE_BASE /opt/oracle19c >echo?$ORACLE_HOME /opt/oracle19c/product/19.3.0/db_1
修改環(huán)境變量~/.profile后,執(zhí)行. ~/.profile設(shè)置生效。然后重新登陸SecureCRT后,重新還原數(shù)據(jù)庫就不會遇到這個問題。另外,如果不重新還原,關(guān)閉數(shù)據(jù)庫后,重新OPEN數(shù)據(jù)庫亦可以,測試沒有什么問題。
官方文檔Database Startup Failure After RMAN Restore with ORA-00704, ORA-00604, ORA-00904 (Doc ID 2540757.1)的具體內(nèi)容如下:
APPLIES?TO: Oracle?Database?-?Enterprise?Edition?-?Version?11.2.0.4?and?later Information?in?this?document?applies?to?any?platform. SYMPTOMS ? SQL>?alter?database?open; alter?database?open * ERROR?at?line?1: ORA-01092:?ORACLE?instance?terminated.?Disconnection?forced ORA-00704:?bootstrap?process?failure ORA-00604:?error?occurred?at?recursive?SQL?level?2 ORA-00904:?"I"."UNUSABLEBEGINNING#":?invalid?identifier Process?ID:?23346 Session?ID:?680?Serial?number:?51933 CHANGES ?After?restoring?the?database?to?another?server?by?RMAN,?it?is?failed?to?startup. After?upgrade?or?post?upgrade CAUSE ?>>>>>ORA-00904:?"I"."UNUSABLEBEGINNING#":?invalid?identifier This?error?appears?due?to?using?the?incorrect?sqlplus?environment.?For?example.,?By?default?SQLPLUS?will?connect?to?the?default?ORACLE_HOME,?say?12C?Home?but?if?you?are?duplicating?the?11g?database?on?same?host?the?it?must?be?Oracle?11g?Environment?in?order?to?complete?the?process. 1?-?This?issue?happens?when?we?have?installed?multiple?Oracle?Homes?in?a?single?system. 2?-?We?need?to?make?sure?that?we?are?in?the?right?environment?when?we?are?restoring?it. SOLUTION You?need?to?set?all?the?required?Environment?Variables?first?as?per?your?need?like?ORACLE_SID,?ORACLE_BASE,?ORACLE_HOME,?TNS_ADMIN,?PATH?with?proper?values (OR) Simply?work?by?going?to?the?bin?directory?of?your?required?ORACLE_HOME SET?ORACLE_HOME=Your_Oracle_Home CD?ORACLE_HOME\bin Even?if?you?set?all?the?environment?parameter?properly,?then?need?to?investigate?further?to?verify?the?rman?backup?set?which?used?to?restore?or?verify?the?upgrade?logs,?component,?dba_registry?etc. Provide?the?details?requested?in?below?Notes?based?on?the?post?restore?or?post?upgrade Note?1905616.1??SRDC?-?Startup?Issues:?Checklist?of?Evidence?to?Supply?(Doc?ID?1905616.1) Note?1906468.1??SRDC?-?Startup?Shutdown?-?Oracle?Binary?and?OS?Resources:?Checklist?of?Evidence?to?Supply?(Doc?ID?1906468.1) Note:1672387.1??SRDC?-?Data?Collection?for?Upgrade?Issues Note?753041.1?How?to?Diagnose?Components?with?NON?VALID?Status?in?DBA_REGISTRY?after?an?Upgrade?(Doc?ID?753041.1) Note?1965956.1??SRDC?-?Data?Collection?for?Datapatch?issues?(Doc?ID?1965956.1) Note?1671416.1??SRDC?-?Required?diagnostic?data?collection?for?RMAN?Restore?and?Recover?Using?TFA?Collector?(Recommended)?or?Manual?Steps?(Doc?ID?1671416.1)
到此這篇關(guān)于ORACLE還原恢復(fù)啟動時數(shù)據(jù)庫報ORA-00704、 ORA-00604,、ORA-00904的問題解決的文章就介紹到這了,更多相關(guān)oracle還原恢復(fù)啟動報錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle誤刪除表數(shù)據(jù)后的數(shù)據(jù)恢復(fù)詳解
這篇文章主要介紹了Oracle誤刪除表數(shù)據(jù)后的數(shù)據(jù)恢復(fù)詳解,需要的朋友可以參考下2015-08-08Oracle11.2.0.1如何升級到11.2.0.3 Oracle同版本升級
這篇文章主要為大家詳細(xì)介紹了Oracle11.2.0.1如何升級到11.2.0.3的過程,Oracle同版本升級的方法,感興趣的小伙伴們可以參考一下2016-07-07Oracle 數(shù)據(jù)顯示 橫表轉(zhuǎn)縱表
橫表轉(zhuǎn)縱表亦可用與decode意義相似的case語句實現(xiàn),原理同該語句,這里不再過多描述。2009-07-07[Oracle] Data Guard 之 淺析Switchover與Failover
以下是對Oracle中Switchover與Failover的使用進行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07oracle 查詢當(dāng)天數(shù)據(jù)的sql條件寫法
這篇文章主要介紹了oracle 查詢當(dāng)天數(shù)據(jù)的sql條件寫法,需要的朋友可以參考下2017-04-04ORACLE11g隨RHEL5系統(tǒng)自動啟動與關(guān)閉的設(shè)置方法
最近,ORACLE系統(tǒng)基本調(diào)試通過,是時候設(shè)置ORACLE隨RHEL自動啟動與關(guān)閉服務(wù)的時候了,之所以把這個任務(wù)放在最后來做,是因為我覺得這個應(yīng)該不會很難,但真正實施起來,還是遇到了個不小的障礙2009-08-08