數據庫管理-第220期 Oracle的高可用-03(20240715)

數據庫管理220期 2024-07-15

  • 數據庫管理-第220期 Oracle的高可用-03(20240715)
    • 1 AC/TAC
    • 2 配置Service
    • 3 用戶權限
    • 4 端口開放
    • 總結

數據庫管理-第220期 Oracle的高可用-03(20240715)

作者:胖頭魚的魚缸(尹海文)
Oracle ACE Pro: Database(Oracle與MySQL)
PostgreSQL ACE Partner
10年數據庫行業經驗,現主要從事數據庫服務工作
擁有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等認證
墨天輪MVP、年度墨力之星,ITPUB認證專家、專家百人團成員,OCM講師,PolarDB開源社區技術顧問,HaloDB外聘技術顧問,OceanBase觀察團成員,青學會MOP技術社區(青年數據庫學習互助會)技術顧問
圈內擁有“總監”、“保安”、“國產數據庫最大敵人”等稱號,非著名社恐(社交恐怖分子)
公眾號:胖頭魚的魚缸;CSDN:胖頭魚的魚缸(尹海文);墨天輪:胖頭魚的魚缸;ITPUB:yhw1809。
除授權轉載并標明出處外,均為“非法”抄襲

其實吧這一期的內容才是我寫Oracle高可用系列主要想寫的,前面通過MAA架構介紹了Oracle的各種基于物理復制或邏輯復制的高可用架構,而在系列第二期中介紹了GDS。雖然對業務是透明的,但是GDS運行在數據庫架構之外如果出現異常影響較大,同時GDS本身需要一定的學習和維護成本。

1 AC/TAC

AC,Application Continuity,可譯作業務連續性,是Oracle 12c引入的的一項功能,是Oracle Real Application Clusters (RAC)、Oracle RAC One Node 和 Oracle Active Data Guard 選件的一個特性。僅需進行極少的配置變更,無需修改業務應用代碼即可實現在計劃內維護和計劃外事件發生事務中斷后,通過恢復正在進行的數據庫會話,對最終用戶和應用程序屏蔽數據庫級別的中斷,提高了依賴Oracle數據庫的應用程序的容錯能力。這樣,在應用看來中斷只是一次稍有延遲的執行。通過AC,在補丁滾動升級、參數變更重啟甚至是數據出現崩潰時,應用程序也不受影響。
TAC,Transparent Application Continuity,透明應用連續性,是TAF(Transparent Application Failover,透明應用程序故障轉移,可以重放/繼續查詢)的延續。會透明地跟蹤和記錄會話和事務狀態,以便在出現可恢復的中斷之后恢復數據庫會話。在TAF僅支持SELECT的基礎上,擴展支持INSERT、UPDATE、DELETE操作。在不需要修改應用程序代碼的情況下,允許為您的應用程序啟用透明的應用程序連續性。應用程序透明性和故障轉移是通過使用狀態跟蹤信息來實現的,這些信息在應用程序發出用戶調用時被捕獲。能夠為數據庫的日常維護提供方便,有效消除應用服務的停機時間顧慮能夠有效應對數據庫實例的機器、網卡、系統等突發異常事件;甚至能夠讓應用端透明地實現數據中心災備冗余架構下的主備中心切換。

2 配置Service

下面是AC和TAC的在Service配置上的區別:
image.png
這里以TAC為例按照下面的RAC集群參考進行Service配置:
image.png

srvctl add service -db dbaas -pdb PDB1 -service tac_srv -preferred dbaas1,dbaas2 -available dbaas3,dbaas4 -failover_restore AUTO -failoverretry 30 -failoverdelay 10 -commit_outcome TRUE -failovertype AUTO -replay_init_time 1800 -retention 86400 -notification TRUE -drain_timeout 300 -stopoption IMMEDIATEsrvctl start service -db dbaas -service tac_srv

Service配置完成后pdb1對應的服務tac_srv會在dbaas1和dbaas2上運行,當dbaas1或dbaas2出現異常時,會根據節點負載情況從dbaas3或dbaas4啟動對應服務,以滿足配置的節點數量要求,避免出現性能問題。

3 用戶權限

有些數據庫函數在每次調用的時候都會返回新的值,這些函數稱為可變函數,包括sysdate、systimestamp、local_timestamp、current_timestamp、sys_guid、sequence.nextval。
如果一個未完成的事務是由PL/SQL語句塊組成,并且語句塊中用到了可變函數,那么當 TAC在可用實例上嘗試重放這個事務時,可變函數的返回值是變化了的,那么這個重放就會被拒絕。為 了在重放時能夠使用原來的返回值,需要在數據庫端對可變函數或對象賦KEEP權限:

GRANT KEEP DATE TIME TO [db user];
GRANT KEEP SYSGUID To [db_user];
ALTER SEQUENCE [sequence_name] KEEP;
--如果sequence還被其他數據庫用戶使用 ,  需要給這些用戶賦與KEEP權限
GRANT KEEP SEQUENCE ON [db_user.sequence_name]TO [other_user];

4 端口開放

由于在srvctl創建服務時,添加了-notification TRUE參數,開啟了FAN通知功能,在開通防火墻策略的時候,除了開放一般Oracle Net Listener標準監聽(默認為1521/tcp)對應的端口以外,還需要開啟Oracle Notification Services (ONS)服務(默認為6200/tcp)的端口。以確保應用程序能正確、及時的接受到來自于FAN (Fast Application Notification)的關于集群情況(如節點維護、故障、負載等)事件的通知。

總結

本期講解了在RAC集群上配置TAC的操作及相關事項,下一期將講解應用側配置相關內容。
老規矩,知道寫了些啥。

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

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

相關文章

Modbus - 筆記

1 Modbus Poll/Slave 模擬器使用教程 Modbus Poll/Slave 模擬器使用教程_modbus poll 使用教程-CSDN博客 https://item.jd.com/67488830087.html

Node.js 爬蟲開發實戰:構建一個高效、優雅的網絡數據抓取器

在大數據時代,從網頁上自動抓取數據的需求日益增長。Node.js,以其異步非阻塞I/O模型,成為了構建高性能網絡爬蟲的理想選擇。本文將引導你如何使用Node.js,結合axios和cheerio兩個流行庫,創建一個能夠從目標網站抓取信息…

51單片機10(蜂鳴器介紹)

一、蜂鳴器介紹: 1、蜂鳴器是一種一體化結構的電子訊響器,采用直流電壓供電,廣泛應用于電子產品中作為發聲器件。蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器。 (1)壓電式蜂鳴器,它主要由多諧的一個增脹器…

【學習筆記】無人機(UAV)在3GPP系統中的增強支持(八)-通過無人機進行無線接入

引言 本文是3GPP TR 22.829 V17.1.0技術報告,專注于無人機(UAV)在3GPP系統中的增強支持。文章提出了多個無人機應用場景,分析了相應的能力要求,并建議了新的服務級別要求和關鍵性能指標(KPIs)。…

電腦出現錯誤——找不到msvcp140.dll無法繼續執行代碼,有效解決錯誤dll文件

msvcp140.dll是一個屬于 Microsoft Visual C Redistributable for Visual Studio 2015 的 DLL 文件。這個文件是許多Windows應用程序(尤其是使用 C 開發的程序)所必需的,因為它包含了標準 C 庫的函數實現,用于處理數學運算、數據轉…

【React Hooks原理 - useRef】

概述 在Function Component項目中當我們需要操作dom的時候,第一時間想到的就是使用useRef這個Hook來綁定dom。但是這個僅僅是使用這個Hook而已,為了更好的學習React Hooks內部實現原理,知其所以然。所以本文根據源碼從useRef的基礎使用場景一…

使用shell腳本打印99乘法表

一、簡介 前一段時間在舊電腦上安裝 antiX 23.1 操作系統,遇到一些問題需要使用shell腳本解決問題,所以專門學習了幾天,打印99乘法表是其中的一個練習作業。 二、學習Linux可行的幾種方式 虛擬機安裝Linux進行學習直接雙系統安裝在實體電腦…

Ubuntu新系統的使用

1.安裝顯卡驅動 直接到軟件與更新里面,就是一個A字圖標的那個軟件打開,到附加驅動里選擇。要選擇“server driver”的,選擇后確認即可。 然后輸入:nvidia-sim查看 別的方法太復雜,這個方法我親測了兩臺電腦&#xff…

kubebuilder入門

1. 安裝kubebuilder brew install kubebuilder 2. 需求描述 開發一個zk operator。 cr定義為ZooKeeperCluster 3. 開發過程 3.1 創建一個空的文件夾zk-operator mkdir zk-operator 3.2 進入該文件夾 cd zk-operator 3.3 執行初始化 kubebuilder init --domain my.doma…

MWA(Modern Web App)初學那些事-2-Basic HTML CSS

初學MWA(Modern Web App)那些事-2-Basic HTML & CSS 目錄 初學MWA(Modern Web App)那些事-2-Basic HTML & CSS前言一、本節學習目標二、HTML基礎內容2.1關鍵元素2.4 Scripts 三、CSS 基礎內容3.1 級聯樣式表-用于設置網頁樣式和布局3.2 CSS規則語…

springcloud使用微服務的搭建

微服務的搭建 1.配置對應信息 Springboot 、springcloud、springcloud alibaba對應關系 https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E 2.pom.xml的配置 2.1 總項目pom.xml引入依賴 <parent><groupId>org.sprin…

阿里通義音頻生成大模型 FunAudioLLM 開源

簡介 近年來&#xff0c;人工智能&#xff08;AI&#xff09;技術的進步極大地改變了人類與機器的互動方式&#xff0c;特別是在語音處理領域。阿里巴巴通義實驗室最近開源了一個名為FunAudioLLM的語音大模型項目&#xff0c;旨在促進人類與大型語言模型&#xff08;LLMs&…

vue3在 setup 中訪問路由和當前路由

報錯信息&#xff1a; Cannot read properties of undefined (reading $router) 原因&#xff1a; 因為我們在 setup 里面沒有訪問 this&#xff0c;所以我們不能直接訪問 this.$router 或 this.$route。 解決方案&#xff1a; 作為替代&#xff0c;我們使用 useRouter 和…

Oracle字符集修改

提示 Oracle數據庫默認的字符集編碼為US7ASCII&#xff0c;這個編碼是不支持中文的&#xff0c;如果想要在數據庫存儲中文&#xff0c;就需要修改編碼為ZHS16GBK或UTF-8 編碼和字符集是一個意思&#xff0c;只是叫法不一樣而已 前置條件 修改字符集的前提是知道我們現在用的是什…

跳妹兒學編程之ScratchJr(9):程序控制積木篇—短跑比賽

跳妹兒學編程之ScratchJr(7)&#xff1a;動作積木篇—爸爸去散步 跳妹兒學編程之ScratchJr(8)&#xff1a;外觀積木篇—捉迷藏 跳妹兒學編程之ScratchJr(9)&#xff1a;程序控制積木篇—短跑比賽 引言 在之前的一篇文章中&#xff0c;我們了解了ScratchJr的動作積木和外觀積…

std::getline

std::getline 是 C 標準庫中的一個函數&#xff0c;用于從輸入流中讀取一行數據并存儲到字符串中。它通常用于讀取用戶輸入或從文件中讀取文本數據。以下是 std::getline 的一般用法和說明&#xff1a; #include <iostream> #include <string>int main() {std::st…

skywalking 請求鏈路采樣設置和原理

目標 skywalking 默認情況會采集大量 trace 數據&#xff0c;這樣可以比較全的追蹤所有請求調用鏈路的請求&#xff0c;但同時對 ES 存儲資源要求非常高&#xff0c;需要我們投入很大的存儲節點才可以。那么有沒有一種采樣的請求上報的機制呢&#xff1f;答案是有的&#xff0…

阿里云ECS服務器安裝jdk并運行jar包,訪問成功詳解

安裝 OpenJDK 8 使用 yum 包管理器安裝 OpenJDK 8 sudo yum install -y java-1.8.0-openjdk-devel 驗證安裝 安裝完成后&#xff0c;驗證 JDK 是否安裝成功&#xff1a; java -version設置 JAVA_HOME 環境變量&#xff1a; 為了確保系統中的其他應用程序可以找到 JDK&…

星火智能體創建指南,星火大模型智能體創建教程

一、什么是星火助手 星火助手是基于訊飛星火認知大模型&#xff0c;面向用戶使用場景&#xff0c;打造的高效生產力工具。通過設置結構化的指令模板&#xff0c;用戶即可完成助手功能設定&#xff0c;每個助手在對話的模式下能夠快速滿足場景需求。同時支持助手模板、數據集、…

Spring boot 2.0 升級到 3.3.1 的相關問題 (一)

文章目錄 Spring boot 2.0 升級到 3.3.1 的相關問題 &#xff08;一&#xff09;攔截器Interceptor的變動問題介紹解決方案 WebMvcConfigurerAdapter 自定義Mvc配置問題介紹解決方案 Spring boot 2.0 升級到 3.3.1 的相關問題 &#xff08;一&#xff09; 攔截器Interceptor的…