ホームページ  >  記事  >  データベース  >  xtrabackup のバックアップ原理の詳細な紹介

xtrabackup のバックアップ原理の詳細な紹介

怪我咯
怪我咯オリジナル
2017-06-23 13:38:061715ブラウズ

Percona XtraBackup仕組み

Percona XtraBackup は、InnoDB に基づくクラッシュ回復機能です。 InnoDB データ ファイルをコピーすると、内部的に一貫性のないデータが生成されますが、ファイルに対してクラッシュ リカバリが実行され、一貫性のある使用可能なデータベースが再び作成されます。

これは、InnoDB がトランザクション ログとも呼ばれる REDO ログを維持しているためです。これには、InnoDB データに対するすべての変更の記録が含まれます。 InnoDB が起動すると、データ ファイルとトランザクション ログをチェックし、2 つのステップを実行します。コミットされたトランザクション ログ エントリをデータ ファイルに適用し、データを変更したがコミットしなかったトランザクションに対して元に戻す操作を実行します。

Percona XtraBackup は、ログ シーケンス番号 (LSN) を記録することから始まり、データ ファイルをコピーします。これは完了するまでに短い時間がかかるため、ファイルが変更されている場合は、さまざまな時点でのデータベースの状態が反映されます。同時に、Percona XtraBackup はトランザクション ログ ファイルを監視し、そこから変更をコピーするバックグラウンド プロセスを実行します。 Percona XtraBackup は、トランザクション ログが循環方式で書き込まれ、一定期間後に再利用できるため、これを常に実行する必要があります。 Percona XtraBackup データ ファイルの実行開始以降のすべての変更にはトランザクション ログが必要です。

Percona XtraBackup は、軽量の代替手段としてバックアップ ロックを使用します。この機能は、Percona Server 5.6 以降で利用できます。 Percona XtraBackupこれを使用して、InnoDB 以外のデータを自動的にコピーし、 InnoDB テーブルを変更する DML クエリのブロックを回避します。サーバーがバックアップ ロックをサポートしている場合、xtrabackup はまず InnoDB データをコピーし、実行して MyISAM テーブルと .frm ファイルをコピーします。完了すると、ファイルのバックアップが開始されます。 .frm、.MRG、.MYD、.MYI、.TRG、FLUSH TABLES WITH READ LOCKLOCK TABLES FOR BACKUP.par をバックアップします

注意

ロックは MyISAM とその他の非 InnoDB テーブルのみ、Percona のみで行われますXtraBackup 完了後にすべての InnoDB/XtraDB データとログをバックアップします。 Percona XtraBackup は、軽量の代替手段としてバックアップ ロックを使用します。この機能は、Percona Server 5.6 以降で利用できます。 Percona XtraBackupこれを使用して、InnoDB 以外のデータを自動的にコピーし、 InnoDB テーブルを変更する DML クエリのブロックを回避します。読み取りロックを使用してテーブルをフラッシュします

その後、xtrabackup はバイナリ ログの場所やレポートを変更する可能性のあるすべての操作をブロックします。その後、xtrabackup は REDO ログ ファイルのコピーとバイナリ ログ座標の取得を完了します。これが完了すると、xtrabackup はバイナリ ログとテーブルのロックを解除します。 BACKUPExec_Master_Log_PosExec_Gtid_SetSHOW MASTER/SLAVE STATUS

最後に、バイナリ ログの位置が STDERR に出力され、すべてが OK であれば xtrabackup は 0 を返して終了します。

STDERR の xtrabackup はどのファイルにも書き込まれないことに注意してください。たとえば、ファイルにリダイレクトする必要があります。 xtrabackup OPTIONS2>backupout.log

また、バックアップされたディレクトリに次のファイルが作成されます。

準備フェーズでは、Percona XtraBackupはレプリケートされたトランザクション ログ ファイルを使用して、レプリケートされたデータ ファイルのクラッシュ リカバリを実行します。これが完了すると、データベースを復元して使用できるようになります。

バックアップされた MyISAM テーブルと InnoDB テーブルは、準備 (回復) プロセスの後、 InnoDB のデータがロールバックされるのではなく、バックアップが完了した時点までロールフォワードされるため、最終的に相互に一貫性が保たれます。それが始まった時点まで。この時点は取得された位置と一致するため、MyISAMデータと準備されたInnoDBデータは同期されています。ロック付きテーブルのフラッシュ

つまり、これらのツールを使用すると、データ ファイルのコピー、ログ ファイルのコピー、およびデータのさまざまな組み合わせへのログの適用により、ストリーミング バックアップや増分バックアップなどの操作を実行できます。

以上がxtrabackup のバックアップ原理の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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