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):模倣と盗作について
セキュリティ上の理由から、Alibaba Cloud Server ECS にはデフォルトで独自のセ...
導入Alibaba Cloud のような OSS ストレージ サービスを使用している場合は、サービス...
目次1. クロスドメインフィルタ CorsFilter 1.1 設定例1.2 パラメータの説明2. ...
目次1- エラーの詳細2-シングルソリューション2.1-ディレクトリ C:\Windows\Syst...
少し前に、docker ディスク容量が小さすぎてデータを書き込めないという問題が発生しました。理由は...
translate(-50%,-50%) 属性:中央に配置するには、長さと幅の 50% だけ上と左...
序文現在、フロントエンドは主に webpack の devServer の構成を通じてクロスドメイン...
中国語チュートリアルhttps://www.ncnynl.com/category/turtlebo...
序文add_header は、headers モジュールで定義されたディレクティブです。名前が示すよ...
MySQL ショートリンクの設定方法1. mysql 接続番号ステートメントコマンドを確認します。 ...
:動的コンポーネントv-bind:is="component name" を使用...
目次質問1: 小道具は具体的にどのように使用されますか?原理は何ですか?下を見る質問 2: 年齢に ...
PHPのメール関数を使用してメールを送信するmail()関数はメールサーバーに接続し、サーバーと対話...
ここで 123WORDPRESS.COM はこれらのテンプレートの最初の部分を紹介します。各テンプレ...
CSS3変数について変数を宣言するときは、変数名の前に 2 つのハイフン ( -- ) を追加します...