このトピックでは、PolarDB-X 1.0のデータ定義言語 (DDL) ステートメントの実行エラーに関するよくある質問に対する回答を提供します。
テーブルの作成時に実行エラーが発生した場合はどうすればよいですか?
DDL文は分散モードで処理されます。 エラーにより、シャード間でスキーマの不一致が発生する可能性があります。 したがって、手動でエラーをクリーンアップする必要があります。 次の手順を実行します。
- PolarDB-X 1.0は、構文エラーなどの基本的なエラー記述情報を提供します。 エラーメッセージが長すぎる場合、各データベースシャードの実行失敗の原因を表示するためにSHOW WARNINGSコマンドを実行するように求められます。
- SHOW TOPOLOGYコマンドを実行して、物理テーブルのトポロジを表示します。
multi_db_multi_tblからトピックを表示します。 +------+-----------------+-----------------------+ | ID | GROUP_NAME | テーブル名 | +------+-----------------+-----------------------+ | 0 | corona_qatest_0 | multi_db_multi_tbl_00 | | 1 | corona_qatest_0 | multi_db_multi_tbl_01 | | 2 | corona_qatest_0 | multi_db_multi_tbl_02 | | 3 | corona_qatest_1 | multi_db_multi_tbl_03 | | 4 | corona_qatest_1 | multi_db_multi_tbl_04 | | 5 | corona_qatest_1 | multi_db_multi_tbl_05 | | 6 | corona_qatest_2 | multi_db_multi_tbl_06 | | 7 | corona_qatest_2 | multi_db_multi_tbl_07 | | 8 | corona_qatest_2 | multi_db_multi_tbl_08 | | 9 | corona_qatest_3 | multi_db_multi_tbl_09 | | 10 | corona_qatest_3 | multi_db_multi_tbl_10 | | 11 | corona_qatest_3 | multi_db_multi_tbl_11 | +------+-----------------+-----------------------+ セットの12行 (0.21秒)
CHECK TABLE tablename
コマンドを実行して、論理テーブルが作成されているかどうかを確認します。たとえば、次の例は、
multi_db_multi_tbl
の物理テーブルシャードの作成に失敗したシナリオを示しています。mysql> チェックテーブルmulti_db_multi_tbl; +-------------------------------------------------+-------+----------+---------------------------------------------------------------------------+ | テーブル | OP | MSG_TYPE | MSG_TEXT | +-------------------------------------------------+-------+----------+---------------------------------------------------------------------------+ | andor_mysql_qatestです。 multi_db_multi_tbl | チェック | エラー | 表 'corona_qatest_0. multi_db_multi_tbl_02 'が存在しない | +-------------------------------------------------+-------+----------+---------------------------------------------------------------------------+ セットの1列 (0.16秒)
- べき等モードでテーブルを作成または削除して、残りの物理テーブルを作成または削除します。存在しない場合は
テーブルを作成しますtable1 (id int, name varchar(30), プライマリキー (id)) dbpartition by hash(id); ドロップテーブルが存在する場合table1;
インデックスの作成や列の追加に失敗した場合はどうすればよいですか?
インデックスを作成したり、列を追加したりするときの失敗の処理方法は、前述のテーブル作成失敗の手順と同様です。 詳細については、「DDL例外のトラブルシューティング」をご参照ください。