數據庫管理-第333期 Oracle 23ai:RAC打補丁完全不用停機(20250604)

數據庫管理333期 2025-06-04

  • 數據庫管理-第333期 Oracle 23ai:RAC打補丁完全不用停機(20250604)
    • 1 概念
    • 2 要求
    • 3 操作流程
    • 4 轉移失敗處理
    • 總結

數據庫管理-第333期 Oracle 23ai:RAC打補丁完全不用停機(20250604)

作者:胖頭魚的魚缸(尹海文)
Oracle ACE Pro: Database
PostgreSQL ACE Partner10年數據庫行業經驗
擁有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等認證
墨天輪MVP,ITPUB認證專家
圈內擁有“總監”稱號,非著名社恐(社交恐怖分子)公眾號:胖頭魚的魚缸
CSDN:胖頭魚的魚缸(尹海文)
墨天輪:胖頭魚的魚缸
ITPUB:yhw1809。
除授權轉載并標明出處外,均為“非法”抄襲

3498ff20bcec87e9052f961f06737f3.png
在Oracle Database 23ai之前的版本中,在RAC集群環境下打補丁,是需要使用滾動升級的方式來執行補丁升級操作的,如果不配置TAF/TAC的話,勢必會出現在停機節點上的應用連接會中斷的現象,如果應用配置不合理很可能造成業務異常現象。
在23ai中Oracle引入了一個新技術叫本地滾動數據庫維護(Local Rolling Database Maintenance),可以實現RAC打補丁的完全不停機。

1 概念

從23ai開始,可以在本地為Oracle RAC和Oracle RAC One Node部署應用滾動補丁并執行其他維護操作。
本地滾動是從同一節點上的第二個Oracle家目錄創建并啟動第二個數據庫實例,而不是停止數據庫實例并將工作負載重新定位到另一個節點上的另一個實例。本地滾動數據庫維護減少了遷移連接的時間。此功能通過將工作負載保持在本地節點上來減少停機時間。必須確保有足夠的CPU、內存和其他計算資源來臨時運行兩個實例。
本地滾動可確保在兩個Oracle家目錄之間滾動遷移數據庫期間,群集中至少運行相同數量的Oracle RAC和Oracle RAC One Node實例。使用此功能,您可以在單個集群節點內進行錯位滾動補丁加載。
當您使用本地滾動式就地修補時,Oracle RAC會在新的Oracle家目錄中創建第二個實例,啟動第二個示例,然后在您要修補的節點上停止舊Oracle家目錄的第一個實例。此功能還保留了PDB的位置和服務,因此節點繼續執行與補丁加載之前相同的工作。

2 要求

使用本地滾動數據庫維護需要滿足以下條件:

  • 使用OMF(Oracle Managed Files)
  • 使用spfile(Server Parameters File)
  • 在本地滾動操作完成后重新配置初始化參數THREAD和UNDO_TABLESPACE
  • 在本地滾動升級過程中不要執行srvctl add instance、srvctl remove instance或srvctl modify instance命令
  • 必須確保有足夠的可用存儲空間為每個實例創建新的redo線程(redo thread)和新的undo表空間。當您一次使用此功能時,此功能會為每個新實例創建一個新的redo線程和一個新的undo表空間。第二次和后續使用此功能時,將使用以前使用的舊的redo線程和undo表空間,而不會創建新的redo和undo。

3 操作流程

本地滾動升級的流程:

  1. 創建新Oracle家目錄并解壓軟件
mkdir -p /u01/app/oracle/product/23.4.0/dbhome_1
chgrp oinstall /u01/app/oracle/product/23.4.0/dbhome_1
cd /u01/app/oracle/product/23.4.0/dbhome_1
unzip -q /tmp/db_home.zip
  1. 執行新Oracle家目錄的升級操作
cd /u01/app/oracle/product/23.4.0/dbhome_1
./runInstaller -applyRU patch_directory_location
  1. 為數據庫開啟本地滾動升級
srvctl modify database –db [db_name] -oraclehome new_Oracle_home -localrolling
  1. 將RAC和RAC One Node的PDB和服務從舊家目錄轉換到新的家目錄
$ srvctl transfer instance –d mydb [-node node_list] 
{[-stopoption stop_option] | -rollback} [-drain_timeout timeout] [-verbose]

新實例從新的Oracle家目錄啟動,并等待-drain_timeout參數中指定的時間,以便會話遷移到新實例。當所有會話遷移到新實例時,舊實例停止。
如果不指定-drain_timeout,則使用指定節點上數據庫所有運行服務的最大配置超時時間。

  1. 驗證
srvctl config database -db [db_name]
  1. 根據需求添加或修改service和連接字符串

4 轉移失敗處理

在本地滾動數據庫維護期間,某些實例可能無法轉移到目標Oracle家目錄。使用下面任何一個方式,在本地滾動模式下從失敗的轉移中恢復。

  1. 將所有實例從新的家目錄恢復至舊的家目錄
a. 恢復數據庫家目錄配置
srvctl modify database -db [db_name] -localrolling_revertb. 恢復所有實例至舊的家目錄
srvctl transfer instance -db [db_name]

此過程將數據庫還原到本地滾動之前的原始狀態。所有實例都從舊的Oracle家目錄開始運行。您可以刪除之前的目標Oracle家目錄,創建新的Oracle家目錄,然后再次啟動本地滾動過程。

  1. 將部分實例從新的家目錄恢復至舊的家目錄
a. 恢復數據庫家目錄配置
srvctl modify database -db [db_name] -localrolling_revertb. 恢復指定實例至舊的家目錄
srvctl transfer instance -db [db_name] -node node_list
# 在轉移的節點上修復本地滾動目標Oracle家目錄。如果仍有任何實例在本地滾動目標Oracle家目錄上運行,則數據庫將進入本地滾動REVERT狀態。c. 使用相同的目標Oracle家目錄將數據庫修改為TRANSFER狀態以轉移實例
srvctl modify database -db [db_name] -localrolling -oraclehome target_Oracle_home
  1. 將部分實例從新的家目錄恢復至舊的家目錄
a. 恢復指定實例至舊的家目錄
srvctl transfer instance -db [db_name] -node node_list -rollbackb. 修復目標家目錄c. 將實例轉移回目標家目錄
srvctl transfer instance -db [db_name]

總結

本期簡單介紹了Oracle Database 23ai引入的可以實現完全不停機打補丁的本地滾動維護,但由于還沒有本地部署版本放出,待對應版本放出后再演示。
老規矩,知道寫了些啥。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/908148.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/908148.shtml
英文地址,請注明出處:http://en.pswp.cn/news/908148.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Trae CN IDE自動生成注釋功能測試與效率提升全解析

Trae CN IDE 的自動注釋功能可以通過 AI 驅動的代碼分析生成自然語言注釋,以下是具體測試方法和優勢總結: 一、Python 代碼注釋生成測試 1. 測試環境 IDE:Trae CN IDE(需確認支持 Python)代碼示例: def …

軟考 系統架構設計師系列知識點之雜項集萃(79)

接前一篇文章:軟考 系統架構設計師系列知識點之雜項集萃(78) 第141題 軟件測試一般分為兩個大類:動態測試和靜態測試。前者通過運行程序發現錯誤,包括()等方法;后者采用人工和計算機…

有公網ip但外網訪問不到怎么辦?內網IP端口映射公網連接常見問題和原因

有公網IP但外網訪問不到的核心原因通常包括:端口未正確映射、防火墻限制、DNS解析問題、運營商端口屏蔽或路由配置錯誤?。需依次排查這些關鍵環節,其中端口映射和防火墻設置是最常見的原因。?? ?內網IP端口映射公網連接常見問題和原因及解決方案 1…

HttpServletResponse 對象用來做什么?

HttpServletResponse 對象是由 Servlet 容器創建并傳遞給 Servlet 的 service() 方法(以及間接傳遞給 doGet(), doPost() 等方法)的。它的核心作用是讓 Servlet 能夠向客戶端(通常是瀏覽器)發送 HTTP 響應。 通過 HttpServletRes…

FTPS、HTTPS、SMTPS以及WebSockets over TLS的概念及其應用場景

一、什么是FTPS? FTPS,英文全稱File Transfer Protocol with support for Transport Layer Security (SSL/TLS),安全文件傳輸協議,是一種對常用的文件傳輸協議(FTP)添加傳輸層安全(TLS)和安全套接層(SSL)加密協議支持的擴展協議。…

前端??HTML contenteditable 屬性使用指南

??什么是 contenteditable? HTML5 提供的全局屬性,使元素內容可編輯類似于簡易富文本編輯器兼容性?? 支持所有現代瀏覽器(Chrome、Firefox、Safari、Edge) 移動端(iOS/Android)部分鍵盤行為需測試 &l…

持續領跑中國異地組網路由器市場,貝銳蒲公英再次登頂銷量榜首

作為國產遠程連接SaaS服務的創領者,貝銳持續引領行業發展,旗下貝銳蒲公英異地組網路由器,憑借出色的技術實力和市場表現,斬獲2024年線上電商平臺市場銷量份額中國第一的佳績,充分彰顯了其在網絡解決方案與異地組網領域…

五大主流大模型推理引擎深度解析:llama.cpp、vLLM、SGLang、DeepSpeed和Unsloth的終極選擇指南

在人工智能的競技場上,大模型推理框架就像是為超級跑車精心調校的引擎系統——選對了能讓你的AI應用一騎絕塵,選錯了可能連"停車場"都開不出去。這些框架的核心價值在于將訓練好的"大腦"轉化為實際可用的"肌肉記憶",而選擇標準則需要像職業賽…

前端面試二之運算符與表達式

目錄 1.JavaScript 中的 和 運算符 2.|| (邏輯或) 運算符 與 ES6 默認參數的區別 與 ?? (空值合并運算符) 的區別 3.?.(可選鏈)運算符 (1). 安全訪問深層嵌套屬性 (2). 安全調用可能不存在的函數 (3). 安全訪問數組元素 4.展開運算符 (..…

GB/T 24507-2020 浸漬紙層壓實木復合地板檢測

浸漬紙層壓實木地板是指以一層或多層專用紙浸漬熱固性氨基樹脂,經干燥后鋪裝在膠合板基材正面,專用紙表面加耐磨層,基材背面可加平衡層,經熱壓、成型的地板。 GB/T 24507-2020 浸漬紙層壓實木復合地板測試項目: 測試項…

AWS DocumentDB vs MongoDB:數據庫的技術抉擇

隨著非關系型數據庫在現代應用中的廣泛應用,文檔型數據庫因其靈活的結構與出色的擴展性,逐漸成為企業開發與架構設計中的核心選擇。在眾多文檔數據庫中,MongoDB 憑借其成熟生態與社區支持占據主導地位;與此同時,AWS 提…

微信小程序實現運動能耗計算

微信小程序實現運動能耗計算 近我做了一個挺有意思的微信小程序,能夠實現運動能耗的計算。只需要輸入性別、年齡、體重、運動時長和運動類型這些信息,就能算出對應的消耗熱量。 具體來說,在小程序里,性別不同,身體基…

三軸地磁傳感器的主要應用場景

隨著材料科學、微電子技術以及傳感器技術的不斷進步,三軸地磁傳感器的性能將不斷提升,包括提高精度、降低功耗、增強抗干擾能力等。 RAMSUN提供的是一款三軸地磁傳感器采用第三代AMR技術,帶有自動溫度補償的三軸磁傳感器,該產品因…

使用 SseEmitter 實現 Spring Boot 后端的流式傳輸和前端的數據接收

1.普通文本消息的發送和接收 GetMapping("/stream")public SseEmitter streamResponse() {SseEmitter emitter new SseEmitter(0L); // 0L 表示永不超時Executors.newSingleThreadExecutor().execute(() -> {try {for (int i 1; i < 5; i) {emitter.send(&q…

nssm配置springboot項目環境,注冊為windows服務

NSSM 的官方下載地址是&#xff1a;NSSM - the Non-Sucking Service Manager1 使用powershell輸入命令,java項目需要手動配置和依賴nacos .\nssm.exe install cyMinio "D:\minio\啟動命令.bat" .\nssm.exe install cyNacos "D:\IdeaProject\capacity\nacos-s…

WinCC學習系列-基礎概念

從本節起&#xff0c;學習和了解西門子最新SCADA軟件WinCC 8.0&#xff0c;將從基礎概念開始&#xff0c;到入門操作&#xff08;創建項目、組態通信、組態過程畫面、組態面板類型和變量結構、歸檔和顯示值、組態消息&#xff09;&#xff0c;到高級應用&#xff08;WinCC選件、…

數據分析圖表類型及其應用場景

說明&#xff1a;頂部HTML文件下載后可以直接查看&#xff0c;帶有示圖。 摘要 數據可視化作為現代數據分析的核心環節&#xff0c;旨在將復雜、抽象的數據轉化為直觀、易懂的圖形形式。這種轉化顯著提升了業務決策能力&#xff0c;優化了銷售與營銷活動&#xff0c;開辟了新…

《江西棒壘球》敗方mvp叫什么·棒球1號位

敗方mvp也是MVP&#xff0c;以棒球運動為例&#xff0c;MLB&#xff08;美國職棒大聯盟&#xff09;的個人獎項旨在表彰球員在不同領域的卓越表現&#xff0c;涵蓋常規賽和季后賽的杰出成就。 常規賽核心獎項 最有價值球員獎&#xff08;MVP&#xff09; 定義&#xff1a;表彰…

CD43.vector模擬實現(2)

目錄 1.拷貝構造函數 寫法1 寫法2 測試代碼 調試找bug 解決方法:修改拷貝構造函數 測試代碼 2.operator[ ] 測試代碼 1.沒有const修飾 2.有const修飾 3.insert 迭代器失效問題 承接CD42.vector模擬實現(1)文章 1.拷貝構造函數 設置start、finish和end_of_storag…

【C/C++】入門grpc的idl

文章目錄 grpc idl 簡單介紹1. 文件結構組織規范文件命名包結構&#xff1a;推薦&#xff1a;一個文件只定義一個 service&#xff0c;如果 service 很復雜&#xff0c;可拆分多個 proto 文件。 2. 消息定義規范命名風格字段編號&#xff1a;示例&#xff1a; 3. 服務與 RPC 設…