ORACLE還原恢復啟動時資料庫報ORA-00704, ORA-00604, ORA-00904

来源:https://www.cnblogs.com/kerrycode/archive/2023/04/13/17316483.html
-Advertisement-
Play Games

Oracle資料庫還原恢復後,執行alter database open resetlogs時遇到下麵錯誤。如下所示: SQL> alter database open resetlogs;alter database open resetlogs*ERROR at line 1:ORA-00603 ...


Oracle資料庫還原恢復後,執行alter database open resetlogs時遇到下麵錯誤。如下所示:

SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-00603ORACLE server session terminated by fatal error
ORA-01092ORACLE instance terminated. Disconnection forced
ORA-00704: bootstrap process failure
ORA-00604error occurred at recursive SQL level 1
ORA-00904"I"."UNUSABLEBEGINNING#": invalid identifier
Process ID19288
Session ID2 Serial number4441

剛開始有點懵的,第一次遇到這種情形。不過搜索了一下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:N
xxx:/opt/oracle11g/product/11.2:N

退出當前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文件中的參數,當時沒有仔細檢查環境變數,匆匆忙忙就開始了資料庫實例的還原恢復,但是當前的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 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)
掃描上面二維碼關註我 如果你真心覺得文章寫得不錯,而且對你有所幫助,那就不妨幫忙“推薦"一下,您的“推薦”和”打賞“將是我最大的寫作動力! 本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接.
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、下載redis源碼包,併進行解壓縮操作 https://download.redis.io/releases/ [root@Redis-Ubuntu-1804-p21:~]# wget https://download.redis.io/releases/redis-5.0.14.tar.gz ...
  • 原文: https://www.cnblogs.com/xiao987334176/p/9930517.html 一、介紹Prometheus Prometheus(普羅米修斯)是一套開源的監控&報警&時間序列資料庫的組合,起始是由SoundCloud公司開發的。隨著發展,越來越多公司和組織接受採用 ...
  • 筆記本開啟熱點代理 筆者因為最近在使用rk3588做開發,在編譯opencv的時候需要連網下載一些文件,但是很多時候都以失敗告終,筆者也嘗試過在rk3588上部署clash,但都太過複雜而且耗時,後來嘗試發現可以開啟筆記本的熱點,然後打開筆記本(win10)上的代理,連接的所有設備就都能上網了,今天 ...
  • 哈嘍大家好,我是鹹魚 我相信大家在面試過程中或多或少都會被問到這樣一個問題:你能解釋一下什麼是 socket 嗎 我記得我當初的回答很是淺顯:socket 也叫套接字,用來負責不同主機程式之間的網路通信連接,socket 的表現方式由四元組(ip地址:埠)組成 那麼今天,鹹魚將跟大家打開 sock ...
  • 原標題:【精品博文】MIPI掃盲——D-PHY介紹(一) D-PHY種的PHY是物理層(Physical)的意思,那麼D是什麼意思呢?在MIPI D-PHY的文檔中有提到過,D-PHY的最初版本的設計目標是500Mbits/s,而D是羅馬數字(拉丁文數字)中500 。同理C和M分別是羅馬數字中的10 ...
  • terminal,vi 的使用: 0.進入與使用 用終端進入,相當於windows的cmd. ctrl+alt+T打開終端。 終端命令:ls查看文件夾下的文件 mkdir filename在當前目錄下創造一個文件夾 cd filename 進入某文件夾 . 代表當前目錄 .. 上層目錄 ping i ...
  • 1. 1969年 1.1. 關係模型的創始人E.F. Codd(1923—2003) 1.1.1. 牛津大學數學專業 1.1.2. 一己之力奠定了關係模型的基礎 1.2. 論文《大型資料庫中關係存儲的可推導性、冗餘與一致性》 2. 1970年 2.1. 權威學術雜誌Communications of ...
  • 鎖屏面試題百日百刷,每個工作日堅持更新面試題。請看到最後就能獲取你想要的,接下來的是今日的面試題: 1.如何保證Kafka的消息有序 Kafka對於消息的重覆、丟失、錯誤以及順序沒有嚴格的要求。 Kafka只能保證一個partition中的消息被某個consumer消費時是順序的,事實上,從Topi ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...