13.1.8 ALTER TABLESPACE 構文

ALTER TABLESPACE tablespace_name
    {ADD|DROP} DATAFILE 'file_name'
    [INITIAL_SIZE [=] size]
    [WAIT]
    ENGINE [=] engine_name

このステートメントを使用すると、テーブルスペースへの新しいデータファイルの追加、またはテーブルスペースからのデータファイルの削除を実行できます。

ADD DATAFILE バリアントでは、INITIAL_SIZE 句を使用して初期サイズを指定できます。ここで、size はバイト単位で測定されます。デフォルト値は 134217728 (128M バイト) です。MySQL Cluster NDB 7.3.2 より前は、この値は数字で指定する必要がありました。(Bug #13116514、Bug #16104705、Bug #62858)。MySQL Cluster NDB 7.3.2 以降では、size のあとにオプションで、my.cnf で使用されるのと同様の、オーダーを示す 1 文字の略語を指定できます。一般に、これは M (M バイト) または G (G バイト) のどちらかの文字です。

注記

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

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

INITIAL_SIZE は、CREATE TABLESPACE と同様に明示的に丸められます。

データファイルが作成されたあと、そのサイズを変更することはできません。ただし、追加の ALTER TABLESPACE ... ADD DATAFILE ステートメントを使用して、テーブルスペースにさらに多くのデータファイルを追加できます。

DROP DATAFILEALTER TABLESPACE とともに使用すると、テーブルスペースからデータファイル 'file_name' が削除されます。いずれかのテーブルが使用しているテーブルスペースからはデータファイルを削除できません。つまり、そのデータファイルが空である (エクステントが使用されていない) ことが必要です。セクション18.5.12.1「MySQL Cluster ディスクデータオブジェクト」を参照してください。さらに、削除されるデータファイルはすべて、CREATE TABLESPACE または ALTER TABLESPACE で以前にそのテーブルスペースに追加されている必要があります。

ALTER TABLESPACE ... ADD DATAFILEALTER TABLESPACE ... DROP DATAFILE のどちらにも、そのテーブルスペースによって使用されるストレージエンジンを指定する ENGINE 句が必要です。現在、engine_name として受け入れられる値は NDBNDBCLUSTER だけです。

WAIT は解析されますが、それ以外は無視されるため、MySQL 5.6 では何の効果もありません。これは将来の拡張のために用意されています。

ALTER TABLESPACE ... ADD DATAFILEENGINE = NDB とともに使用された場合は、データファイルが各クラスタデータノード上に作成されます。INFORMATION_SCHEMA.FILES テーブルをクエリーすることによって、データファイルが作成されたことを確認したり、それらに関する情報を取得したりできます。たとえば、次のクエリーは、newts という名前のテーブルスペースに属するすべてのデータファイルを表示します。

mysql> SELECT LOGFILE_GROUP_NAME, FILE_NAME, EXTRA
    -> FROM INFORMATION_SCHEMA.FILES
    -> WHERE TABLESPACE_NAME = 'newts' AND FILE_TYPE = 'DATAFILE';
+--------------------+--------------+----------------+
| LOGFILE_GROUP_NAME | FILE_NAME    | EXTRA          |
+--------------------+--------------+----------------+
| lg_3               | newdata.dat  | CLUSTER_NODE=3 |
| lg_3               | newdata.dat  | CLUSTER_NODE=4 |
| lg_3               | newdata2.dat | CLUSTER_NODE=3 |
| lg_3               | newdata2.dat | CLUSTER_NODE=4 |
+--------------------+--------------+----------------+
2 rows in set (0.03 sec)

セクション21.30.1「INFORMATION_SCHEMA FILES テーブル」を参照してください。

ALTER TABLESPACE は、MySQL Cluster のディスクデータストレージでのみ有効です。セクション18.5.12「MySQL Cluster ディスクデータテーブル」を参照してください。


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