全部產品
Search
文件中心

PolarDB:方案概述

更新時間:Sep 15, 2024

本章節介紹了PolarDB MySQL版叢集之間的升級方案、前提條件、使用限制和收費規則等內容。

升級方案概述

PolarDB MySQL版支援不同版本之間以及不同架構之間的大版本升級,整個過程中將自動為您建立目標版本的PolarDB叢集,並從源叢集同步資料。升級後的PolarDB MySQL版叢集包含源PolarDB MySQL版叢集的帳號資訊、資料庫資訊、IP白名單和必要的參數。

  • 版本之間升級。

    PolarDB MySQL版5.6升級至PolarDB MySQL版5.7,PolarDB MySQL版5.6升級至PolarDB MySQL版8.0.1等。

  • 架構之間升級。

    PolarDB MySQL版叢集版升級至PolarDB MySQL版多主叢集(庫表)。

  • 固定規格叢集升級至Serverless叢集。

具體的升級操作請參見升級步驟

升級方案優勢

  • 可保留資料庫原來的串連地址,無需修改應用程式的任何串連配置即可切換至目標版本。

  • 升級鏈路免費。

  • 升級過程資料0丟失。

  • 支援增量遷移,停機時間小於10分鐘。

  • 支援線上熱升級,升級過程僅閃斷一次。

  • 支援復原操作,升級失敗可以在10分鐘內恢複。

前提條件

PolarDB MySQL版產品版本需為企業版,產品系列需為叢集版。

使用限制

類型

說明

源庫限制

  • 頻寬要求:源庫所屬的伺服器需具備足夠的出口頻寬,否則將影響升級速率。

  • 待遷移的表需具備主鍵或唯一約束,且欄位具有唯一性,否則可能會導致目標資料庫中出現重複資料。

  • 如需進行增量遷移,需開啟Binlog日誌,並且需要將控制台上的loose_polar_log_bin參數設定為ON。否則預檢查階段提示報錯,且無法成功啟動升級任務。

    說明

    當前DTS同步任務為全量遷移和增量遷移任務,DTS要求來源資料庫的本地Binlog日誌至少保留7天以上(您可在全量遷移完成後將Binlog儲存時間設定為24小時以上),否則DTS可能因無法擷取Binlog而導致任務失敗,極端情況下甚至可能會導致資料不一致或丟失。由於您所設定的Binlog日誌儲存時間低於DTS要求的時間進而導致的問題,不在DTS的SLA保障範圍內。

  • 源庫的操作限制:

    在庫表結構遷移和全量遷移階段,請勿執行庫或表結構變更的DDL操作,否則資料移轉任務會失敗。

SQL語句限制

  • 支援的DML操作如下:

    • INSERT

    • UPDATE

    • DELETE

  • 支援的DDL操作如下:

    • ALTER TABLE、ALTER VIEW

    • CREATE FUNCTION、CREATE INDEX、CREATE PROCEDURE、CREATE TABLE、CREATE VIEW

    • DROP INDEX、DROP TABLE

    • RENAME TABLE

    • TRUNCATE TABLE

其他限制

  • 不支援遷移新增庫。如需遷移新增庫,請前往DTS控制台,並修改同步對象,將新增庫配置到正反向同步任務中。

  • 執行資料移轉前需評估源庫和目標庫的效能,同時建議業務低峰期執行資料移轉。否則全量資料移轉時DTS佔用源和目標庫一定讀寫資源,可能會導致資料庫的負載上升。

  • 由於全量資料移轉會並發執行INSERT操作,導致目標資料庫的表產生片段,因此全量遷移完成後目標資料庫的表格儲存體空間會比源叢集的表格儲存體空間大。

  • 請確認DTS對資料類型為FLOAT或DOUBLE的列的遷移精度是否符合業務預期。DTS會通過ROUND(COLUMN,PRECISION)來讀取這兩類列的值。如果沒有明確定義其精度,DTS對FLOAT的預設遷移精度為38位,對DOUBLE的預設遷移精度為308位。

  • DTS會嘗試恢複七天之內遷移失敗任務。因此業務切換至目的地組群前,請務必結束或釋放該任務,或者將DTS訪問目的地組群帳號的寫入權限用revoke命令回收掉。避免該任務被自動回復後,源端資料覆蓋目的地組群的資料。

其他注意事項

DTS會在源庫定時執行CREATE DATABASE IF NOT EXISTS `test`命令以推進Binlog位點。

注意事項

  • 版本之間升級時,如果源叢集的串連地址開啟了SSL,並且您選擇帶地址切換來切換該地址,請確保目的地組群對應的串連地址已開啟SSL。

  • 不支援為已加入全球資料庫網路(GDN)的叢集執行版本升級操作。

  • 架構之間升級時,由於PolarDB MySQL版多主叢集(庫表)的串連地址不支援開啟SSL,如果源叢集的串連地址開啟了SSL,則在升級至多主叢集(庫表)時,不支援使用帶地址切換。

  • 升級過程中,全量資料初始化時將佔用源庫和目標庫一定的讀寫資源,可能會導致資料庫的負載上升。

  • 升級過程中,全量資料初始化時會並發執行INSERT操作,導致目標資料庫的表產生片段,因此全量初始化完成後目的地組群的資料表空間比源叢集的資料表空間大。

  • 升級過程中,請勿手動釋放DTS任務。

  • 全量資料同步需要一定時間,耗時與資料量大小有關,在此期間,目標端狀態為建立中,請耐心等待。

  • 如果待升級的PolarDB叢集是已有Data Transmission Service(DTS)的源叢集或目的地組群,則升級後需要將該DTS任務的源或目的地組群修改為升級後的PolarDB叢集。如資料同步任務、資料移轉任務以及資料訂閱任務等。具體請參見修改DTS任務對象

收費規則

  • 大版本升級過程中,整個升級過程不收取額外費用,即:

    • 不收取DTS遷移和同步任務的費用。

    • 若目標PolarDB叢集為隨用隨付叢集時,目的地組群在整個升級過程中不計費,而是在如下操作後才開始正常隨用隨付:

      • 完成升級後;

        說明
        • 升級完成以中斷源叢集和目的地組群的同步鏈路為準。

        • 升級必須要在30天內完成。

      • 停止升級後(包括預校正失敗時放棄遷移,以及遷移過程中取消升級)。

        此時目的地組群已建立,但升級停止,若您不需要使用目的地組群,請及時釋放

    • 若目標PolarDB叢集為Serverless叢集,目的地組群的狀態變為運行中後,即開始計費。

    • 若目標PolarDB叢集為訂用帳戶叢集,則在建立目標PolarDB叢集時預支付對應的費用。

      說明

      建議您的目標PolarDB叢集選擇隨用隨付叢集,以降低大版本升級的成本。

  • 對於源叢集為訂用帳戶的叢集,執行完大版本升級後,若您不需要再使用源叢集,則可以申請轉單優惠退款,以節省資源和成本。

帶地址切換

PolarDB MySQL版叢集之間的升級支援帶地址切換,系統會自動交換源叢集和目的地組群上的串連地址。串連地址對應關係圖如下所示:

  • 版本之間升級串連地址對應關係圖如下:

    從PolarDB升級

  • 架構之間升級(叢集版升級至多主叢集(庫表))串連地址對應關係圖如下:

    image

    架構升級支援使用者指定源叢集和目的地組群切換的地址。如源叢集的主地址與目的地組群的叢集地址進行切換、源叢集的主地址與目的地組群的自訂地址進行切換、源叢集的叢集地址與目的地組群的自訂地址進行切換等。串連地址內部映射關係圖如下:image

使用帶地址切換功能時,需要注意以下幾點:

  • 帶地址切換隻會切換源叢集和目的地組群的網域名稱,Vswitch和Vip等配置不會切換。

  • 僅當源叢集和目的地組群同時存在串連地址才支援相互切換,預設情況下僅私網主地址支援帶地址切換。

  • 版本之間升級選擇帶地址切換時,源叢集和目的地組群的主地址一定會切換,可以選擇不切換或切換多組。

  • 架構之間升級選擇帶地址切換時,您可以選擇源叢集和目的地組群的切換地址,可以選擇不切換或切換多組。

  • 如需切換其他串連地址,您需在切換前建立好對應的串連地址,否則不會切換。關於如何為PolarDB叢集建立串連地址,請參見申請叢集地址和主地址

  • 帶地址切換不會切換連接埠,請確保源叢集和目的地組群的串連連接埠一致(PolarDB預設使用的連接埠號碼為3306),如需修改連接埠,請參見修改串連地址和連接埠

  • 切換網域名稱後,可能會存在DNS解析緩衝問題,在緩衝到期時間內可能會出現串連不上資料庫或資料庫只支援讀操作而無法執行寫入操作等情況,建議您重新整理一下伺服器的DNS緩衝。

升級評估

為了保證升級鏈路的順利和更好的升級體驗,PolarDB提供了升級評估功能,您可以校正在開始升級前,對執行個體狀態、升級任務依賴、源執行個體屬性資訊等前提條件進行預校正,提前發現影響升級進度的前置條件並處理,以降低升級過程中的處理成本和資源成本。

具體操作說明,請參見升級評估