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


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
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
Sign Up Login You must be logged in to post a comment.