Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.1Mb
EPUB - 7.5Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


13.1.14 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 [=] comment_text]
    ENGINE [=] engine_name

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

注記

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

MySQL Cluster NDB 7.3 以降では、クラスタあたり、常に 1 つのログファイルグループしか作成できません。(Bug #16386 を参照してください)

オプションの INITIAL_SIZE パラメータは、UNDO ファイルの初期サイズを設定します。指定されていない場合は、デフォルトで 128M (128M バイト) になります。オプションの UNDO_BUFFER_SIZE パラメータは、ログファイルグループの UNDO バッファーで使用されるサイズを設定します。UNDO_BUFFER_SIZE のデフォルト値は 8M (8M バイト) です。この値が、使用可能なシステムメモリーの量を超えることはできません。これらのパラメータは、どちらもバイト単位で指定されます。MySQL Cluster NDB 7.3.2 以降では、これらの両方またはどちらか一方のあとにオプションで、my.cnf で使用されるのと同様の、桁を示す 1 文字の略語を指定できます。一般に、これは M (M バイト) または G (G バイト) のどちらかの文字です。MySQL Cluster NDB 7.3.2 より前は、これらのオプションの値は数字でしか指定できませんでした。(Bug #13116514、Bug #16104705、Bug #62858)

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

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

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

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

ENGINE オプションは、このログファイルグループによって使用されるストレージエンジンを決定します。ここで、engine_name はそのストレージエンジンの名前です。MySQL 5.6 では、これは 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 ステートメントが実際にはエラーを返さず、成功したように見えるという事実は、MySQL Cluster の将来のリリースで対処したいと考えている既知の問題です。

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

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 は、MySQL Cluster のディスクデータストレージでのみ有効です。セクション18.5.12「MySQL Cluster ディスクデータテーブル」を参照してください。


User Comments
Sign Up Login You must be logged in to post a comment.