クローンプラグインは、データをローカルにクローニングするための次の構文をサポートしています。つまり、ローカル MySQL データディレクトリから、MySQL サーバーインスタンスが実行されている同じサーバーまたはノード上の別のディレクトリにデータをクローニングします:
CLONE LOCAL DATA DIRECTORY [=] 'clone_dir';
CLONE
構文を使用するには、クローンプラグインをインストールする必要があります。 インストールの手順については、セクション5.6.7.1「クローンプラグインのインストール」を参照してください。
CLONE LOCAL DATA DIRECTORY
ステートメントを実行するには、BACKUP_ADMIN
権限が必要です。
mysql> GRANT BACKUP_ADMIN ON *.* TO 'clone_user';
ここで、
はクローニング操作を実行する MySQL ユーザーです。 クローニング操作の実行を選択するユーザーは、*.* に対する clone_user
BACKUP_ADMIN
権限を持つ任意の MySQL ユーザーです。
次の例は、ローカルでのデータのクローニングを示しています:
mysql> CLONE LOCAL DATA DIRECTORY = '/path/to/clone_dir';
ここで、/path/to/clone_dir
は、データのクローニング先のローカルディレクトリのフルパスです。 絶対パスが必要であり、指定したディレクトリ (「clone_dir
」) が存在していてはいけませんが、指定したパスは存在するパスである必要があります。 MySQL サーバーには、ディレクトリの作成に必要な書込みアクセス権が必要です。
ローカルクローニング操作では、データディレクトリの外部にあるユーザー作成のテーブルまたはテーブルスペースのクローニングはサポートされていません。 このようなテーブルまたはテーブルスペースをクローニングしようとすると、次のエラーが発生: ERROR 1086 (HY000): ファイル'/path/to/tablespace_name.ibd
'はすでに存在。 ソーステーブルスペースと同じパスを持つテーブルスペースをクローニングすると競合が発生するため、禁止されます。
他のすべてのユーザー作成の InnoDB
テーブルおよびテーブルスペース、InnoDB
システムテーブルスペース、redo ログおよび undo テーブルスペースは、指定したディレクトリにクローニングされます。
必要に応じて、クローニング操作の完了後にクローンディレクトリで MySQL サーバーを起動できます。
shell> mysqld_safe --datadir=clone_dir
ここで、clone_dir
はデータがクローニングされたディレクトリです。
クローニング操作のステータスおよび進行状況の監視の詳細は、セクション5.6.7.9「クローニング操作の監視」 を参照してください。