ALTER TABLESPACEtablespace_name
{ADD|DROP} DATAFILE 'file_name
' [INITIAL_SIZE [=]size
] [WAIT] ENGINE [=]engine_name
このステートメントは新しいデータファイルを追加するときかテーブル領域からデータファイルをドロップするときに利用することができます。
ADD DATAFILE
バリアントを使用すると、INITIAL_SIZE
節を使用して初期サイズを指定できます。ここで、size
はバイト単位で測定されます。デフォルト値は
128M
(128M バイト)
です。my.cnf
で使用される方法と同様に、任意でこの整数値のあとに桁を示す
1
文字の省略形を指定することもできます。通常これは
M
(メガバイト) か
G
(ギガバイト)
のどちらかの文字です。
すべての MySQL Cluster ディスクデータオブジェクトが同じ名前空間を共有します。つまり、各ディスクデータオブジェクトは (単に、特定の型の各ディスクデータオブジェクトというだけでなく) 一意に名前が付けられている必要があります。たとえば、テーブル領域とデータファイルを同じ名前にしたり、UNDO ログファイルとデータファイルを同じ名前にしたりすることはできません。
MySQL Cluster NDB 6.2.17、6.3.23、および 6.4.3 より前のバージョンでは、データファイルのパスとファイル名を 128 文字より長くすることができませんでした。(Bug#31770)
32
ビットシステムでは、INITIAL_SIZE
のサポートされる最大値は
4G
です。(Bug#29186)
一度データファイルが作成されると、そのサイズは変更できませんが、追加の
ALTER TABLESPACE ... ADD
DATAFILE
ステートメントを利用することによりテーブル領域により多くのデータファイルを追加することができます。
DROP DATAFILE
を
ALTER TABLESPACE
とともに使用すると、テーブル領域からデータファイル
'file_name
'
が削除されます。このファイルは、CREATE
TABLESPACE
または ALTER
TABLESPACE
を使用して、すでにテーブル領域に追加されている必要があります。そうでない場合は、エラーが発生します。
ALTER TABLESPACE ... ADD
DATAFILE
と ALTER TABLESPACE
... DROP DATAFILE
の 2
つは、テーブル領域に利用されるストレージエンジンを指定する
ENGINE
節を必要とします。MySQL 5.1
では、engine_name
に指定できる値は
NDB
と
NDBCLUSTER
だけです。
WAIT
は解析されますが、それ以外では無視されます。そのため、MySQL
5.1
には影響しません。これは将来の拡張のために用意されています。
ALTER TABLESPACE ... ADD
DATAFILE
が ENGINE =
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)
The INFORMATION_SCHEMA FILES
Table を参照してください。
ALTER TABLESPACE
は、MySQL
5.1.6 で追加されました。MySQL 5.1 では、MySQL
Cluster
のディスクデータストレージで使用する場合のみ有効です。MySQL Cluster Disk Data Tables
を参照してください。