web-dev-qa-db-ja.com

mysql dbsを除外/追加/コピーするファイル(mysqldumpなし)

データベースの正確なコピーをサーバーにコピーする必要があります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で機能するためにコピーする必要があるものはありますか?

ありがとう

3
ajcg

ib_logfile*ファイルを除外することはできません。これらのファイルが存在しない場合、innodb_fast_shutdown=0を使用して実行している場合を除いて、データが破損する可能性があります。これにより、サービスの停止に非常に長い時間がかかる可能性があります。

省略しても安全なのは、リレーログとバイナリログだけです。それらの名前が設定ファイルでどのように設定されているかを確認する必要があります。

3
Gordan Bobic

mysqldumpは、あるレベルでDBを再現するSQLスクリプトを作成する論理レベルのツールです。 Percona XtraBackupなど、物理レベルでコピーを作成するツールがいくつかあります。 XtraBackupでは、いわゆる増分バックアップを使用できるため、最初の完全バックアップを1回実行し、最後のバックアップ以降の差分のみを保存できます。

マニュアルを参照して、ニーズに適した方法を決定する必要があります。

2
Kondybas
  1. Mysqlを停止します。
  2. ツリー全体をコピーします。 (rsyncまたはLVMはこれを高速化します。)
  3. Mysqlを起動します。

その間、my.cnfファイルのコピーを作成します。

1
Rick James