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):模倣と盗作について
top コマンドは、Linux システムのパフォーマンスを監視するために誰もが使用している最適なコマ...
履歴コマンドを表示し、指定されたコマンドを実行します owen@owen:~/owen/softwa...
目次1. 前処理2. 前処理塗布方法A. 例: B. 実行計画の変更を追跡するための前処理C. スト...
目次1. tomcatの起源1. Tomcat アプリケーションのシナリオ2. Tomcatに必要な...
MySQL バージョン 5.0 ではストアド プロシージャのサポートが開始されました。ストアド プロ...
フローティングの基礎標準ドキュメント フローでは、要素は塊級元素と行內元素の 2 種類に分けられます...
目次1. プロジェクトの構築2. Vue3 体験 + Vant 紹介2020年9月18日にvue.j...
Scrcpyのインストールsnap install scrcpy adbサービスのインストールsu...
K8s k8s はクラスターです。クラスターには複数の名前空間があります。名前空間の下には複数のポッ...
Linuxにunzipコマンドがない問題の解決策unzipコマンドを使用して.zipファイルを解凍す...
折りたたみ表示の複数行テキストコンポーネント複数行のテキスト コンポーネントを折りたたんで表示し、展...
この記事では、MySQL の ROUND 関数を使用した丸め操作の落とし穴を例を使って説明します。ご...
プロジェクトを作成するWeChat開発者ツールでプロジェクトを作成し、言語でTypeScriptを選...
以下の機能が実装されています。 1. ユーザー名: onfouc は msg ルールを表示します。o...
1. 基本環境1. オペレーティングシステム: CentOS 7.3 2. MySQL: 8.0.1...