成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

從TAF到TAC,業務連續性的追求永無止境

數據庫 Oracle
Oracle 在1998年推出Oracle 8i的時候,推出了一個叫做透明應用故障切換TAF(Transparent Application Failover)的技術組件。從而讓OPS節點故障時實現連接的自動切換。

對于數據庫系統來說,高可用和業務連續性是用戶最為關注的問題。在我參與的幾次用戶調研中,業務連續性問題都是排名第一的關注點,而且熱度是排名第二的問題的2倍以上。對于企業級應用或者關鍵系統來說,業務連續性是永恒的話題。券商的數據庫出問題了,那么能否在數秒內恢復業務?銀行的數據庫出問題了,能否RPO=0,RTO接近于0?對于絕大多數中小金融機構的大多數系統,運營商的大多數系統,政府、醫療、制造業的絕大多數關鍵系統而言,單機集中式數據庫的處理能力是足夠的,用戶最需要擔心的其實只是高可用的問題。

Oracle 在1998年推出Oracle 8i的時候,推出了一個叫做透明應用故障切換TAF(Transparent Application Failover)的技術組件。從而讓OPS節點故障時實現連接的自動切換。20年后,Oracle 18C中的高可用從透明估值切換演變成了透明應用連續性TAC(Transparent Application Continuity),這個功能將會成為Oracle 23C首推的高可用切換方案。今天我們就來簡單地了解一下Oracle的數據庫高可用技術的發展歷程。國產數據庫廠商也應該能夠從這個發展歷程中受到一定的啟發,從而優化國產數據庫的高可用能力。

個人認為Oracle的數據庫高可用大體可以分為TAF/FCF/TAC(AC)三大階段。可能有些朋友會有其他的一些分段方法。TAF主打的是OPS/RAC的透明故障切換。這是一種客戶端故障切換技術,當客戶端發現數據庫實例無法正常工作的時候,經過數次RETRY無效,則自動發起連接切換。這種切換有兩種模式,一種是SESSION模式,重新創建一個新的會話,拋棄以前做的所有任務,重新開始新的工作。還有一種是SELECT模式,如果發生切換的會話正在做一個只讀事務,則正在做的SELECT可以繼續進行。這是因為與SELECT相關的所有數據與控制信息在PGA中是完整的,不需要依賴服務器的SGA和服務器的狀態。    

TAF功能夠強,只不過切換的時間會長了一點,因為客戶端感知故障,多次RETRY,都會浪費一定的時間。而一些關鍵應用需要更快地切換時間。因此快速連接故障切換(FCF)在Oracle中應運而生了,這個技術在Oracle 11G隨著UCP連接池的推出,變得更加完善了。FCF技術依賴于Fast Application Notification (FAN)。傳統上,數據庫實例產生某些變化(服務、實例、節點的DOWN 或 UP)時,應用程序會掛起,直到超時,此時應用程序會收到相關的SQL異常。隨 Oracle Database 11g 引入FAN,事件以快速可靠的方式通知給訂閱者。借助Oracle 10g開始引入的 Oracle 通知服務 (ONS),數據庫實例宕機時,服務或者節點50毫秒或更短的時間內啟動故障轉移。

FCF解決了快速切換的問題,如果應用程序里捕獲了ONS中的事件產生的客戶端錯誤,并且自動放棄當前的業務邏輯,重新完成業務邏輯,那么在客戶端幾乎可以對RAC某個節點的故障無感知。不過FCF有一點是對TAF的一個倒退,那就是FCF要放棄所有的故障前的操作。哪怕有一條SELECT已經查了2小時,還有1秒鐘就可以完成。

為了解決這個問題,讓系統的高可用更加完備,Oracle在12C中對整個數據庫高可用框架進行了重構。引入了全局數據服務(GDS)、事務守護者Transaction Guard (TG)等機制。基于這些新的機制,實現了應用連續性(AC)和透明應用連續性(TAC)。并且將高可用框架擴展到了RAC以外。ADG/OGG復制環境中,也可以使用這些高可用解決方案。

Oracle要實現的目標是,當系統故障切換的時候,能不能做到應用無感。也就是說,如果切換是無損切換(比如RAC節點故障,同步ADG的故障切換,ADG的SWITCHOVER等場景)的時候,是不是可以實現快速的無損切換,讓業務連續性得到最大的保護呢?為了實現這個目標,Oracle引入了TG和故障事務重播。基于此,DML/DDL等寫操作都可以實現透明切換。

從Oracle Database 12c開始,每個事務都與一個邏輯事務 ID (LTXID) 相關聯。其目的是幫助可靠地確定運行中 COMMIT 語句的結果。已分配 LTXID由 RDBMS 在每個事務開始時更改(即遞增),僅在以下情況下由 RDBMS 更改:相應的事務要么被提交,要么被回滾。為了更好的實現TG,Oracle 12c 引入了“數據庫請求”的概念。UCP 在連接檢出時透明地劃分數據庫請求的開始和連接的結束。同時“可恢復的錯誤”的概念引入也相當關鍵。Oracle  12c 將所有 SQL 異常分為兩大類:可恢復錯誤和 不可恢復(即違反約束)。所有錯誤消息都有一個附加的名為 OracleException.IsRecoverable 的屬性。

有了這些基礎技術以后,TAC的實現就能牛逼了。當RAC的節點故障時,如果你配置了TAC,那么故障的SESSION能自動切換到接管實例上,未完成的 讀寫操作繼續完成,應用端無需捕獲錯誤,也不會捕獲到錯誤。應用端的感受僅僅是好像當前事務比以往略微慢了一點點。

TAC不僅可以在RAC中實現,對于ADG環境中依然可以實現。如果ADG采用了同步復制模式,那么數據肯定是無損的,因此ADG可以在FAILOVER的時候通過TAC來實現切換。如果ADG不是同步模式的 ,那么為了確保故障回放的一致性,此切換僅僅能在SWITCHOVER這種無損切換中使用。在ADG上的TAC實現效果與RAC上并無太大區別,只是切換的時間長了不少而已。    

從上面我對Oracle高可用技術發展的描述上,大家應該可以看出Oracle為了提高數據庫的可用性而做的努力。目前國產數據庫也在推出類似Oracle RAC的技術,在這些國產的“RAC”里,無一例外地支持了類似TAF的技術。我覺得在Oracle已經演進到了TAC的今天,我們的國產數據庫廠商哪怕不做個彎道超車,追上Oracle,實現真正的平替也是很必要的吧。

另外對于我們親愛的用戶和應用開發商,我也想說兩句,二十多年過去了,你還只會用TAF做故障切換嗎?TAC難道不是你們更好的選擇嗎?

責任編輯:武曉燕 來源: 白鱔的洞穴
相關推薦

2014-07-18 10:21:26

陌生人交友社交

2013-03-01 11:25:27

2018-03-16 09:47:41

2011-12-19 14:22:36

云計算虛擬化

2017-07-26 21:54:59

2022-05-18 10:16:43

ERP業務連續性

2009-04-24 21:02:08

Vmwareesx虛擬化

2011-12-29 09:32:28

云計算

2022-04-13 10:43:50

業務連續性威脅管理CIO

2012-10-31 10:36:01

數據保護業務連續性

2018-08-22 10:14:01

2011-12-12 19:39:32

IBM

2014-03-18 15:16:21

比特觀察 私人定制 業

2016-11-07 15:13:54

2009-05-08 14:32:19

業務中斷廣西電網梭子魚

2011-02-15 13:21:17

業務連續性安全威脅

2010-02-23 15:34:36

IBM

2010-11-18 23:39:48

云計算

2021-12-10 11:46:33

無線網絡

2021-06-17 13:12:13

物聯網自助倉儲IOT
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 狠狠色综合欧美激情 | 99热这里有精品 | 国产午夜精品久久久 | 日韩国产一区 | 成人午夜精品 | 999久久久精品 | 欧美色a v | 婷婷综合在线 | 国产成人精品久久二区二区91 | 亚洲精选一区二区 | 免费看国产a | 亚洲一区二区中文字幕 | 一级黄a视频 | 久久精品一级 | 在线观看免费观看在线91 | 国产精品www | 亚洲国产精品久久久 | 男人的天堂久久 | 国产一区二区精品自拍 | 蜜桃av一区二区三区 | 欧洲亚洲精品久久久久 | 另类专区成人 | 99精品观看| 在线观看亚洲 | 免费午夜视频在线观看 | 中文字幕在线视频免费观看 | 日本黄色的视频 | 天天躁日日躁aaaa视频 | 九九久久久久久 | 精品综合久久 | 成人av电影天堂 | 99亚洲视频 | 精国产品一区二区三区 | 91精品国产91久久综合桃花 | 99国产精品99久久久久久 | 亚洲一区二区精品视频 | 亚洲精品久久久久久久久久久久久 | 91视频免费在观看 | 国产精品成人一区二区三区夜夜夜 | 99riav3国产精品视频 | 亚洲福利在线观看 |