すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:主要なエンジンバージョンのアップグレードのレポートの詳細を確認する

最終更新日:Aug 29, 2024

このトピックでは、ApsaraDB RDS for MySQLインスタンスのメジャーエンジンバージョンアップのレポートに含まれる一般的なエラーについて説明します。 このトピックでは、チェック項目、チェック内容、考えられるエラーの原因、および解決策についても説明します。

次の表に、一般的なエラーを示します。 表に記載されていないエラーが発生した場合は、チケットを起票してください。

チェックアイテム

一般的なエラー

コンテンツの確認

考えられる原因

解決策

check_ins_major_version

現在のエンジンバージョンは操作をサポートしていません。

現在のRDSインスタンスのバージョンがメジャーエンジンバージョンのアップグレードでサポートされているかどうかを確認します。

RDSインスタンスはMySQL 5.6またはMySQL 5.7を実行していません。 さらに、RDSインスタンスはMySQL 5.6からMySQL 5.7に、またはMySQL 5.7からMySQL 8.0にアップグレードされません。

RDSインスタンスがメジャーエンジンバージョンのアップグレードの条件を満たしていることを確認します。 詳細については、「メジャーエンジンのバージョンのアップグレード」をご参照ください。

check_ins

指定されたインスタンスが存在しないか、サポートされていません。

現在のRDSインスタンスが存在するかどうかを確認します。

RDSインスタンスが存在しないか、削除されます。

アップグレードするRDSインスタンスが存在することを確認し、既存のRDSインスタンスでアップグレードチェックを実行します。

check_ins_status

Current DB instance state does not support this operation.

現在のRDSインスタンスが [実行中] 状態であるかどうかを確認します。

インスタンスの再起動やネットワーク接続の確立などの操作がRDSインスタンスで実行されているため、RDSインスタンスは [実行中] 状態ではありません。

RDSインスタンスの操作が完了し、RDSインスタンスのステータスが [実行中] に変わるまで待ちます。 次に、RDSインスタンスのアップグレードチェックを再度実行します。

check_master_ins

Current DB instance type does not support this operation.

アップグレードするRDSインスタンスがプライマリRDSインスタンスであるかどうかを確認します。

アップグレードするRDSインスタンスは、ディザスタリカバリRDSインスタンスまたは読み取り専用RDSインスタンスです。

アップグレードするRDSインスタンスがプライマリRDSインスタンスであることを確認します。

check_ins_locked_state

Current DB instance lock mode does not support this operation.

RDSインスタンスがロックされているかどうかを確認します。

RDSインスタンスはロック状態です。

RDSインスタンスのロックを解除し、RDSインスタンスのステータスが [実行中] に変わるまで待ちます。 次に、RDSインスタンスのアップグレードチェックを再度実行します。 詳細については、「」をご参照ください。ApsaraDB RDSインスタンスがロック状態の場合はどうすればよいですか。

check_maxscale_kernel

インスタンスで使用されているMaxscaleバージョンが低すぎます。最初にMaxscaleバージョンをアップグレードしてください。

データベースプロキシ機能が有効になっているRDSインスタンスのデータベースプロキシバージョンが、メジャーエンジンバージョンのアップグレードでサポートされているかどうかを確認します。

データベースプロキシ機能が有効になっているRDSインスタンスのデータベースプロキシバージョンが1.13.41より前です。

RDSインスタンスのメジャーエンジンバージョンをアップグレードする前に、データベースプロキシが有効になっているRDSインスタンスのデータベースプロキシバージョンを必要なバージョンにアップグレードします。 詳細については、「データベースプロキシバージョンのアップグレード」をご参照ください。

check_ins_tde_state

指定されたTDEStatusは、このカスティンに設定されていません。

現在のRDSインスタンスで透過的データ暗号化 (TDE) 機能が有効になっているかどうかを確認します。

現在のRDSインスタンスでTDE機能が有効になっています。

RDSインスタンスでTDE機能が有効になっている場合、ApsaraDB RDSコンソールでRDSインスタンスのメジャーエンジンバージョンを直接アップグレードすることはできません。 詳細については、「データベースエンジンのバージョンのアップグレード」をご参照ください。

check_target_ins_level

現在のDBインスタンスレベルはこの操作をサポートしていません。

現在のDBインスタンスレベルはこの操作をサポートしていません。

現在のRDSインスタンスのインスタンスタイプは段階的に廃止されています。

RDSインスタンスがフェーズアウトインスタンスタイプを使用している場合、RDSインスタンスのメジャーエンジンバージョンをアップグレードする前に、RDSインスタンスのインスタンスタイプをアップグレードする必要があります。

check_target_read_level

読み取り専用インスタンスレベルは、対象インスタンスではサポートされていません。

現在の読み取り専用RDSインスタンスのインスタンスタイプが購入可能かどうかを確認します。

現在の読み取り専用RDSインスタンスのインスタンスタイプは廃止されています。

現在の読み取り専用RDSインスタンスがローカルディスクを使用している場合、読み取り専用RDSインスタンスのインスタンスタイプを使用可能なインスタンスタイプに変更します。 次に、RDSインスタンスのアップグレードチェックを再度実行します。

check_upgrade_check_task

タスクは既に存在します。

現在のRDSインスタンスでアップグレードチェックが実行されているかどうかを確認します。

現在のRDSインスタンスでアップグレードチェックが実行されています。

アップグレードチェックが完了するまで待ちます。 RDSインスタンスのステータスが [実行中] に変わったら、アップグレードチェックを再度実行します。

check_upgrade_task

タスクは既に存在します。

現在のRDSインスタンスでメジャーエンジンバージョンのアップグレードが実行されているかどうかを確認します。

現在のRDSインスタンスのメジャーエンジンバージョンがアップグレード中です。

現在のRDSインスタンスのメジャーエンジンバージョンがアップグレードされるまで待ちます。 RDSインスタンスのステータスが [実行中] に変わったら、アップグレードチェックを再度実行します。

check_storage _type

Cloud ssdはこの操作をサポートしていません。essdにアップグレードしてください。

現在のRDSインスタンスが標準SSDを使用しているかどうかを確認します。

現在のRDSインスタンスは標準SSDを使用しています。

現在のRDSインスタンスのストレージタイプを標準SSDからエンタープライズSSD (ESSD) にアップグレードします。 詳細については、「標準SSDからESSDへのストレージタイプのアップグレード」をご参照ください。

check_source_category

指定されたソースカテゴリが無効です。

現在のRDSインスタンスのRDSエディションを確認します。

現在のRDSインスタンスは、RDS Basic EditionまたはRDS High-availability Editionを実行していません。

アップグレードするRDSインスタンスがRDS Basic EditionまたはRDS High-availability Editionを実行していることを確認します。

check_ins_biz_type

指定されたbizタイプは無効です。

現在のRDSインスタンスがAlibaba Cloudパブリッククラウドにデプロイされているかどうかを確認します。

現在のRDSインスタンスはAlibaba Cloudパブリッククラウドにデプロイされていません。

RDSがAlibaba Cloudパブリッククラウドにデプロイされていることを確認します。

check_ins_tables_number

テーブルの数が200,000を超えるため、アップグレードできません。

テーブルの数が50,000を超えるため、アップグレードできません。

RDSインスタンスのデータテーブル数を確認します。

  • RDSインスタンスがローカルディスクを使用し、RDSインスタンスのデータテーブルの数が200,000を超える場合、RDSインスタンスのメジャーエンジンバージョンをアップグレードすることはできません。

  • RDSインスタンスがクラウドディスクを使用し、RDSインスタンスのデータテーブルの数が50,000を超える場合、RDSインスタンスのメジャーエンジンバージョンをアップグレードすることはできません。

冗長なデータテーブルを削除し、アップグレードチェックを再度実行します。

check_ins_db_engine

MyISAM、Memory、TokuDB、Sphinx、RocksDBなどのエンジンが存在します。

RDSインスタンスがMyISAM、MEMORY、TokuDB、Sphinx、またはRocksDBストレージエンジンを実行しているかどうかを確認します。

RDSインスタンスは、MyISAM、MEMORY、TokuDB、Sphinx、またはRocksDBストレージエンジンを実行します。 この場合、RDSインスタンスのメジャーエンジンバージョンをアップグレードすることはできません。

RDSインスタンスのストレージエンジンをInnoDBに変更します。 RDSインスタンスのストレージエンジンがInnoDBであるが、RDSインスタンス上の一部のテーブルが他のストレージエンジンを実行している場合は、RDSインスタンスのメジャーエンジンバージョンをアップグレードする前に、ALTER TABLE <Table name> engine=InnoDB; ステートメントを実行して、テーブルのストレージエンジンをInnoDBに変更します。

check_ins_fts

現在のインスタンスにはFTSインデックスがあり、マイナーバージョンは20221130未満です。

RDSインスタンスにフルテキスト検索 (FTS) インデックスが存在するかどうか、およびRDSインスタンスのマイナーエンジンバージョンが20221130より前であるかどうかを確認します。

  • MySQLの歴史的な理由により、RDSインスタンスのシステムテーブルスペースにFTSインデックスが作成される場合があります。 この場合、RDSインスタンスのメジャーエンジンバージョンをアップグレードすると、RDSインスタンスのシステムテーブルスペースがFTSインデックスによって破損する可能性があります。 データの破損を防ぐために、RDSインスタンスのメジャーエンジンバージョンをアップグレードする前に、FTSインデックスを削除する必要があります。

  • 上記の問題は、MySQL 5.6を実行するRDSインスタンスと20221130のマイナーエンジンバージョンで修正され、FTSインデックスはRDSインスタンス用に別のテーブルスペースに作成されます。

FTSインデックスは、MySQL 5.6を実行するRDSインスタンスのシステムテーブルスペースに作成されます。 したがって、RDSインスタンスのメジャーエンジンバージョンをMySQL 5.6からMySQL 5.7にアップグレードする場合、システムテーブルスペースのFTSインデックスを削除し、MySQL 5.6を実行するRDSインスタンスのマイナーエンジンバージョンが20221130以降であることを確認する必要があります。 RDSインスタンスがMySQL 5.6以前を実行している場合、メジャーエンジンバージョンをMySQL 5.6にアップグレードする必要があります。 詳細については、「メジャーエンジンのバージョンのアップグレード」をご参照ください。

  1. テーブル名に基づいて、システムテーブルスペースに作成されたFTSインデックスを削除します。

    ALTER TABLE $table_name DROP INDEX $fts_name;
  2. FTSインデックスを再作成します。

    ALTER TABLE $table_name ADD FULLTEXT INDEX $fts_name;
  3. 次のSQL文を実行して、RDSインスタンス用に作成されたFTSインデックスを照会します。 クエリ結果が返されない場合、FTSインデックスはシステムテーブルスペースに作成されず、FTSインデックスがシステムテーブルスペースに作成されているため、MySQL 5.6からMySQL 5.7へのメジャーエンジンバージョンのアップグレードは失敗しません。

    SELECT NAME FROM information_schema.INNODB_SYS_TABLES WHERE TABLE_ID IN ( SELECT CONV(SUBSTRING_INDEX(SUBSTRING_INDEX(NAME, '_', -4),'_', 1),16,10) FROM INNODB_SYS_TABLES WHERE NAME LIKE '%fts_00000000%' AND SPACE = 0);

check_read_ins_number

読み取り専用インスタンスの数は8を超えることはできません。

ローカルディスクを使用する読み取り専用RDSインスタンスの数が8を超えているかどうかを確認します。

ローカルディスクを使用する読み取り専用RDSインスタンスの数が8を超えています。

ローカルディスクを使用する読み取り専用RDSインスタンスの数を8以下に減らし、アップグレードを実行します。 アップグレードが完了したら、ビジネス要件に基づいて読み取り専用RDSインスタンスを作成します。

check_slave_state

スレーブステータスが不健康であるか、遅延があります。

セカンダリノードのステータスとレイテンシ情報を確認します。

セカンダリノードのステータスが異常であるか、またはレプリケーションレイテンシのためにプライマリノードとセカンダリノードの間でデータが一致しない可能性があります。

ApsaraDB RDSコンソールの [モニタリングとアラート] ページで、[ノード複製スレッドのステータス] と [ノード複製待ち時間 (2番目) のメトリックを確認します。 セカンダリノードが通常どおり実行されている場合は、アップグレードチェックを実行します。

check_account

インスタンスにaliyun_rootアカウントがあります。

アカウントを確認します。

aliyun_rootアカウントは、MySQL 5.6を実行するRDSインスタンスに対して手動で作成されます。

アップグレードチェックを実行する前に、重複するaliyun_rootアカウントを削除または変更します。 MySQL 5.7以降を実行するRDSインスタンスに対して、aliyun_rootアカウントが自動的に作成されます。 MySQL 5.6を実行するRDSインスタンスのaliyun_rootアカウントを作成した場合、メジャーエンジンのバージョンをMySQL 5.6からMySQL 5.7にアップグレードすると、重複するアカウント名が存在することを示すエラーメッセージが表示されます。 この場合、アップグレードチェックを実行する前に、aliyun_rootアカウントを削除または変更する必要があります。 詳細については、「システムアカウント」をご参照ください。

check_sys_schema

インスタンスにはすでにsysデータベースがあります。

RDSインスタンスにsysデータベースが存在するかどうかを確認します。

MySQL 5.7を実行するRDSインスタンス用にsysデータベースが自動的に作成されます。 MySQL 5.6を実行するRDSインスタンス用のsysデータベースを作成した場合、RDSインスタンスのメジャーエンジンバージョンをMySQL 5.6からMySQL 5.7にアップグレードすることはできません。

重複するsysデータベースの名前を変更します。 MySQLはRENAME DATABASEステートメントをサポートしていません。データベースの名前を変更するには、ALTER TABLE RENAMEステートメントを実行する必要があります。

SELECT * FROM information_schema.SCHEMATA WHERE SCHEMA_NAME='sys';

check_table_discard

破棄されたテーブルがあります。

RDSインスタンスに破棄されたテーブルが存在するかどうかを確認します。 破棄されたテーブルは、ALTER TABLE discard TABLESPACEステートメントが実行されるテーブルを指します。

破棄されたテーブルはRDSインスタンスに存在します。

破棄されたテーブルを照会して削除します。

SELECT * FROM information_schema.SCHEMATA WHERE SCHEMA_NAME='sys';

check_table_foreign_key

パーティション分割テーブルには外部キーが含まれます。

RDSインスタンスのパーティションテーブルに外部キーが含まれているかどうかを確認します。

RDSインスタンスのパーティションテーブルに外部キーが含まれているか、他のテーブルの外部キーによって参照されています。

テーブルとパーティションテーブルの外部キー間の競合を解決します。

  1. 外部キーを含むパーティションテーブルを照会します。

    SELECT DISTINCT a.TABLE_SCHEMA, a.TABLE_NAME
    FROM information_schema.TABLE_CONSTRAINTS a, information_schema.PARTITIONS b
    WHERE a.CONSTRAINT_TYPE='FOREIGN KEY'
    AND a.TABLE_SCHEMA = b.TABLE_SCHEMA
    AND a.TABLE_NAME = b.TABLE_NAME
    AND (b.PARTITION_NAME IS NOT NULL OR b.SUBPARTITION_NAME IS NOT NULL);
  2. 他のテーブルの外部キーによって参照されるパーティションテーブルを照会します。

    SELECT DISTINCT a.TABLE_SCHEMA, a.TABLE_NAME, a.REFERENCED_TABLE_SCHEMA, a.REFERENCED_TABLE_NAME
    FROM information_schema.KEY_COLUMN_USAGE a, information_schema.PARTITIONS b
    WHERE a.REFERENCED_TABLE_SCHEMA = b.TABLE_SCHEMA
    AND a.REFERENCED_TABLE_NAME = b.TABLE_NAME
    AND (b.PARTITION_NAME IS NOT NULL OR b.SUBPARTITION_NAME IS NOT NULL);

check_column_length

64以上の列長を有するビューの数は、0よりも大きい。

列の長さが64以上のビューの数を確認します。

列の長さが64以上のビューの数が0を超えています。

列の長さが64以上のビューを照会します。 次に、ビューの列の長さを変更するか、不要なビューを削除します。

SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME IN (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS) AND CHAR_LENGTH(COLUMN_NAME) >= 64;

check_foreign_key_constraint

外部キー拘束長が64より大きいテーブルの数は0より大きい。

外部キー制約の名前が64文字を超えるテーブルの数を確認します。

外部キー制約の名前の長さが64文字を超えるテーブルの数が0より大きい。

関連テーブルを照会します。 次に、テーブルの外部キー制約の名前を変更するか、テーブルを削除します。

SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME IN (SELECT LEFT(SUBSTR(ID,INSTR(ID,'/')+1),INSTR(SUBSTR(ID,INSTR(ID,'/')+1),'_ibfk_')-1) FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN WHERE CHAR_LENGTH(SUBSTR(ID,INSTR(ID,'/')+1))>64);

check_dictionary_table

MySQL 5.7を実行するRDSインスタンスのシステムデータベース内のテーブルは、MySQL 8.0のデータディクショナリで使用されるテーブルと同じ名前にすることはできません。

MySQL 5.7を実行するRDSインスタンスのシステムデータベースのテーブルが、MySQL 8.0のデータディクショナリで使用されるテーブルと同じ名前であるかどうかを確認します。

MySQL 5.7を実行するRDSインスタンスのシステムデータベース内のテーブルは、MySQL 8.0のデータディクショナリで使用されるテーブルと同じ名前になります。

MySQL 5.7を実行するRDSインスタンスのシステムデータベースのテーブルが、MySQL 8.0のデータディクショナリで使用されるテーブルと同じ名前であるかどうかを確認します。 重複する名前のテーブルが存在する場合は、テーブルを削除するか、名前を変更します。

SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE LOWER(
TABLE_SCHEMA) = 'mysql' and LOWER(TABLE_NAME) IN
('catalogs', 'character_sets', 'check_constraints', 'collations',
'column_statistics', 'column_type_elements', 'columns',
'dd_properties', 'events', 'foreign_key_column_usage', 'foreign_keys',
'index_column_usage', 'index_partitions', 'index_stats',
'indexes', 'parameter_type_elements', 'parameters', 'resource_groups', 'routines',
'schemata', 'st_spatial_reference_systems',
'table_partition_values', 'table_partitions', 'table_stats', 'tables',
'tablespace_files', 'tablespaces', 'triggers', 'view_routine_usage',
'view_table_usage');

check_ins_health

インスタンスのマスターノードは使用できません。

RDSインスタンスが利用可能かどうか、またはRDSインスタンスの接続性を確認します。

CPU使用率が100% に達し、ディスク容量が使い果たされます。

ApsaraDB RDSコンソールの [モニタリングとアラート] ページで必要なメトリクスを確認できます。 詳細については、「モニタリングとアラート」をご参照ください。

check_read_ins_exists

読み取り専用のインスタンスは、この操作をサポートしていません。

MySQL 5.7を実行し、クラウドディスクを使用するRDSインスタンスに読み取り専用のRDSインスタンスがあるかどうかを確認します。

MySQL 5.7を実行し、クラウドディスクを使用するRDSインスタンスには、読み取り専用のRDSインスタンスがあります。 読み取り専用のRDSインスタンスがあり、クラウドディスクを使用しているRDSインスタンスでは、アップグレード操作はサポートされていません。

読み取り専用RDSインスタンスをリリースします。 アップグレードが完了したら、ビジネス要件に基づいて読み取り専用RDSインスタンスを作成できます。

check_table_index_type

MySQL 8.0は、空間フィールドでのBTREEインデックスの作成をサポートしていません。

MySQL 5.7を実行するRDSインスタンスに空間データ型のBTREEインデックスが含まれているかどうかを確認してから、RDSインスタンスのメジャーエンジンバージョンをMySQL 5.7からMySQL 8.0にアップグレードします。

MySQL 8.0を実行するRDSインスタンスは、空間データ型でのBTREEインデックスの作成をサポートしていません。

サポートされていないインデックスを削除または変更するには、次のステートメントを実行します。

SELECT DISTINCT s.* FROM INFORMATION_SCHEMA.STATISTICS s
INNER JOIN INFORMATION_SCHEMA.COLUMNS c
ON s.TABLE_SCHEMA = c.TABLE_SCHEMA
AND s.TABLE_NAME = c.TABLE_NAME
AND s.COLUMN_NAME = c.COLUMN_NAME
WHERE s.TABLE_SCHEMA NOT IN ('mysql', 'sys')
AND c.DATA_TYPE IN ('GEOMETRY', 'POINT', 'LINESTRING', 'POLYGON', 'MULTIPOINT', 
'MULTILINESTRING', 'MULTIPOLYGON', 'GEOMETRYCOLLECTION')
AND s.INDEX_TYPE = 'BTREE';