關於Oracle和MySQL的高可用方案,其實一直想要總結了,就會分為幾個系列來簡單說說。透過這樣的對比,會對兩種資料庫架構設計上的細節差異有基本的認知。 Oracle有一套很成熟的解決方案。用我在OOW上的ppt來看,是MAA的方案,今年是這個方案的16週年了。本文主要介紹了Oracle和MySQL的高可用方案比較分析,非常不錯,具有參考借鑒價值,需要的朋友可以參考下。
而MySQL因為開源的特點,社群裡推出了更多的解決方案,個人的見解,InnoDB Cluster會是MySQL以後的高可用方案標配。
而目前來看,MGR固然不錯,MySQL Cluster方案也有,PXC,Galera等方案,個人還是更傾向於MHA.
所以本文會分成幾個部分來解讀,先拿RAC和MHA來做一個基本的比較。
Oracle的解決方案在阿里快速發展時期支撐了核心業務的需求。大概是這樣的架構體系,看起來很龐大。裡面的RAC算是貴族,用昂貴的商業存儲,網路頻寬要求極高,前端大量的小機業務還有不菲的licence費用。非常典型的IOE的經典架構。
如果要考慮異地容災,那麼資源配置要double,預算翻倍。
MySQL的架構方案相對來說比較平民化,普通的pc就可以,但是數量級要高,做業務拆分,水平拆分就能夠橫向擴展出非常多的節點,很多大互聯網公司的MySQL叢集規模都是幾百幾百的規模,上千都不稀奇。如此之多的服務資源,發生故障的機率還是有的,保證業務服務的可持續性訪問,是技術方案的關鍵。如果按照MHA的架構,基本上就是MHA Manager節點來負責整個集群的狀態,好比一個居委會大媽,對住戶的大大小小的事情都瞭如指掌包打聽。
當然上面的說法太過籠統,我們從一些細節開始。比如先來說說網路的事情。
Oracle對於網路的要求還是很嚴格的,一般都是要2塊物理網卡,每台伺服器需要至少3個IP, Public IP,private IP,VIP,除了共享存儲,至少需要2個計算節點。
private IP是節點間互信的,Public IP和VIP在一個網段,簡單來說,VIP是對外的,是public IP所在網路的漂移IP,在10g裡面都是透過VIP來做負載平衡的,11g開始有了scan-IP,原來的VIP還是保留,所以Oracle裡面的網路設定需求還是很高的。拋開共享存儲,搭建的核心就是網路配置了,網路通則通。
scan-IP還可以繼續擴展,最多支援3個scan-ip,如下圖所示
#當然網路層面不只是這些,這方面的亮點Oracle就很專業了。我們有必要了解下TAF,在我的書中《Oracle DBA工作筆記》中,我這樣寫道:
TAF(Transparent Application Failover)是Oracle中對應用透明的故障轉移,在RAC環境中使用尤其廣泛。在RAC中Load Balance這塊確實做了很大的改進,從10g版本開始的多個VIP位址的Load Balance,到11g版本中的SCAN,做了很大的簡化。
而在Failover的實作中,還是有一定的使用限定,例如11g中預設的SCAN-IP的實作其實預設沒有Failover的選項,如果兩個節點中的其中一個節點掛了,那麼原有的連線中繼續查詢就會提示session已經斷開,需要重新連線。客戶端TAF主要會討論Failover Method和Failover Type的一些簡單內容。
(1)Failover Method
Failover Method的主要想法就是換取故障轉移時間,或是換取資源來實現。
可以這樣來理解,假設我們存在兩個節點,如果某個session連接到了節點2,然而節點2突然掛了,為了更快處理Failover這種情況,Failover Method有preconnect和basic兩種。
— preconnect這種預連接方式還是會佔用較多的資源使用,在各個節點上會預先佔用一部分額外的資源,在切換時會相對更加平滑,速度更快。
— basic這種方式,則在發生Failover時,再去切換對應的資源,中間會有一些卡頓,但是對於資源的消耗相對來說要小得多。
簡單來說,basic方式會在故障發生時才去判斷,而preconnect則是未雨綢繆;從實際的應用來說,basic這種方式更加通用,也是默認的故障轉移方式。
(2)Failover Type
Failover Type實現更加豐富且靈活,非常強大。這時候控製粒度可以針對使用者SQL的執行情況進行控制,有select和session兩種;透過一個小例子來說明一下。
例如,我們有個很大的查詢在節點2上進行,結果節點2突然掛了,對於正在執行的查詢,比如說有10 000條數據,結果剛好故障發生的時候查出了8 000條,那麼剩下的2 000該怎麼處理。
第一種方式就是使用select;即會完成故障切換,繼續把剩下的2 000筆記錄返回,當然中間會有一些上下文環境的切換,對於用戶是透明的。
第二種方式是session;即直接斷開連接,要求重新查詢。
在10g版本中藉助於VIP的設定達到Load Balance+Failover的設定如下:
##
racdb= (DESCRIPTION = (ADDRESS= (PROTOCOL= TCP)(HOST=192.168.3.101)(PORT= 1521)) (ADDRESS= (PROTOCOL= TCP)(HOST=192.168.3.201)(PORT= 1521)) (LOAD_BALANCE = yes) (FAILOVER = ON) (CONNECT_DATA = (SERVER= DEDICATED) (SERVICE_NAME = racdb) (FAILOVER_MODE = (TYPE= SELECT) (METHOD= BASIC) (RETRIES = 30) (DELAY = 5)))) 如果11g的SCAN-IP也想进一步扩展Failover,同样也需要设置failover_mode和对应的类型。 RACDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = rac-scan)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = RACDB) ) )
Oracle和mysql的一些簡單指令比較參考[組圖]_MySQL
以上是Oracle和MySQL的高可用方案比較分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

mysqloffersvariousStorageengines,每個suitedfordferentusecases:1)InnodBisidealForapplicationsNeedingingAcidComplianCeanDhighConcurncurnency,supportingtransactionsancions and foreignkeys.2)myisamisbestforread-Heavy-Heavywyworks,lackingtransactionsactionsacupport.3)記憶

MySQL中常見的安全漏洞包括SQL注入、弱密碼、權限配置不當和未更新的軟件。 1.SQL注入可以通過使用預處理語句防止。 2.弱密碼可以通過強制使用強密碼策略避免。 3.權限配置不當可以通過定期審查和調整用戶權限解決。 4.未更新的軟件可以通過定期檢查和更新MySQL版本來修補。

在MySQL中識別慢查詢可以通過啟用慢查詢日誌並設置閾值來實現。 1.啟用慢查詢日誌並設置閾值。 2.查看和分析慢查詢日誌文件,使用工具如mysqldumpslow或pt-query-digest進行深入分析。 3.優化慢查詢可以通過索引優化、查詢重寫和避免使用SELECT*來實現。

要監控MySQL服務器的健康和性能,應關注系統健康、性能指標和查詢執行。 1)監控系統健康:使用top、htop或SHOWGLOBALSTATUS命令查看CPU、內存、磁盤I/O和網絡活動。 2)追踪性能指標:監控查詢每秒數、平均查詢時間和緩存命中率等關鍵指標。 3)確保查詢執行優化:啟用慢查詢日誌,記錄並優化執行時間超過設定閾值的查詢。

MySQL和MariaDB的主要區別在於性能、功能和許可證:1.MySQL由Oracle開發,MariaDB是其分支。 2.MariaDB在高負載環境中性能可能更好。 3.MariaDB提供了更多的存儲引擎和功能。 4.MySQL採用雙重許可證,MariaDB完全開源。選擇時應考慮現有基礎設施、性能需求、功能需求和許可證成本。

MySQL使用的是GPL許可證。 1)GPL許可證允許自由使用、修改和分發MySQL,但修改後的分發需遵循GPL。 2)商業許可證可避免公開修改,適合需要保密的商業應用。

選擇InnoDB而不是MyISAM的情況包括:1)需要事務支持,2)高並發環境,3)需要高數據一致性;反之,選擇MyISAM的情況包括:1)主要是讀操作,2)不需要事務支持。 InnoDB適合需要高數據一致性和事務處理的應用,如電商平台,而MyISAM適合讀密集型且無需事務的應用,如博客系統。

在MySQL中,外鍵的作用是建立表與表之間的關係,確保數據的一致性和完整性。外鍵通過引用完整性檢查和級聯操作維護數據的有效性,使用時需注意性能優化和避免常見錯誤。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Linux新版
SublimeText3 Linux最新版

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中