新しいタイプのMySQLバックアップのテスト

MySQLバックアップには、主に2つの種類があります。



論理バックアップ


mysqldumpSypex Dumperのように、SQLクエリからテキストダンプが作成されます。



物理的なバックアップ


mysqlhotcopyの典型的な代表であるテーブルファイルの正確なコピーが作成されます。



Sypex DumperとSypex Backuperの新しいバージョンで作業する過程で、MySQLホットバックアップの別の興味深いバージョンを思いつきました。 これは、これら2つのオプションのクロスです。



しかし、最初に、主な利点と欠点を考慮してください。 理論の代わりにすぐに実践したい人は誰ですか-投稿の下部にテストスクリプトへのリンクがあります。



論理バックアップ



論理バックアップの利点:





主な短所:





物理的なバックアップ



物理バックアップの利点:





主な短所:





Sypex MySQL RAWバックアップ



バックアップの論理的な方法を分析すると、サーバーからデータパケットを受信し、それらを解析してテキスト形式に変換すると、速度の主な低下が発生することがわかりました。 さらに、この分析は通常、mysqlndの新しいPHPバージョンの場合にlibmysqlによって行われ、追加のオーバーヘッドが発生します。



したがって、不必要な変換を取り除くことにし、 MySQL Client / Server Protocolを使用する標準のMySQLドライバーを使用せずに(TCPまたはUNIXソケット経由で)MySQLに直接接続するテストスクリプトを作成しました。 スクリプトは、MySQLサーバーから受信したバイナリパケットの形式でデータをファイルに保存します( ProtocolBinary :: Resultset )。 したがって、パケット、フィールド、シールドデータの解析に時間が無駄になりません。 また、バックアップの復元時に、パッケージの分析とSQLクエリの形成が既に行われています。



その結果、テーブルの構造に応じて、バックアップ速度が何倍も向上しました。 ダンプも非常にコンパクトです。 mysqldumpおよびSELECT ... INTO OUTFILEを使用して、RAWバックアップの速度とバックアップを比較できます。



標準IPBおよびphpBBフォーラムテーブルでのいくつかのランタイム結果。









もちろん、この方法の主な欠点は、標準的な方法を使用した回復が不可能であることです。 復元するには特別なスクリプトが必要です。 ただし、この方法は、重複排除、増分バックアップ、暗号化、およびその他のチップをサポートする特別なコンテナファイルで機能するため、この場合はそれほど重要ではありません。



テスト用のスクリプトはこちらからダウンロードしてください

このスクリプトはテクノロジーデモンストレーターであり、最終製品ではありません。



コメントの結果に関する購読を中止します。 SELECT ... INTO OUTFILEはlocalhostでのみ機能し、MySQLユーザーにはFILE権限が必要であり、バックアップディレクトリには777権限が必要であることに注意してください。



UPD。 ワーカーの要求に応じて、より大きなテーブルでさらにいくつかのテストを行います。



約1.3 GBのウィキペディアテーブル(カテゴリリンク)のいずれかのバックアップ

画像



GeoNamesテーブルのバックアップは約1 GB

画像







All Articles