データベースサーバーでのストレージオーバーヘッドを制限するために、バックアップデータをローカルで格納せずに別のサーバーに転送できます。ストリーミングに関連した MySQL Enterprise Backup の主要な機能が、単一イメージバックアップです。単一ファイルバックアップを標準出力に送信するには、--backup-image
オプションを使用せず、mysqlbackup のオプション backup-to-image
で指定します。(データが stdout に送信されていることを明らかにするために、--backup-image=-
も指定できます。)データをストリーミングするには、標準出力から入力を取得してリモートシステムで同等のファイルを作成できる、パイプや ssh/scp
などのオペレーティングシステム機能と組み合わせて、単一ファイルバックアップを使用します。単一ファイルバックアップをリモートシステムに直接格納するか、image-to-backup-dir
オプションを付けて mysqlbackup コマンドを相手先で呼び出して、通常のバックアップのディレクトリ構造を再生できます。
例 3.14 リモートホストへの単一ファイルバックアップ
次のコマンドは、バックアップ出力をリモートホストにストリーミングし、出力はここで直接テープデバイスに保存できます。--backup-dir=/tmp
は、最終の出力ファイルではなく、一時的な作業ファイルを格納するためのディレクトリを指定します。
mysqlbackup --backup-image=- --backup-dir=/tmp backup-to-image | \
ssh user@host command arg1 arg2...
単純にするため、すべての接続とほかの必要なオプションは、デフォルトの構成ファイルから取得される前提としています。リモートシステムで操作を実行できるように、dd や tar など、通常のアーカイブ手順の一環として使用するコマンドやデバイスなどの組み合わせを置き換えます。
例 3.15 リモートの MySQL Server への単一ファイルバックアップ
次のコマンドは、単一ファイルバックアップをリモートの MySQL Server にストリーミングします。
mysqlbackup --backup-dir=backup --backup-image=- --compress backup-to-image | \
ssh <user name>@<remote host name> 'mysqlbackup --backup-dir=backup_tmp --datadir=/data \
--innodb_log_group_home_dir=. \
--innodb_log_files_in_group=<innodb_log_files_in_group_of_backedup_server> \
--innodb_log_file_size=<innodb_log_file_size_of_backedup_server> \
--innodb_data_file_path=<innodb_data_file_path_of_backedup_server> \
--uncompress --backup-image=- copy-back-and-apply-log'