Oracle還原恢復啟動時數據庫報ORA-00704、 ORA-00604,、ORA-00904的問題解決
Oracle數據庫還原恢復后,執行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?errorORA-01092:?ORACLE?instance?terminated.?Disconnection?forcedORA-00704:?bootstrap?process?failureORA-00604:?error?occurred?at?recursive?SQL?level?1ORA-00904:?"I"."UNUSABLEBEGINNING#":?invalid?identifierProcess?ID:?19288Session?ID:?2?Serial?number:?4441
剛開始有點懵的,第一次遇到這種情形。不過搜索了一下metalink相關資料后,大致了解到是因為環境變量設置有誤導致這些錯誤出現的。這里先介紹一下這個案例的復雜背景:
當前機器為一個測試服務器(UAT環境),操作系統版本為HP-UX,數據庫版本Oracle 19c,然后因為Support人員要查找歷史數據,需要還原一個2020年時間點的數據庫備份。但是生產環境(PROD)在2020年是Oracle 11g,然后在2021年升級為了Oracle 19c,現在測試服務器(UAT環境)的數據庫版本也是Oracle 19c,于是從其它測試服務器拷貝了一個Oracle 11g版本的掛載帶點/opt/oracle11g到當前測試服務器(為了方便省事,如果重新安裝搭建Oracle 11g環境還麻煩一些),然后設置了一下/etc/oratab,如下所示:(xxx表示ORACLE_SID)
#xxx:/opt/oracle19c/product/19.3.0/db_1:Nxxx:/opt/oracle11g/product/11.2:N
退出當前SecureCRT窗口,重新登陸,提示修改成功,如下所示
ORACLE_SID?=?[xxx]???xxxOracle?SID??=?xxxOracle?BASE?=?/opt/oracle11gOracle?HOME?=?/opt/oracle11g/product/11.2SQL*Net?TNS?=?/etcORA_NLS10???=?/opt/oracle11g/product/11.2/nls/data
由于忙著檢查/修改pfile文件中的參數,當時沒有仔細檢查環境變量,匆匆忙忙就開始了數據庫實例的還原恢復,但是當前的和ORACLE_HOME環境變量確實還是Oracle 19c的環境變量
>echo?$ORACLE_BASE/opt/oracle19c>echo?$ORACLE_HOME/opt/oracle19c/product/19.3.0/db_1
修改環境變量~/.profile后,執行. ~/.profile設置生效。然后重新登陸SecureCRT后,重新還原數據庫就不會遇到這個問題。另外,如果不重新還原,關閉數據庫后,重新OPEN數據庫亦可以,測試沒有什么問題。
官方文檔Database Startup Failure After RMAN Restore with ORA-00704, ORA-00604, ORA-00904 (Doc ID 2540757.1)的具體內容如下:
APPLIES?TO:Oracle?Database?-?Enterprise?Edition?-?Version?11.2.0.4?and?laterInformation?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?forcedORA-00704:?bootstrap?process?failureORA-00604:?error?occurred?at?recursive?SQL?level?2ORA-00904:?"I"."UNUSABLEBEGINNING#":?invalid?identifierProcess?ID:?23346Session?ID:?680?Serial?number:?51933CHANGES?After?restoring?the?database?to?another?server?by?RMAN,?it?is?failed?to?startup.After?upgrade?or?post?upgradeCAUSE?>>>>>ORA-00904:?"I"."UNUSABLEBEGINNING#":?invalid?identifierThis?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.SOLUTIONYou?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_HOMESET?ORACLE_HOME=Your_Oracle_HomeCD?ORACLE_HOME\binEven?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?upgradeNote?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?IssuesNote?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)
到此這篇關于ORACLE還原恢復啟動時數據庫報ORA-00704、 ORA-00604,、ORA-00904的問題解決的文章就介紹到這了,更多相關oracle還原恢復啟動報錯內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!
相關文章: