MySQL 8.0 リファレンスマニュアル


5.6.7.2 ローカルでのデータのクローニング

クローンプラグインは、データをローカルにクローニングするための次の構文をサポートしています。つまり、ローカル 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';

ここで、clone_user はクローニング操作を実行する MySQL ユーザーです。 クローニング操作の実行を選択するユーザーは、*.* に対する 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「クローニング操作の監視」 を参照してください。


関連キーワード:  サーバー, データ, 変数, テーブル, インストール, ディレクトリ, 操作, スペース, ユーザー, Server