-
1. 論理バックアップ: mysqldump
-
2. Mydumper
-
3. mysqlbackup
-
4. フィジカルバックアップ: Percona XtraBackup
-
5. phpMyAdmin
-
6. MySQL Workbench
-
7. Vinchin バックアップ&リカバリー
-
MySQLバックアップツールに関するよくある質問
-
結論
MySQLデータベース管理を実現するためには、様々なバックアップツールや技術が開発されており、それぞれに特有の強みや利用ケースがあります。本記事では、これらの主要なMySQLバックアップおよび管理ツールの特徴、仕組み、検討事項について詳しく探り、データベース運用における適切な意思決定を支援します。
1. 論理バックアップ: mysqldump
MySQLにおいて、mysqldump はデータベースを移植可能なSQLファイルとしてエクスポートするための最も一般的に使用されるツールの1つです。単一のテーブル、単一のデータベース、または複数のデータベースのバックアップをサポートし、さまざまなバックアップニーズに応える豊富なオプションを提供します。そのバックアップメカニズムは、MySQLデータベースにプロトコル経由で接続し、バックアップするデータを照会し、その照会結果を対応する「INSERT」 ステートメントに変換します。データを復元する必要がある際は、これらの「INSERT」 ステートメントを実行することで対応するデータを復元します。
mysqldumpによるバックアップ処理の概要は以下の通りです:
特定のデータベース内のすべてのテーブルに読み取りロックを適用する;
テーブルデータをループ処理してバックアップする;
読み込みロックを解除します。
上記の3つの手順を繰り返してください。
バックアップが完了しました。
上記のプロセスから明らかに分かるように、mysqldumpによるバックアップ中、特定のデータベースをバックアップする際、そのデータベース内のすべてのテーブルが読み取り専用モードとなり、バックアップが完了するまでいかなる変更も禁止されます。これはオンライン環境では一般的に許容できません。もし“--master-data”または“--dump-slave”オプションを指定した場合、バックアップ開始時にグローバルな読み取りロック(“FLUSH TABLES WITH READ LOCK”)が適用され、バックアップが完了するまでその状態が維持されます。この問題を回避する方法として、オンライン処理に影響を与えないようレプリカデータベース上でバックアップを行うという代替策があります。
mysqldumpを使用するもう一つの主な利点は、SQL文を生成するため、クロスプラットフォームおよびクロスバージョンのデータ移行や復元が可能であることであり、これは物理バックアップでは不可能です。 ただし、mysqldumpはSQL文を生成するため、使用時には重大な問題を防ぐために特別な注意が必要です。mysqldump使用時によくある問題は以下の通りです:
データの一部のみを新しいインスタンスに移行したが、意図せずオリジナルデータを削除してしまった;
タイムゾーンの問題により、復元されたテーブルや時間関連のデータが正しくない場合があります。
バックアップデータをプライマリデータベースにインポートした後、レプリカデータベースは同期しません;
文字セットの問題により、復元されたデータが文字化けしています。
したがって、mysqldumpを使用する際には、各オプションの機能を理解し、エクスポートされたSQLファイルに含まれる操作を確認し、既存データへの影響を評価することが重要です。
2. Mydumper
Mydumperの原理はmysqldumpと似ていますが、主な違いはマルチスレッドバックアップの導入にあり、各バックアップスレッドが一部のテーブルを処理します。並列処理の粒度は行レベルにまで達成され、マルチスレッドでのバックアップを実現しています。
Mydumperの主な特徴:
軽量で、C言語で書かれています
実行速度は、mysqldump よりも10倍高速です
トランザクション可能および不可能なテーブルの一貫性のあるスナップショット(バージョン0.2.2以降)
高速なファイル圧縮
バイナリログのエクスポートに対応
マルチスレッド復元(バージョン0.2.1以降)
予定されたスナップショットと継続的なバイナリログのデーモンとして動作する(バージョン0.5.0以上)
オープンソース (GNU GPLv3)
Mydumperはマルチスレッドでエクスポートを行うため、mysqldumpと同じエクスポート順序を保証することはできず、ルーチンやイベントなどの時間依存の機能においてデータの不整合が生じる可能性があります。MySQLのシステムデータベースは、他のデータベースとは別にエクスポートおよびインポートすることをお勧めします。
Mydumper のデータベース抽出およびマージ機能は区切り文字に依存しているため、データベース名にはドット(“.”)を含めず、テーブル名にはハイフン(“-”)を含めないでください。
3. mysqlbackup
mysqlbackupはMEBと略称され、OracleがMySQLの企業版向けに開発したバックアップツールです。このツールは、ホットバックアップ、増分バックアップ、選択的なデータバックアップおよびデータ復元などの強力なMySQLバックアップ機能を提供します。
並列処理を活用することで、mysqlbackup はデータベースデータの ブロックレベル の並列バックアップを実行し、バックアップの効率性と速度を向上させます。
MEBは、Full、Differential、Incrementalの3種類のMySQLデータベースバックアップをサポートしています。また、これらのバックアップを圧縮して保存することも可能です。バックアップ実行後、ibdata、ibd、ibzの3種類のファイルが生成されます。これらのうち:
“ibdata”はInnoDBシステム表領域のデータを含みます;
「Ibd」には実際のデータファイルが含まれています。
「Ibz」には圧縮されたデータファイルが含まれています。
さらに、MEBは、「backup-mysql.cnf」(バックアップ時のMySQL設定のバックアップ)や、「ibbackup_ibd_files」、「ibbackup_logfile」などの増分バックアップファイルを生成します。これらには増分データやログが保存されています。また、MySQLではデータの完全性を高めるために、個別のredoログのバックアップメカニズムも導入されています。
4. フィジカルバックアップ: Percona XtraBackup
Percona XtraBackupは、Perconaが開発したMySQL用のホットバックアップツールであり、InnoDBのクラッシュリカバリメカニズムに基づいた物理バックアップを目的として設計されています。その基本的な動作原理は以下の通りです:
1. 起動時に、リドログのコピー処理が作成され、現在のログシーケンス番号(LSN)を取得・記録し、それ以降の変更されたリドログを継続的にコピーします。
2. 「ibdata1」、undo表領域、およびすべての「ibd」ファイルをコピーするスレッドが開始されます。
3. 「ibd」ファイルのコピーが完了すると、「FLUSH TABLES WITH READ LOCK」(またはバックアップロックを適用)がトリガーされます。
4. 次に、非InnoDBのデータファイル(.frm、.MRG、.MYD、.MYIなど)をバックアップします。
5. レプリカデータベースやバイナリログに関する情報もバックアップします。
6. 最後に、ログをフラッシュし、最新のリドログをコピーして、ログコピー用スレッドを終了させ、バックアップメタデータを記録しながらグローバルロックを解放して処理を完了します。
復元中、Percona XtraBackup はコピーされたリドログを適用し、完了したトランザクションをコミットし、未コミットのトランザクションをロールバックして、データベースを一貫性のある状態に復元します。
Percona XtraBackup は物理ファイルを生成するため、データベースの復元や移行時に、mysqldump のような論理バックアップに関連する多くの問題を回避できます。ただし、異なるバックアップパラメータがデータベースにさまざまな程度の影響を与える可能性があります。
XtraBackupは、データベースへの影響が最小限で復旧が早いという利点があり、日常的なバックアップに最適な選択肢です。一方で、mysqldumpは柔軟性がありますが、既存データを妨げないように注意して扱う必要があります。
5. phpMyAdmin
phpMyAdmin は、PHPをベースとしたMySQLデータベース管理ツールで、Webホスト上で動作するWebベースのアプリケーションとして構成されています。管理者がWebインターフェースを通じてMySQLデータベースを管理できるようにし、複雑なSQL構文の入力や、特に大量のデータのインポート・エクスポートに便利な方法を提供します。
phpMyAdminは、Microsoft AccessやSQL Serverに類似したグラフィカルなデータベースインターフェースを提供し、データベースやテーブルの作成、MySQLデータベースのスクリプトファイルの生成などの各種MySQL操作をユーザーが行えるようにします。
phpMyAdminの大きな利点の一つは、他のPHPアプリケーションと同様に、Webサーバー上で動作することです。ただし、ユーザーはどこからでも生成されたHTMLページにアクセスできるため、リモートでMySQLデータベースを管理することが可能です。これにより、データベースやテーブルの作成、変更、削除が容易になります。さらに、phpMyAdminはWebアプリケーション開発時に使用される一般的なPHP構文を生成することもでき、SQL文の正確性を保証します。
6. MySQL Workbench
MySQL Workbenchは、MySQLデータベースを管理するための無料の公式グラフィカルツールであり、データベース設計、開発、管理のための使いやすいインターフェースを提供します。ER図を用いてデータベース構造を視覚的に作成・編集でき、SQLスクリプトの生成やデータベースとの変更内容の同期が可能です。内蔵されたSQLエディターは構文ハイライト、自動補完、可視化された結果でのクエリ実行をサポートしています。さらに、データのインポート/エクスポート、ユーザー権限管理、パフォーマンス監視、データベース移行のためのツールも提供されています。Windows、macOS、Linuxに対応しており、初心者から経験豊富な開発者まで幅広く利用でき、コマンドラインに関する深い知識を必要とせずにデータベース作業を効率化できます。
7. Vinchin バックアップ&リカバリー
Vinchin Backup & Recovery は、より自動化され、効率的かつ安全なソリューションを提供し、MySQLバックアッププロセスを一元管理、高速リカバリー、増分バックアップ、柔軟なストレージ戦略を通じて長期的なデータ可用性を確実なものにします。また、Oracle DB、SQL Server、PostgreSQL、Postgres Pro、およびMariaDB に対して柔軟なバックアップ戦略も提供します。
最適化されたストレージ機能により、重複データ削除や圧縮機能を通じてバックアップファイルのストレージ要件を大幅に削減し、バックアップ時間を短縮します。同時に、暗号化および転送セキュリティ機能により、バックアップデータの安全性を確保しており、データ保護を厳格に行う必要がある企業に適しています。
MySQL データベースのバックアップジョブを作成するには、物理バックアップ > データベースバックアップ > バックアップ ページに移動してください:
1. バックアップが必要なデータベースを選択します。

2. バックアップデータを処理および保存するためのバックアップノードを選択します。

3. 必要に応じてバックアップ戦略を構成します。

4. 設定を確認して確定します。

効率的で信頼性の高いデータバックアップおよび回復ソリューションを体験するために、以下のボタンをクリックしてVinchinの60日間無料トライアルをお試しください!
MySQLバックアップツールに関するよくある質問
1. 論理バックアップと物理バックアップの違いは何ですか?
論理的バックアップはSQL文としてデータを保存するのに対し、物理的バックアップは生のデータベースファイルをコピーします。
2. MySQLにおけるポイントインタイムリカバリ(PITR)とは何ですか?
バイナリログ(binlog)を使用してデータベースを特定の時点に復元できるようにします。
結論
MySQLデータベースに最適なバックアップツールを選定することは、データの安全性と運用効率を確保するために重要です。各ツールの長所と短所を理解することで、特定のニーズに応じたバックアップ戦略を構築し、あらゆる状況において確実なデータ保護とスムーズな復旧を実現できます。
共有: