欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql 查詢百萬數據,如何設計和實現高可用的MySQL

劉柏宏2年前26瀏覽0評論
mysql 查詢百萬數據,如何設計和實現高可用的MySQL?

有關數據庫高可用實現,分別以主流的Oracle、Mysql的實現方式來進行闡述。

為了解決數據庫的單點故障,提供系統的整體可用性,存在以下兩種技術路線: 路線1:基于傳統數據庫的高可用集群,主要包括共享存儲(Share-Storage)、全共享(Share-Everything)和無共享(Share-Nothing)等; 路線2:基于NewSQL數據庫的高可用架構,如谷歌的Spanner/F1數據庫、阿里的OceanBase分布式數據庫。

MySQL主從集群

基于“Share-Nothing架構”的數據庫集群,具備數據冗余,能快速實現主備切換,具有更高的可用性。

在保證數據一致性、完整性及高可用性的前提下,采用MySQL半同步復制+MHA復制管理工具的方案。

如上圖所示,本方案采用MySQL一主多從的架構方式,主節點提供數據的讀寫服務,從節點提供數據的只讀服務,主從節點間通過MySQL的主從復制機制來單向同步數據。另外,將MHA Manager單獨部署到一臺服務器,來管理MySQL集群,控制Master節點的故障切換,保證整個集群的高可用。

MHA(Master High Availability)負責MySQL的故障切換和主從提升等功能。在MySQL故障切換過程中,MHA能做到在0~30秒之內自動完成數據庫的故障切換操作,并且在進行故障切換的過程中,MHA能在最大程度上保證數據的一致性,以達到真正意義上的高可用。

該軟件由兩部分組成:MHA Manager(管理節點)和MHA Node(數據節點)。MHA Manager可以單獨部署在一臺獨立的機器上管理多個Master-Slave集群,也可以部署在一臺Slave節點上。MHA Node運行在每臺MySQL服務器上,MHA Manager會定時探測集群中的Master節點,當Master出現故障時,它可以自動將最新數據的Slave提升為新的Master,然后將所有其他的Slave重新指向新的Master。整個故障轉移過程對應用程序完全透明。

2. Oracle RAC集群

基于“Share-Everything架構”的數據庫集群,不僅共享存儲,還共享緩存。

RAC通過不同的節點使用一個或者多個Oracle實例(Instance)與一個數據庫(Database)連接,該數據庫存放于多個節點的共享存儲(Share Storage)上,通過高速緩存合并技術使得集群中的每個節點可以通過高速集群互聯高效的同步其內存高速緩存,從而最大限度地減低磁盤IO,并且自動并行處理及均勻分布負載,當其中一個節點發生故障時可以自動容錯和恢復能力來實現節點的故障切換(Failover),從而保證數據庫的高可用性。

RAC架構的軟、硬件結構: