web-dev-qa-db-ja.com

ライブInnoDB MySQLデータベースのローカルコピーを作成する最速の方法は?

_live Ubuntu 12.04 server_にMySQL database (InnoDB)があり、非常に大きくなっています(25GB以上)。

毎月かそこらで、ローカルで作業するためにこのデータベースを開発マシンにコピーする必要があります。

以前は、_MySQL Workbench_を使用してデータベースをエクスポートし、_.sql_ファイルを開発マシンにダウンロードして、再度_MySQL Workbench_を使用してインポートしました。問題は、データベースが非常に大きいため、週末に完了するほど速く復元できないことです。したがって、月曜日の朝には、インポートするデータベースが半分必要です。

この状況で他の人は何をしますか?

これまでに考えられる唯一の解決策は、未使用のマシンに復元してから、すべての開発マシン(そのうち5つ)にデータをcopyingすることです。これはうまくいくでしょうか?

3
BT643

Xtrabackup を使用して、ライブMySQLからバックアップを取得できます。

PerconaはUbuntuにdebリポジトリを提供します。 Ubuntu 12.04のリポジトリをインストールするには、 instructions に従ってください:

  • キーをインストールします。

    # apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A
    
  • ソースファイルを追加します。

    # cat /etc/apt/sources.list.d/percona.list 
    deb http://repo.percona.com/apt precise main
    deb-src http://repo.percona.com/apt precise main
    
  • ローカルキャッシュを更新します。

    # apt-get update
    
  • そして、xtrabackupをインストールします。

    # apt-get install xtrabackup
    

データベースのコピーを取得するには、次のコマンドを実行します。

    # innobackupex .

「2010-03-13_02-42-44」のようなディレクトリが作成されます。そのディレクトリを開発ボックスにコピーし、REDOログを適用します。

    # innobackupex --apply-log /data/backups/2010-03-13_02-42-44/ 

これで、ディレクトリを使用する準備が整いました。それをMySQL datadirにコピーして戻し、所有権を修正します。

    # cp /data/backups/2010-03-13_02-42-44/ /var/lib/mysql
    # chown -R mysql:mysql /var/lib/mysql

次に、MySQLを起動します。

詳細は http://www.percona.com/doc/percona-xtrabackup/2.1/how-tos.html で確認できます

6
akuzminsky