本文介紹RDS MySQL大版本升級檢查時的常見報錯資訊,並提供檢測項的內容詳情、可能原因以及解決方案。
以下報錯資訊為常見報錯,如遇其他報錯資訊請提工單諮詢。
檢測項 | 報錯資訊 | 檢查內容 | 可能原因 | 解決方案 |
check_ins_major_version | Current engine version does not support operations. | 檢查當前執行個體版本和目標版本是否屬於支援的大版本升級路徑。 | 當前升級路徑不是5.6升級到5.7、5.7升級到8.0或8.0升級到8.4。 | 請參見MySQL大版本升級的前提條件確認源版本、目標版本和執行個體形態。若控制台未開放對應升級入口,請提工單諮詢。 |
check_ins | Specified instance does not exist or not support. | 檢查當前執行個體是否存在。 | 執行個體不存在或已被刪除。 | 查看執行個體是否存在,使用已有的RDS MySQL執行個體進行檢查。 |
check_ins_status | Current DB instance state does not support this operation. | 檢查執行個體狀態是否為運行中。 | 有其他相關操作(如重啟中,建立網路連接中等)進行中,導致執行個體狀態不為運行中。 | 請等待任務結束,執行個體狀態為運行中後,再發起資料庫大版本升級檢查。 |
check_master_ins | Current DB instance type does not support this operation. | 檢查待升級執行個體是否為主執行個體。 | 待升級的執行個體為災備執行個體或者唯讀執行個體。 | 需要確保當前升級的執行個體為主執行個體。 |
check_ins_locked_state | Current DB instance lock mode does not support this operation. | 檢查執行個體是否為鎖定狀態。 | 此執行個體狀態為“鎖定中”。 | 請先解鎖執行個體,等待目前狀態變為“運行中“,再進行升級檢查操作。具體解鎖資訊,請參見執行個體狀態顯示“鎖定中”時如何解決? |
check_maxscale_kernel | The Maxscale version used by the instance is too low, please upgrade the Maxscale version first. | 按升級路徑檢查資料庫代理MaxScale小版本是否相容目標大版本。 | 代理版本未滿足對應目標小版本要求。5.7升級8.0時,要求代理版本不低於1.13.41;8.0升級8.4時,要求代理版本不低於2.25.11。 | 請先升級代理小版本至符合要求的版本後再檢查。8.0升級8.4要求可解析的代理版本不低於2.25.11。 |
check_ins_tde_state | Specified TDEStatus is not configured on the This custins. | 檢查當前執行個體是否開啟TDE。 | 待檢查執行個體已開啟TDE。 | 執行個體開啟了TDE功能,則不支援通過控制台直接升級。更多資訊,請參見升級資料庫版本。 |
check_target_ins_level | Current DB instance level does not support this operation. (錯誤碼: | 校正當前執行個體規格是否為在售的規格。 | 當前執行個體規格已下線(屬於歷史規格執行個體),無法直接升級資料庫版本。 | 已下線規格的執行個體無法直接進行版本升級,請先將執行個體變更為線上在售規格,再升級資料庫版本。 |
check_target_read_level | The read-only instance level is not supported in the target instance. | 校正當前唯讀執行個體規格是否為在售的規格。 | 唯讀執行個體規格已下線。 | 執行個體儲存為高效能本地碟,請將當前唯讀執行個體變更至官方售賣的規格後,再進行檢查。
|
check_upgrade_check_task | The task already exists. | 檢查當前執行個體是否存在大版本升級前置校正任務。 | 當前執行個體有大版本升級前置校正任務進行中中。 | 請等待前置校正任務完成,待執行個體狀態變為運行中後,再進行檢查。 |
check_upgrade_task | The task already exists. | 檢查當前執行個體是否已存在大版本升級任務。 | 當前執行個體有大版本升級任務進行中。 | 請等待大版本升級任務完成,待執行個體狀態變為運行中後,再進行檢查。 |
check_storage _type | Cloud ssd does not support this operation, please upgrade to essd. | 檢查當前執行個體儲存是否為SSD雲端硬碟。 | 當前執行個體儲存為SSD雲端硬碟。 | |
check_source_category | Specified source category is invalid. | 檢查當前執行個體系列是否屬於大版本升級支援範圍。 | 當前執行個體不屬於高可用系列、基礎系列或叢集系列,或者該升級路徑不支援當前規格。 | 暫不支援非高可用系列或5.7基礎系列的執行個體進行升級檢查。 |
check_ins_biz_type | Specified biz type is not valid. | 檢查當前執行個體是否屬於公用雲。 | 當前執行個體不屬於公用雲。 | 目前只支援針對公用雲執行個體進行升級檢查。 |
check_ins_tables_number | Upgrade not allowed due to excessive number of tables: more than 1000,000. 或 Upgrade not allowed due to excessive number of tables: more than 1000,000. | 檢查執行個體的資料表數量是否超過當前升級路徑允許的上限。 |
| 請在升級檢查前清理冗餘的資料表,然後重新發起檢查。 |
check_ins_db_engine | There are engines present such as MyISAM, Memory, TokuDB, Sphinx, or RocksDB. | 檢查執行個體資料庫中是否有MyISAM、Memory,TokuDB,Sphinx或RocksDB引擎 | 資料庫執行個體中使用了MyISAM、Memory、TokuDB、Sphinx或RocksDB引擎,不支援升級。 | 請先將資料庫引擎轉換為InnoDB引擎。如果您的資料庫已是InnoDB引擎,但部分表仍是其他引擎,請使用 |
check_ins_fts | The current instance has an FTS index, and the minor version is less than 20221130. | 檢查執行個體資料庫中是否具有Fts索引,且小版本是否低於20221130。 |
| RDS MySQL的5.6版本中,全文索引會建立在系統資料表空間。因此,RDS MySQL 5.6升級至RDS MySQL 5.7的版本時,需提前清理系統資料表空間中的全文索引(方法如下),並確保當前RDS MySQL 5.6的小版本為20221130或之後的版本。如您的版本較低,請先升級至最新的RDS MySQL 5.6版本。
|
check_read_ins_number | The number of read-only instances cannot be greater than 8. | 檢查高效能本地碟的唯讀執行個體數量不能大於8。 | 當前高效能本地碟執行個體中唯讀執行個體數量大於8。 | 釋放掉多餘的唯讀執行個體,待升級完成後再建立。 |
check_slave_state | The slave status is unhealthy or has delays. | 檢查備節點狀態以及時延資訊。 | 備節點狀態可能非正常或存在延遲。 | 可以通過控制台監控與警示功能查看節點複製線程狀態(單位:秒)和節點複寫延遲(單位:秒)的監控指標,待備節點狀態恢複正常後進行檢查。 |
check_account | The instance has an aliyun_root account. | 檢查賬戶。 | RDS MySQL 5.6中存在使用者手動建立的aliyun_root賬戶。 | RDS MySQL 5.7以上版本添加aliyun_root為預設賬戶,如果使用者在5.6版本手動建立了aliyun_root賬戶後,升級到5.7時會報同名錯誤,需提前刪除或修改aliyun_root賬戶,再進行升級檢查。更多資訊,請參見系統帳號說明。 |
check_sys_schema | The instance already has a sys database. | 檢查執行個體中是否存在sys庫。 | RDS MySQL 5.7中,預設是存在sys庫的,如果RDS MySQL 5.6存在sys庫,這將導致5.6升級到5.7的過程失敗。 | 如果存在sys庫,則需要使用者將sys庫做重新命名(由於MySQL不支援 |
check_table_discard | There are tables that have been discarded. | 檢查執行個體中是否存在discarded表,即執行過 | 執行個體中存在tablespace檔案大小和塊大小均為0的discarded表。 | 請確認資料安全後恢複或刪除相關表,再重新檢查。源版本5.7可查詢: 源版本8.0可查詢: |
check_table_foreign_key | The partitioned table contains foreign keys. | 檢查執行個體中分區表是否包含外鍵。 | 有包含外鍵或者被其他表外鍵引用的分區表。 | 需要使用者解決表中外鍵和分區表的衝突。
|
check_column_length | The number of views with column length greater than or equal to 64 is greater than 0. | 檢查執行個體中列長度大於或等於64的view數量。 | 不支援列長度大於或等於64的view數量大於0。 | 查詢後刪除多餘view或修改對應列長度。 |
check_foreign_key_constraint | The number of tables with foreign key constraint length greater than 64 is greater than 0. | 檢查執行個體中外鍵約束長度大於64的表數量。 | 外鍵約束長度大於64的表數量大於0。 | 查詢並刪除相關表或者修改外鍵約束長度名稱後重新檢查。。源版本5.7從INFORMATION_SCHEMA.INNODB_SYS_FOREIGN查詢,源版本8.0從INFORMATION_SCHEMA.INNODB_FOREIGN查詢。以下以5.7為例: |
check_dictionary_table | In the MySQL 5.7 system database, there cannot be tables with the same name as those used by the MySQL 8.0 data dictionary. | 檢查5.7系統資料庫中的表與8.0資料字典所使用的表是否存在同名。 | 5.7資料庫中存在與8.0資料字典中相同的表名。 | 查詢5.7系統資料庫中與8.0資料字典使用的表是否有同名後,刪除或者修改掉相同名稱的表。 |
check_ins_health | The master node of the instance is not available. | 檢驗執行個體是否可用(連通性)。 | CPU、磁碟等都已被打滿。 | 您可通過控制台監控與警示功能查看各項監控指標是否正常。 |
check_table_index_type | 5.7升級8.0:MySQL 8.0 does not support creating BTREE indexes on spatial fields. 8.0升級8.4:The current instance contains SPATIAL indexes. Drop these indexes before the upgrade and recreate them after the upgrade is complete. | 按升級路徑執行索引相容性檢查:5.7升級8.0檢查spatial欄位上的BTREE索引;8.0升級8.4檢查執行個體中是否存在空間索引(SPATIAL INDEX)。 | 5.7升級8.0時存在spatial欄位上的BTREE索引;或者8.0升級8.4時存在SPATIAL INDEX的索引。 | 請在升級前刪除檢測到的不相容索引,升級完成後按目標版本規則重建。5.7升級8.0可聯集查詢INFORMATION_SCHEMA.STATISTICS與INFORMATION_SCHEMA.COLUMNS定位spatial欄位上的BTREE索引,如下所示: 8.0升級8.4可執行: |
check_read_ins_level | The specifications of read-only instances are inconsistent. | 檢查高效能本地碟執行個體下多個唯讀執行個體的規格是否一致。 | 同一主執行個體下的唯讀執行個體使用了不同規格,升級過程中無法統一映射目標規格。 | 請將普通唯讀執行個體調整為一致的在售規格後,重新發起升級檢查。 |
check_bak_read_exists | There is a read-only instance, but there is no standby read-only instance. | 檢查高效能本地碟執行個體存在普通唯讀執行個體時,是否至少存在一個備用唯讀執行個體。 | 當前執行個體存在普通唯讀執行個體,但沒有備用唯讀執行個體,無法滿足升級切換要求。 | 請先調整隻讀執行個體拓撲並保留至少一個備用唯讀執行個體。 |
check_bak_read_number | Verify that the number of spare read-only instances cannot exceed 5. | 檢查高效能本地碟執行個體的備用唯讀執行個體數量是否超過5個。 | 當前備用唯讀執行個體數量大於5。 | 請釋放或調整多餘的備用唯讀執行個體,數量不超過5個後重新檢查。 |
check_read_ins_conn_type | The network types of the read-only instance and the standby read-only instance are inconsistent. | 檢查普通唯讀執行個體與備用唯讀執行個體的網路連接類型是否一致。 | 同一拓撲中同時存在LVS和DNS連線類型。 | 請將普通唯讀執行個體和備用唯讀執行個體調整為一致的連線類型後重新檢查。 |
check_interrupt_task | The standby read-only has unfinished tasks. | 檢查備用唯讀執行個體上是否存在未完成或已中止的大版本相關任務。 | 備用唯讀執行個體仍有等待、運行、暫停或中斷狀態的任務。 | 請等待相關任務完成,或處理並結束異常任務後重新發起檢查。 |
check_mgr_disabled_for_84 | MySQL 8.4 no longer supports Group Replication (MGR). | 檢查8.0升級8.4時源執行個體是否啟用了MGR。檢查 | 當前執行個體存在MGR成員,或者配置為執行個體啟動時自動拉起Group Replication。 | 請停止MGR,移除Group Replication相關參數並重啟執行個體,確認MGR不再啟用後重新檢查。 |