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):模倣と盗作について
Docker コンテナは、起動時に、たとえば ssh または apache デーモン サービスなどの...
目次Dockerとは展開する1. イメージをプルする2. 画像を表示する3. コンテナを実行する4....
ウェブデザインでは、ウェブページを美しく見せるために矢印を装飾としてよく使用します。現在、多くのウェ...
序文:最近、プロジェクトで管理システムに遭遇しました。権限設定が非常に興味深いと思いました。自分の学...
軽量のオープンソース データベースである MySQL は、エンタープライズ レベルのアプリケーション...
数日前、国産の XHTML エディタを紹介しました。今日は、有名な海外の Web デザイン ブログl...
目次環境仮想マシンバージョンMySQL バージョン事前準備MySQLの実行ステータスを確認するルート...
目次1. 基本概念と基本コマンド1) 基本的な概念2) 基本コマンド2. SQL文の記述順序と実行順...
実行後、一部の Docker コンテナが終了することがあります。原因を調べるには、Docker コン...
なぜ仮想DOMが必要なのでしょうか?仮想 DOM はブラウザのパフォーマンス問題を解決するために設計...
今日、イメージを起動した後、HTTP リクエスト経由でアクセスできないという小さな問題が発生しました...
1. 正常に生成されたアイコン ファイルをダウンロードし、名前を favico.ico に変更して、...
以前、フロントエンド技術グループに所属していたとき、グループのメンバーが面接中に問題に遭遇したと言っ...
binlog は、MySQL のすべての DML 操作を記録するバイナリ ログ ファイルです。 bi...
方法1コードをコピーコードは次のとおりです。 document.getElementById(&qu...