ホームページ  >  記事  >  データベース  >  xtrabackup MySQL データベースのバックアップと復元

xtrabackup MySQL データベースのバックアップと復元

巴扎黑
巴扎黑オリジナル
2017-06-23 11:07:591304ブラウズ

Mysqldump バックアップには独自の特性 (テーブルをロックする、基本的に挿入スクリプトまたはテキストをバックアップする、差分バックアップをサポートしない) があるため、高いリアルタイム パフォーマンスを必要とする状況には適していません

Xtrabackup で解決できます。 mysqldump の上記の問題 いくつかの問題は実稼働環境にさらに適用されます。
この記事では、Xtrabackup の MySQL データベースのバックアップおよび復元操作を簡単にテストします。

最初に機能を展開してから詳細に進むという原則に従って、詳細には触れずに大まかにバックアップと復元を実装しました。

インターネット上には、環境が異なるため、xtrabackup 設定ファイルを設定する必要がある記事がたくさんあります

しかし、xtrabackup バージョン 2.4.7 でテストした場合、設定ファイルは必要ありませんでした。バージョンごとに詳細が異なる場合がありますので、参考資料を参照する際はバージョンや環境に注意してください。

innobackupex バックアップ

xtrabackup と MySQL のバージョンは次のとおりです

フルバックアップ

innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --socket=/var/lib/mysql/mysql.sock /data/backup

手順:
1.--defaults-file=/etc/my.cnf ファイルは先頭にある必要があります
2.--user=root --password=root、--use=*** および --password= * ** 間にスペースが必要です

スクリーンショットのように、完全バックアップは完了です

スクリーンショットのように、完全バックアップは日付(年、月、日)で名前を付けたファイルを作成します。 、時、分、秒、yyyy-MM-dd_hh-mm-ss)
完全バックアップによって生成されるメモリは、実際には、バックアップされたデータベースのデータ ファイルのコピーと、バックアップ中に生成されたいくつかの情報です
たとえば、 xtrabackup_checkpoints は、現在の完全バックアップの情報です。この情報は差分バックアップにとって非常に重要です。

差分バックアップ

差分バックアップが差分を実現できる理由は、完全バックアップをベースとして、完全バックアップ後に差分バックアップが実行されるためです。
完全バックアップ後のバックアップ先の決定方法は、完全バックアップ後の xtrabackup_checkpoints ファイルによって異なります。
innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --socket=/var/lib/mysql/mysql.sock --incremental /data/backup --incremental-basedir =/data/backup/2017-06-22_13-40-29
スクリーンショットのように、差分バックアップが完了しました

完全バックアップに指定したファイルが間違っているか、完全バックアップがされていない場合差分バックアップ ファイル中に指定した場合、xtrabackup_checkpoints ファイルが見つからないというメッセージが xtrabackup から表示されることがわかります。

innobackupexrestore

準備フェーズ

1.完全バックアップ、つまり完全バックアップアプリケーション(--apply-log)のログを復元します
innobackupex --defaults-file=/etc / my .cnf --apply-log --redo-only --socket=/var/lib/mysql/mysql.sock /data/backup/2017-06-22_13-40-29
2、それぞれ増分バックアップを実行します。完全バックアップに適用
innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only --socket=/var/lib/mysql/mysql.sock --incremental /data/backup /2017-06-22_13-40-29 --incremental-basedir=/data/backup/2017-06-22_13-41-48

複数の差分バックアップがある場合は、それぞれ差分バックアップをフルバックアップに適用します。

復元フェーズ

1. すべての差分バックアップを完全バックアップに適用した後、復元された差分バックアップを元のデータ ディレクトリにコピーします
デフォルトでは、データ パスにファイルがある場合、コピーは失敗するため、クリアされるデータ ファイル パス下のファイル。
innobackupex --copy-back /data/backup/2017-06-22_13-40-29

log over

エラーログ(起動時のエラーメッセージ)を見てください。mysql5のデフォルトのエラーログです。 .7yum のインストールは /var/log/mysqld.log にあり、デフォルトではスクロールしません。つまり、すべてのエラー メッセージがこのファイルの中央に記録されます。

データ ファイルが復元されたら、データ ファイル パスを読み取り、読み取りおよび書き込み権限を付与する必要があります

ここでは、データ ファイル パス 777、chmod -R 777 /var/lib/mysql を直接承認します

次に、mysql を起動しますサービスが正常に起動できるようになります。


xtrabackupexはまだ始まったばかりなので、たくさんの疑問が残っていますが、時間があるときに一つずつ検証していきます。

1. 単一のデータベース(テーブル)のバックアップとリストアをどのように実現するか 結局、実際の環境では、データベースごとにバックアップの頻度や方法(バックアップ計画)が異なります。

2. 完全 + 差分バックアップを使用し、それをバイナリ ログと組み合わせてポイントインタイム リストアを実行するにはどうすればよいですか?

3. バックアップファイルの有効性を確認するにはどうすればよいですか?

以上がxtrabackup MySQL データベースのバックアップと復元の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。