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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...