12 GBのMySQL InnoDBデータベースを使用しており、1秒あたり約800のクエリがあります。バックアップを作成するために「mysqldump」を開始してすぐに、自分のWebサイトで「503」を取得し始めます。
サイトのパフォーマンスに影響を与えずにライブデータベースのバックアップを作成するにはどうすればよいですか?
データベースのサイズは小さくないため、次のコマンドを試してください。
mysqldump -u USER -p --single-transaction --quick --lock-tables=false --all-databases (or) DATABASE | gzip > OUTPUT.gz
Percona Toolkitを使用してデータベースをバックアップし、データベースをブロックしないようにする必要があります。
Sudo innobackupex --user=root --password=rootPASSWORD --Host localhost /tmp/
Sudo innobackupex --apply-log --use-memory=2G /tmp/$TIMESTAMP/
/tmp
に十分なディスク容量が必要です。完了したら、ディレクトリ全体を別のサーバーにコピーできます。
xtrabackup_binlog_info
には、レプリケーション情報があります。 (スレーブ複製をセットアップする必要がある場合に役立ちます)
Percona XtraBackupツールを使用する必要があります。巨大なデータセットの魅力のように機能し、MySQLの操作を中断しません。 http://www.percona.com/doc/percona-xtrabackup/2.2/innobackupex/creating_a_backup_ibk.html いくつかのトリックがありますが、それだけの価値があります。
-single-transaction オプションを使用する必要があります
mysqldump -uroot -p --single-transaction databasename > dump.sql
データのポイントインタイムスナップショットを可能にします。 mysqldumpが起動すると、すべてのInnoDBテーブルが時間内に凍結されます。 mysqldumpを2:30 PMに開始して、3:00 PMに終了するとします。ダンプされるすべてのInnoDBテーブルは午後2時30分からになります。他のすべての変更(INSERT、UPDATE、DELETE)は中断されて続行され、ダンプには含まれません。
MyISAMテーブルがINSERT、UPDATE、またはDELETEによって更新されている場合、MyISAMはポイントインタイムバックアップを妨害します。 MyISAMテーブルが読み取り専用の場合、 -single-transaction でも問題ありません。
MySQLレプリケーションを設定している場合は、スレーブに移動してこれを実行できます
mysql -uroot -p... -ANe"STOP SLAVE"
mysqldump -uroot -p --single-transaction databasename > dump.sql
mysql -uroot -p... -ANe"START SLAVE"
マスターは進行中のバックアップを知りません。