ALTER LOGFILE GROUP 構文

ALTER LOGFILE GROUP logfile_group
    ADD UNDOFILE 'file'
    INITIAL_SIZE [=] size
    ENGINE [=] engine

このステートメントは、'file' と名付けられた UNDO ファイルを、既存ログファイルグループ logfile_group に追加します。ALTER LOGFILE GROUP ステートメントはたった一つの ADD UNDOFILE 条項を持ちます。DROP UNDOFILE 条項はサポートされていません。

INITIAL_SIZE パラメータは UNDO ファイルの冒頭のサイズをバイトで設定します。my.cnf で利用されている物と同様、大きさによって一文字の省略形を持つ size に従う事もできます。通常これは M (メガ バイト) か G (ギガ バイト)のどちらかの文字です。

ENGINE パラメータ(要求された)が、このログ ファイル グループによって利用されるストレージエンジンを決め、その名前はengine となります。MySQL 5.1では、engine に受け入れられる値は NDBNDBCLUSTER だけです。

ここに、ログ ファイル グループ lg_3 が既に CREATE LOGFILE GROUP を利用して作成されていると仮定した例があります。(項 「CREATE LOGFILE GROUP 構文」 を参照してください。)

ALTER LOGFILE GROUP lg_3
    ADD UNDOFILE 'undo_10.dat'
    INITIAL_SIZE=32M
    ENGINE=NDB;

ALTER LOGFILE GROUPENGINE = NDB と共に利用された時、UNDO ログ ファイルがそれぞれのクラスタ データ ノード上に作成されます。INFORMATION_SCHEMA.FILES テーブルに問い合わせする事によって UNDO ファイルが作成され、それらの情報を得た事を証明する事ができます。例:

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

(詳しくは 項21.21. 「INFORMATION_SCHEMA FILES テーブル」 を参照してください。)

MySQL 5.1.6 では ALTER LOGFILE GROUP が追加されました。MySQL 5.1 では MySQL クラスタのディスク データ ストレージと一緒の時のみ利用する事ができます。詳しくは 項14.11. 「MySQL Cluster ディスク データ ストレージ」 を参照してください。