全部產品
Search
文件中心

PolarDB:大版本升級常見問題

更新時間:Jul 06, 2024

本章節介紹了PolarDB MySQL版叢集之間升級的常見問題。

  • 升級評估中的檢查項校正失敗,需要如何處理?

    分類

    檢查項

    檢查項校正失敗的處理方法

    源執行個體基本資料校正

    源執行個體運行狀態

    源PolarDB叢集的運行狀態需要處於正常運行中

    源執行個體讀寫狀態

    源PolarDB叢集的運行狀態需要處於正常運行中,可讀可寫。

    PolarDB服務關聯角色

    帳號下已建立PolarDB服務關聯角色。

    您可以參考檢查是否已建立PolarDB服務關聯角色操作,或通過OpenAPI建立。

    遷移任務依賴校正

    DTS服務許可權

    您的阿里雲帳號需要已授予DTS訪問雲資源的許可權。

    您可以參考授予DTS訪問雲資源的許可權操作。

    源執行個體binlog校正

    大版本升級前,源PolarDB叢集需要開啟Binlog。具體請參考開啟Binlog

    源執行個體是否是空庫

    源PolarDB叢集沒有建立資料庫。您需要在叢集中建立資料庫後才能進行升級。

    源執行個體觸發器校正

    源PolarDB叢集建立了觸發器,請先刪除觸發器,否則將導致升級中斷。

    您可以在升級流程結束後,在目標PolarDB叢集手動建立觸發器。

    源執行個體無主鍵表校正

    源PolarDB叢集存在沒有主鍵的表,同步資料後可能會導致目標資料庫中出現重複資料。

    您可以通過在源PolarDB叢集上通過高許可權帳號串連資料庫,並執行如下SQL,查詢沒有主鍵的表:

    SELECT t1.table_schema, t1.table_name 
    FROM information_schema.TABLES t1 LEFT OUTER 
    	JOIN information_schema.TABLE_CONSTRAINTS t2 
      ON t1.table_schema = t2.TABLE_SCHEMA AND t1.table_name = t2.TABLE_NAME AND t2.CONSTRAINT_NAME 
      IN ("PRIMARY") 
    WHERE t2.table_name IS NULL AND t1.table_type = "BASE TABLE" AND t1.TABLE_SCHEMA NOT IN ("information_schema", "performance_schema", "mysql", "sys") 。

    您可以為查詢出來的表添加主鍵。

    如果您確認重複記錄不影響,則可以忽略此項評估結果,在大版本升級過程中出現該提示的時候選擇繼續升級

    源執行個體重點資訊校正

    源執行個體root帳號校正

    為了避免遷移後目標PolarDB叢集的系統帳號被覆蓋,源PolarDB叢集中不允許同時存在root和aliyun_root帳號。因此,在進行升級前,請先刪除源叢集中多餘的系統帳號。具體可參考刪除源PolarDB MySQL版叢集中多餘系統帳號

  • Q:目標PolarDB MySQL版叢集的節點規格需要和源叢集的節點規格保持一致嗎?

    A:不一定,您可以按需選擇目標PolarDB MySQL版叢集的規格,建議不低於源叢集的規格。

  • Q:升級前,是否需要提前購買叢集?

    A:不需要,升級過程中會建立併購買一個與源PolarDB MySQL版叢集資料相同的叢集。

  • Q:升級會影響源叢集正常運行嗎?

    A:不會。

  • Q:同步資料對源叢集效能有影響嗎?

    A:同步資料涉及查詢操作,會消耗源叢集部分查詢效能。

  • Q:同步資料對業務有影響嗎?

    A:同步資料能夠保證同步過程不遺失資料,停機(即暫停業務,不產生增量資料,而非停用資料庫)時間小於10分鐘,如果有需要還可以進行復原。

  • Q:取消升級會有什麼影響?

    A:取消升級會有如下影響:

    • 會切斷源叢集到目的地組群的同步鏈路,導致源叢集和目的地組群不再關聯。

    • 目的地組群恢複可讀可寫狀態,且不會自動釋放。若不再需要使用該叢集,請儘快釋放,避免產生額外費用

    • 手動取消升級時可以選擇是否關閉叢集的Binlog,自動取消升級時不會關閉Binlog。

      說明

      關閉Binlog會帶來少量的寫入效能提升,Binlog關閉後,已有的Binlog檔案會一直保留。您可以先縮短Binlog檔案的儲存時間長度,等待不需要的檔案自動刪除後,再關閉Binlog。關閉Binlog後叢集會自動重啟,重啟任務會在5分鐘之內完成,重啟時服務閃斷時間在40秒左右。具體時間與資料量和表數量相關,建議您在業務低穀期進行操作並確保應用程式具備重連機制。

  • Q:升級完成後,將業務切換至目的地組群,應用程式端的串連地址是否需要修改?

    A:您可以在升級切換時選擇帶地址切換(應用程式不用改串連配置),系統會自動交換源叢集和目的地組群的串連地址,而無需在應用程式端修改任何配置即可自動連接到目的地組群。

  • Q:升級時選擇了帶地址切換(應用程式不用改串連配置),升級完成後,為什麼目的地組群仍然使用新的串連地址?

    A:僅當源叢集和目的地組群同時存在的串連地址才支援相互交換,預設情況下,僅私網主地址支援帶地址切換。如需切換其他串連地址,您需要在切換前建立好對應的串連地址,否則不會切換。建立叢集串連地址詳情請參見申請叢集地址和主地址

  • Q:業務切換成功後,為什麼串連不上PolarDB資料庫,或串連成功但只支援讀操作而無法執行寫入操作?

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

  • Q:升級切換後,為什麼在PolarDB控制台上看不見完成升級按鈕?

    A:若您已經執行過完成升級操作,為了避免您重複執行該操作,此按鈕將會被隱藏。

  • Q:升級成功後,還需要在目的地組群中建立與源叢集相同的帳號和密碼嗎?

    A:不需要,升級後的叢集中將包含源叢集的帳號密碼、資料庫、IP白名單和必要的參數資訊。

  • Q:源叢集開啟了SSL,能否執行版本升級操作?

    A:能,已開啟SSL的叢集支援升級。

    說明

    如果您選擇升級的叢集的串連地址開啟了SSL,請確保目的地組群對應的串連地址已開啟SSL。

  • Q:源叢集開啟了TDE,能否執行版本升級操作?

    A:能,已開啟TDE的叢集支援升級。

  • Q:源叢集開啟了SSL,能否升級至多主叢集(庫表)?

    A:能,但升級後的多主叢集(庫表)不支援開啟SSL。

  • Q:源PolarDB MySQL版叢集開啟了TDE,能否升級至多主叢集(庫表)?

    Q:能,但升級後的多主叢集(庫表)不支援開啟TDE。

  • Q:若在大版本升級前,源PolarDB MySQL版叢集已開啟了DTS資料同步任務,升級時是否會影響該任務?

    A:不會。通過大版本升級進行遷移時,會先從源叢集複製一份全量資料至一個新的PolarDB MySQL版叢集,然後將增量資料保持同步至該新叢集。源叢集上DTS資料同步任務的資料來源仍然是其自身,資料移轉至新的PolarDB MySQL版叢集並不會影響源叢集上的運行和操作。

    在遷移切換後,源PolarDB變成唯讀。若其作為DTS資料同步任務的資料目標端,將無法寫入。您需要將DTS資料同步任務的資料目標端修改成新PolarDB叢集;若其作為DTS資料同步任務的資料來源,也建議在遷移切換後儘快將DTS資料同步任務的資料來源修改成新PolarDB叢集。

    目前僅支援通過OpenAPI修改DTS任務的源或目標庫執行個體,具體請參見修改DTS任務的源或目標庫執行個體