Azure Database for MySQL - フレキシブル サーバーでの制限
この記事では、Azure Database for MySQL フレキシブル サーバーでの制限事項について説明します。 MySQL データベース エンジンでの一般的な制限事項も適用されます。 リソースの制限 (コンピューティング、メモリ、ストレージ) の詳細については、コンピューティングとストレージに関する記事を参照してください。
サーバー パラメーター
Azure Database for MySQL フレキシブル サーバーでは、サーバー パラメーターの値のチューニングがサポートされています。 一部のパラメーターの最小値と最大値 (max_connections
、join_buffer_size
、query_cache_size
など) は、サーバーのサイズを計算する前にコンピューティング レベルによって決まります。 これらの制限と、max_connections
や innodb_buffer_pool_size
などのサーバー パラメーターの最小値と最大値の詳細については、サーバー パラメーターに関する記事を参照してください。
生成された非表示の主キー
MySQL バージョン 8.0 以降では、すべての Azure Database for MySQL - フレキシブル サーバー インスタンスに対して、生成された非表示主キー (GIPK) が既定で有効になっています。
MySQL 8.0 以降のサーバーでは、非表示の列 my_row_id
がテーブルに追加され、その列で主キーが追加されます。InnoDB テーブルは明示的な主キーなしで作成されます。 このため、テーブル作成ステートメントで明示的な主キーも指定されていない限り、my_row_id
という名前の列を持つテーブルを作成することはできません。 詳細情報。
既定では、GIPK は SHOW CREATE TABLE、SHOW COLUMNS、SHOW INDEX の出力に表示されます。 また、INFORMATION_SCHEMA
COLUMNS と STATISTICS テーブルにも GIPK が表示されます。
GIPK とそのデータイン レプリケーションを使用するユース ケースの詳細については、「データを Azure Database for MySQL - フレキシブル サーバーにレプリケートする」を参照してください。
GIPK を無効にする手順
GIPK を無効にする場合は、次の 2 つのオプションがあります。
Azure portal または Azure CLI を使用して、sql_generate_invisible_primary_key サーバー パラメーターの値を
OFF
に変更します。Azure Database for MySQL - フレキシブル サーバー インスタンスに接続し、次のコマンドを実行します。
mysql> SET sql_generate_invisible_primary_key=OFF;
lower_case_table_names
Azure Database for MySQL - フレキシブル サーバーでは、MySQL バージョン 5.7 の lower_case_table_names
の既定値は 1
です。 この設定を調整する必要がある場合は、サポート チケットを作成することをお勧めします。 パラメーター値を 2
に変更した後は、それを 1
に戻すことができないことを理解することが重要です。
MySQL バージョン 8.0 の場合、サーバーの初期化後に lower_case_table_names
設定を変更することは禁止されています。 詳細情報。 Azure Database for MySQL - フレキシブル サーバーでは、MySQL バージョン 8.0 の lower_case_table_names
の既定値は 1
です。 このパラメーターを 2
に変更する場合は、MySQL 5.7 サーバーを作成し、変更に関するサポート チケットを作成することをお勧めします。 後で必要に応じて、サーバーをバージョン 8.0 にアップグレードできます。
ストレージ エンジン
MySQL では多くのストレージ エンジンがサポートされています。 次の一覧は、Azure Database for MySQL - フレキシブル サーバーでサポートされている、およびサポートされていないストレージ エンジンを示しています。
サポートされているエンジン
サポートされていないエンジン
特権とデータ操作のサポート
サーバーのパラメーターや設定の多くは、誤ってサーバーのパフォーマンスを低下させたり、MySQL サーバーの ACID (原子性、一貫性、分離性、持続性) プロパティを無効にしたりする可能性があります。 サービスの整合性とサービス レベル アグリーメントを製品レベルで維持するために、Azure Database for MySQL - フレキシブル サーバーは複数のロールを公開しません。
Azure Database for MySQL - フレキシブル サーバーでは、基になるファイル システムへの直接アクセスは許可されません。 一部のデータ操作コマンドはサポートされていません。
サポートされる特権
LOAD DATA INFILE
はサポートされていますが、[LOCAL]
パラメーターを指定して、それを UNC パス (サーバー メッセージ ブロックを介してマウントされた Azure ストレージ) に転送する必要があります。 MySQL クライアント バージョン 8.0 以降を使用している場合は、接続文字列に-–local-infile=1
パラメーターを含める必要があります。MySQL バージョン 8.0 以降では、次の動的特権のみがサポートされています。
サポートされていない特権
データベース管理者 (DBA) のロールは制限されています。 または、新しいサーバーの作成時に割り当てられた管理者ユーザーのロールを使用することもできます。 このロールを使用すると、ほとんどのデータ定義言語 (DDL) およびデータ操作言語 (DML) ステートメントを実行できます。
次の静的特権が制限されています。
移行ツールを使用してバックアップを作成する場合、BACKUP_ADMIN 特権の付与はサポートされていません。
DEFINER
は作成にSUPER
特権が必要であり、制限されています。 バックアップを使用してデータをインポートしている場合は、CREATE DEFINER
コマンドを手動で削除するか、mysqlpump バックアップを実行するときに--skip-definer
コマンドを使用します。mysql システム データベースは読み取り専用で、さまざまなサービスとしてのプラットフォーム (PaaS) 機能をサポートしています。
mysql
システム データベースを変更することはできません。SELECT ... INTO OUTFILE
はサービスではサポートされていません。
機能制限
ゾーン冗長の高可用性
ゾーン冗長高可用性構成は、サーバーの作成時にのみ設定できます。 この構成は、バースト可能コンピューティング レベルではサポートされていません。
ネットワーク
サーバーの作成後に接続方法を変更することはできません。 "プライベート アクセス (仮想ネットワーク統合)" でサーバーを作成した場合、作成後に "パブリック アクセス (許可された IP アドレス)" に変更することはできません。その逆も同様です。
停止/開始操作
サーバーを停止および起動する操作は、読み取りレプリカ構成 (ソースとレプリカの両方) ではサポートされていません。
スケール操作
プロビジョニングされたサーバー ストレージの縮小はサポートされていません。
サーバー バージョンのアップグレード
データベース エンジンのメジャー バージョン間での自動移行はサポートされていません。 メジャー バージョンをアップグレードする場合は、新しいエンジン バージョンで作成したサーバー上でダンプと復元を使用します。
サーバーの復元
ポイントインタイム リストアを使用すると、新しいサーバーは、基になるソース サーバーと同じコンピューティング構成とストレージ構成になります。 新しく復元されたサーバーのコンピューティングは、サーバーを作成した後にスケールダウンできます。
機能比較
Azure Database for MySQL - 単一サーバーで使用できるすべての機能が Azure Database for MySQL - フレキシブル サーバーで使用できるわけではありません。
Azure Database for MySQL - 単一サーバーと Azure Database for MySQL - フレキシブル サーバーの機能比較の完全な一覧については、Azure での適切な MySQL サーバー オプションの選択に関する記事を参照してください。