Documentation Home
MySQL 8.0 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 36.1Mb
PDF (A4) - 36.1Mb
HTML Download (TGZ) - 10.0Mb
HTML Download (Zip) - 10.1Mb


MySQL 8.0 リファレンスマニュアル  /  ...  /  CREATE LOGFILE GROUP ステートメント

このページは機械翻訳したものです。

13.1.16 CREATE LOGFILE GROUP ステートメント

CREATE LOGFILE GROUP logfile_group
    ADD UNDOFILE 'undo_file'
    [INITIAL_SIZE [=] initial_size]
    [UNDO_BUFFER_SIZE [=] undo_buffer_size]
    [REDO_BUFFER_SIZE [=] redo_buffer_size]
    [NODEGROUP [=] nodegroup_id]
    [WAIT]
    [COMMENT [=] 'string']
    ENGINE [=] engine_name

このステートメントは、'undo_file' という名前の 1 つの UNDO ファイルを持つ logfile_group という名前の新しいログファイルグループを作成します。 CREATE LOGFILE GROUP ステートメントには、ADD UNDOFILE 句が 1 つだけ存在します。 ログファイルグループの命名を管理するルールについては、セクション9.2「スキーマオブジェクト名」を参照してください。

注記

NDB Cluster ディスクデータオブジェクトはすべて同じ名前空間を共有します。 つまり、各ディスクデータオブジェクトは (単に、特定の型の各ディスクデータオブジェクトというだけでなく)、一意の名前が付けられている必要があります。 たとえば、テーブルスペースとログファイルグループを同じ名前にしたり、テーブルスペースとデータファイルを同じ名前にしたりすることはできません。

NDB Cluster インスタンスごとに一度に 1 つのログファイルグループしか存在できません。

オプションの INITIAL_SIZE パラメータは、UNDO ファイルの初期サイズを設定します。指定されていない場合は、デフォルトで 128M (128M バイト) になります。 オプションの UNDO_BUFFER_SIZE パラメータは、ログファイルグループの UNDO バッファーで使用されるサイズを設定します。UNDO_BUFFER_SIZE のデフォルト値は 8M (8M バイト) です。この値が、使用可能なシステムメモリーの量を超えることはできません。 これらのパラメータは、どちらもバイト単位で指定されます。 オプションで、これらのいずれかまたは両方の後に、my.cnf で使用されるものと同様に、大きさの順に 1 文字の略称を付けることができます。 一般に、これは M (M バイト) または G (G バイト) のどちらかの文字です。

UNDO_BUFFER_SIZE に使用されるメモリーは、サイズが SharedGlobalMemory データノード構成パラメータの値によって決定されるグローバルプールから取得されます。 これには、InitialLogFileGroup データノード構成パラメータの設定により、このオプションに暗黙的に指定されるデフォルト値もすべて含まれます。

UNDO_BUFFER_SIZE に許可される最大値は 629145600 (600M バイト) です。

32 ビットシステム上では、INITIAL_SIZE のサポートされる最大値は 4294967296 (4G バイト) です。 (Bug #29186)

INITIAL_SIZE の許可される最小値は 1048576 (1M バイト) です。

ENGINE オプションは、このログファイルグループによって使用されるストレージエンジンを決定します。ここで、engine_name はそのストレージエンジンの名前です。 MySQL 8.0 では、これは NDB (または NDBCLUSTER) である必要があります。 ENGINE が設定されていない場合、MySQL は、default_storage_engine サーバーシステム変数 (以前の storage_engine) で指定されたエンジンを使用しようとします。 いずれにしても、エンジンが NDB または NDBCLUSTER として指定されていない場合、CREATE LOGFILE GROUP ステートメントは成功したように見えますが、次に示すように、実際にはログファイルグループの作成に失敗します。

mysql> CREATE LOGFILE GROUP lg1
    ->     ADD UNDOFILE 'undo.dat' INITIAL_SIZE = 10M;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> SHOW WARNINGS;
+-------+------+------------------------------------------------------------------------------------------------+
| Level | Code | Message                                                                                        |
+-------+------+------------------------------------------------------------------------------------------------+
| Error | 1478 | Table storage engine 'InnoDB' does not support the create option 'TABLESPACE or LOGFILE GROUP' |
+-------+------+------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> DROP LOGFILE GROUP lg1 ENGINE = NDB;
ERROR 1529 (HY000): Failed to drop LOGFILE GROUP

mysql> CREATE LOGFILE GROUP lg1
    ->     ADD UNDOFILE 'undo.dat' INITIAL_SIZE = 10M
    ->     ENGINE = NDB;
Query OK, 0 rows affected (2.97 sec)

NDB 以外のストレージエンジンに名前が付けられているが、成功したように見える場合、CREATE LOGFILE GROUP ステートメントは実際にはエラーを返しません。これは NDB Cluster の将来のリリースで対処することを希望している既知の問題です。

REDO_BUFFER_SIZENODEGROUPWAIT、および COMMENT は解析されますが、無視されるため、MySQL 8.0 では何の効果もありません。 これらのオプションは、将来の拡張のために用意されています。

ENGINE [=] NDB とともに使用された場合は、ログファイルグループとそれに関連付けられた UNDO ログファイルが各クラスタデータノード上に作成されます。 INFORMATION_SCHEMA.FILES テーブルをクエリーすることによって、UNDO ファイルが作成されたことを確認したり、それらに関する情報を取得したりできます。 例:

mysql> SELECT LOGFILE_GROUP_NAME, LOGFILE_GROUP_NUMBER, EXTRA
    -> FROM INFORMATION_SCHEMA.FILES
    -> WHERE FILE_NAME = 'undo_10.dat';
+--------------------+----------------------+----------------+
| LOGFILE_GROUP_NAME | LOGFILE_GROUP_NUMBER | EXTRA          |
+--------------------+----------------------+----------------+
| lg_3               |                   11 | CLUSTER_NODE=3 |
| lg_3               |                   11 | CLUSTER_NODE=4 |
+--------------------+----------------------+----------------+
2 rows in set (0.06 sec)

CREATE LOGFILE GROUP は NDB Cluster のディスクデータストレージでのみ役立ちます。 セクション23.5.10「NDB Cluster ディスクデータテーブル」を参照してください。