01 背景Xtrabackup は Percona が開発したオープンソースの MySQL ホットバックアップツールです。以前の仕事で頻繁に使用していましたが、まだ使用段階にとどまっていました。このツールの詳細についてはあまり調べていませんでした。今日はプロセスを注意深く見て、何かを得ました。書き留めて記録しました。間違っている点があれば、ご指摘ください。 Xtrabackup ツールは、InnoDB、XtraDB、および MyISAM テーブルをバックアップできます。Percona Server のすべてのバージョンをサポートし、MySQL および MariaDB と互換性があります。また、ストリーミング バックアップ、圧縮、暗号化、増分バックアップなどの高度な機能もサポートしています。 利点は次のとおりです。 1. InnoDB ホット バックアップを実行するためにデータベースを停止する必要はありません。50G を超えるデータをバックアップする場合は、このツールが推奨されます。 2. MySQL の増分バックアップをサポートし、ストリーミング経由で他のサーバーに転送します。 3. MySQL をバックアップしてもサーバーの負荷は増加しません。 02 はじめにこのツールには、innobackupex と xtrabackup という 2 つの主要なアプリケーションがあります。前者は Perl スクリプトで、後者は C++ バリアントのバイナリ プログラムです。後者は Innodb ストレージ エンジン以外のテーブルをバックアップできないことに注意してください。 Innobackup は xtrabackup のラッパーであり、Innodb 以外のテーブルをバックアップできます。 前述の通り、皆さんご存知かと思いますが、MySQL などのシステム データベース内のテーブルの一部のストレージ エンジンは MyISAM に基づいているため、システム ライブラリのバックアップには innobackupex が一般的に使用されていることに注意してください。 03 ワークフロー以下では、Innobackupex と Xtrabackup のワークフローについて説明します。一部重複する部分もありますが、この 2 つは連携してバックアップ タスクを完了します。 主なワークフローは次のとおりです。 1. innobackupex が起動すると、まず xtrabackup プロセスが作成されて起動し、次に xtrabackup が innodb 関連ファイルのバックアップを完了するまで待機します。 2. xtrabackup は、InnoDB 関連ファイルをバックアップするときに、次の 2 つのスレッドを開始します。1 つは、テーブルスペースの ibd ファイルのコピーを担当する ibd コピー スレッドで、もう 1 つは、REDO ログ情報のコピーを担当する redo ログ コピー スレッドです。 redo ログ スレッドは、ibd スレッドの前に開始されます。 redo ログ スレッドは、最新のチェックポイントから redo ログをコピーします (チェックポイントについては、以前の記事で説明しました)。 コピーが完了すると、ibd スレッドが開始されます。このプロセス中、innobackupex プロセスは待機状態にあり、xtrabackup プロセスによって起動されるのを待っていることに注意してください。 3. xtrabackup が ibd のコピーを完了すると (REDO ログ スレッドがまだ動作している可能性があります)、innobackupex プロセスに通知し、待機状態になります。 4. innobackupex は通知を受信すると、バックアップ ロック、チャネル整合性ポイントを実行し、非 innodb ファイルのコピーを開始します。 5. 非 innodb ファイルがコピーされた後、innobackupex は binlog の場所の取得を開始します。 6. xtrabackup_binlog_info ファイルを作成し、そのファイルに binlog ポイント情報を書き込みます。 7. 次に、innobackupex は xtrabackup プロセスへの通知を開始し、待機状態に入ります。 8. 通知を受信すると、xtrabackup プロセスは redo ログ コピー スレッドを停止し、redo ログ コピーが完了したことを通知し、innodbbackupex にロックの解放を開始するように通知します。 9. 次に、リソースの解放、メタデータ情報のバックアップ、バックアップ ディレクトリの印刷、binlog の場所情報のバックアップ、xtrabackup_info ファイル情報の書き込みなどのいくつかの仕上げタスクがあります。 10. innobackupex プロセスは、xtrabackup プロセスが終了するまで待機してから終了します。 04 いくつかの質問1. REDO ログをコピーする必要があるのはなぜですか? これは、バックアップ プロセス中に ibd ファイルが変更される可能性があるため、バックアップされたファイルにダーティ データが含まれる可能性があるためです。復元時には、REDO ログを介してデータを回復する必要があります。つまり、コミットされたトランザクションを適用し、コミットされていないトランザクションをロールバックする必要があります。 2. innobackupex と xtrabackup はどのように相互作用しますか? 実際、本質は 2 つの特定のファイルを削除して作成することです。これらの 2 つのプロセスは、指定されたディレクトリに特定のファイルが含まれているかどうかを監視します。含まれている場合は動作します。含まれていない場合は動作を停止し、待機状態になります。 05 ファイルをバックアップする通常、バックアップが完了すると、次の 7 つの重要なファイルがバックアップ ディレクトリに生成されます。
上記は、Xtrabackup を使用した MySQL バックアップ プロセスの詳細な説明の詳細な内容です。Xtrabackup を使用した MySQL バックアップの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: ルート権限なしでログインするためのDockerソリューション
>>: Webデザインチュートリアル(2):模倣と盗作について
1.画像をダウンロードするdocker pull selenium/hub docker pull ...
HTML でよく使用されるエスケープ文字をまとめると次のようになります。 改行...
目次序文1. GMT GMTとはGMTの歴史2. UTC UTCとはUTC は次の 2 つの部分で構...
WeChatアプレットのログインインターフェースは参考までに実装されています。具体的な内容は次のとお...
前回の記事で、mysqldump バックアップ ファイルに記録されるタイムスタンプ データは UTC...
1. はじめに画像は多くのスペースを占め、画像の数が増えるほど管理が難しくなるため、シンプルなラベル...
目次設計シナリオ技術的なポイントサーバー情報準備フルバックアップスクリプト(Mysql-FullyB...
1. ダウンロードApacheの公式サイトhttp://httpd.apache.org/にアクセス...
背景データ ウェアハウス モデリングでは、何ら処理されていない元のビジネス レイヤー データは OD...
私は新年を迎える前からプロジェクトに取り組んでいましたが、ここ数日で、新しいサーバー用に新しく増設し...
目次概要1. URL経由でダウンロード2. aタグのダウンロード属性とblobコンストラクタを組み合...
1. ナビゲーション: 順序なしリストとその他のラベル要素ナビゲーションを記述するために最も一般的に...
質問: Alice 管理システムを開発しているときに、すべてのバックエンド インターフェイスが最初の...
Vue でタブ切り替えを実装する 3 つの方法1. v-showはコンテンツの切り替えを制御します1...
HTML コメント。コードの横に HTML コメントを付ける必要があることがよくあります。そうするこ...