1. 程式人生 > >雲資料庫POLARDB優勢解讀之①——10分鐘瞭解

雲資料庫POLARDB優勢解讀之①——10分鐘瞭解

什麼是POLARDB

POLARDB 是阿里雲自研的下一代關係型分散式資料庫,100%相容MySQL,之前使用MySQL的應用程式不需要修改一行程式碼,即可使用POLARDB。

POLARDB在執行形態上是一個多節點叢集,叢集中有一個Writer節點(主節點)和多個Reader節點,他們之間節點間通過分散式檔案系統(PolarFileSystem)共享底層的同一份儲存(PolarStore)。

POLARDB通過內部的代理層(Proxy)對外提供服務,也就是說所有的應用程式都先經過這層代理,然後才訪問到具體的資料庫節點。Proxy不僅可以做安全認證(Authorization)和保護(Protection),還可以解析SQL,把寫操作(比如事務、Update、Insert、Delete、DDL等)傳送到Writer節點,把讀操作(比如Select)均衡地分發到多個Reader節點,這個也叫讀寫分離。

POLARDB對外預設提供了兩個資料庫地址,一個是叢集地址(Cluster),一個是主地址(Primary),推薦使用叢集地址,因為它具備讀寫分離功能可以把所有節點的資源整合到一起對外提供服務。主地址是永遠指向主節點,訪問主地址的SQL都被髮送到主節點,當發生主備切換(Failover)時,主地址也會在30秒內自動漂移到新的主節點上,確保應用程式永遠連線的都是可寫可讀的主節點。

image.png | left | 827x520

如上圖,底層一套儲存,節省成本,是『合』;中間多個節點,提高擴充套件性,是『分』;上層一套代理層,統一入口,使用簡單,也是『合』。如此『合-分-合』的架構,在擴充套件性和使用便捷性之間保持了平衡,使得對於上層應用程式來說,就像使用一個單點的MySQL資料庫一樣簡單。

如何使用

POLARDB部署在雲端,建立時先選擇使用的地域可用區和具體的VPC網路,然後指定節點的數量(從 2個 到 16 個)和配置(從 2核 到 88核)即可,儲存空間不用提前配置,也不需要關心容量大小,系統會根據實際的使用量自動收取費用。

建立過程可能持續5-10分鐘,然後配置好白名單、建立完高許可權賬號就可以使用了。邏輯DB和賬號User,可以在控制檯建立,也可以通過高許可權賬號登入到資料庫執行SQL建立,二者效果完全一樣,沒有區別。

如果您需要遷移老的資料庫到POLARDB,推薦使用DTS。不管源庫是在RDS,還是在ECS自建MySQL,甚至是在雲下有公網地址可訪問的MySQL,都可以通過DTS做線上平滑遷移,停機時間5-10分鐘。

特點

除了可以像使用MySQL一樣使用POLARDB,這裡還有一些傳統MySQL資料庫不具備的優勢。

  • 容量大
    最高100T,不再因為單機容量的天花板而去購買多個MySQL例項做Sharding,甚至也不需要考慮分庫分表,簡化應用開發,降低運維負擔。
  • 高性價比
    多個節點只收取一份儲存的錢,也就是說只讀例項越多越划算。
  • 分鐘級彈性
    儲存與計算分離的架構,再加上共享儲存,使得快速升級成為現實。
  • 讀一致性
    叢集的讀寫分離地址,利用LSN(Log Sequence Number)確保讀取資料時的全域性一致性,避免因為主備延遲引起的不一致問題。
  • 毫秒級延遲——物理複製
    利用基於Redo的物理複製代替基於Binlog的邏輯複製,提升主備複製的效率和穩定性。即使是加索引、加欄位的大表DDL操作,也不會對資料庫造成延遲。
  • 無鎖備份
    利用儲存層的快照,可以在60秒內完成2T資料量大小的資料庫的備份。並且這個備份過程不需要對資料庫加鎖,對應用程式幾乎無影響,全天24小時均可進行備份。
  • 複雜SQL查詢加速
    內建並行查詢引擎,對執行時長超過1分鐘的複雜分析類SQL加速效果明顯。該功能需要額外連線地址。