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
を参照してください。
