データベースの正確なコピーをサーバーにコピーする必要がありますVMサーバーがダウンした場合に備えて、VM dbs)。mysqldumpが移行に最適な代替手段であることはわかっていますが、別の代替手段を用意したいので、 [〜#〜] robocopy [〜#〜] を使用してコピーし、 data
フォルダ。これは私のバッチです
@echo off
set exclude=*.pid *.err *.cnf *logfile* *log_file*
set Origin="mysql_data_path\data"
set DEST="mysql_data_path_mirror\data"
NET STOP mysqld
robocopy "%Origin%" "%DEST%" /E /COPYALL /PURGE /MIR /IS /IT /TEE /FFT /ETA /R:10 /W:5 /ZB /V /XF %exclude%
問題は、どのファイルを除外/追加/コピーする必要があるかわからないことです。これは、逆のプロセスを実行するときの操作には影響しません。
たとえば、私はいくつかの除外(*.pid *.err *.cnf *logfile* *log_file*
)ですが、正しいかどうかはわかりません。この点で手助けをお願いします。また、data
フォルダー以外に、VMで機能するためにコピーする必要があるものはありますか?
ありがとう
ib_logfile*
ファイルを除外することはできません。これらのファイルが存在しない場合、innodb_fast_shutdown=0
を使用して実行している場合を除いて、データが破損する可能性があります。これにより、サービスの停止に非常に長い時間がかかる可能性があります。
省略しても安全なのは、リレーログとバイナリログだけです。それらの名前が設定ファイルでどのように設定されているかを確認する必要があります。
mysqldump
は、あるレベルでDBを再現するSQLスクリプトを作成する論理レベルのツールです。 Percona XtraBackupなど、物理レベルでコピーを作成するツールがいくつかあります。 XtraBackupでは、いわゆる増分バックアップを使用できるため、最初の完全バックアップを1回実行し、最後のバックアップ以降の差分のみを保存できます。
マニュアルを参照して、ニーズに適した方法を決定する必要があります。
rsync
またはLVMはこれを高速化します。)その間、my.cnfファイルのコピーを作成します。