web-dev-qa-db-ja.com

mysqldumpは「ホット」バックアップの種類ですか?

ドキュメント を見ると、データベースバックアップツールは、ホットバックアップ、コールドバックアップ、物理バックアップ、論理バックアップの4つのカテゴリに分かれています。

coldhotバックアップの最も重要な違いは後者は、データベースが動作し、読み取りと書き込みのクエリを受信して​​いるときに実行できます(結果は一貫してアトミックになります)。

しかし、mysqldumpにこの「ホット」または「コールド」の側面があるかどうかをどのようにして知ることができますか?ドキュメントは単にlogical backupカテゴリであり、これについては100%明確ではありません(そうです、mysqldumpプロシージャの最初に同じDBのスナップショットを使用していることを示しているようです。これは、これが間違いなくHOTバックアップツールであることを示唆していますが、再確認したかっただけです。ここに)。

テーブルはInnoDBエンジンを使用します。

6
knocte

まず、前述の4つのカテゴリにバックアップを分類することは正確ではありません。 (ホット、ウォーム、コールド)と(物理的、論理的)に分類できます。つまり、バックアップは、コールドで物理的なもの、またはホットで物理的なものなどです。物理的および論理的ではありません。

物理バックアップは、「Rawバックアップ」と呼ぶ方がよいことに注意してください。これは、ファイルシステムレベルでのデータファイルおよびその他の関連ファイルのコピーです。

mysqldumplogicalです。つまり、DBやテーブルやデータなどを再作成するステートメントを生成します。したがって、「物理的」ではありません

「ホットバックアップ」とは、ユーザーに影響を与えることなく、またアプリケーションやDBサーバーを停止することなくバックアップを実行できることを意味します。また、結果のバックアップは一貫しています。ホットバックアップを作成するには、さまざまな戦略とツールがあります。時々、それはあなたが使うストレージエンジンに条件付きです。

あなたの質問に答えるには:mysqldumpはデフォルトではホットバックアップツールではありません。これは、他のエンジンの中でMyISAMを使用している場合や、バックアップ中にテーブルがロックされている場合に特に当てはまります。

ただし、テーブルが純粋なInnoDBであり、--single-transactionオプションをmysqldumpで使用すると、はい、それはhotと見なされます。

HTH

5
Jehad Keriaki

ここ から、onlyInnoDBテーブルを使用したMySQLデータベースのホットバックアップの完全なコマンドは次のとおりです。

mysqldump -u user -ppass --single-transaction --routines --triggers --all-databases > backup_db.sql

-uとユーザーの間のギャップ、および-pとパスの間のギャップがないことに注意してください。これは正解です。MySQLの癖が原因で、何度も私を捕らえています。

この MySQLページ には、物理​​バックアップと論理バックアップの違いに関する非常に明確で簡潔な説明もあります。

物理バックアップ(rawとも呼ばれます):

物理バックアップは、データベースの内容を格納するディレクトリとファイルの未加工のコピーで構成されます。このタイプのバックアップは、問題が発生したときに迅速に回復する必要がある大規模で重要なデータベースに適しています。

これには、データベースをシャットダウンするか、プロセス中にデータベースが変更されないように何らかのロックを行ってから、ディスク上のビットのコピーを取得することが含まれます。

データベースが特定のポイントで「一時停止」され、チェックポイントでバックアップが取られている間、そのポイントから更新が進行するチェックポイント(下記参照)とは異なり、プロセス中の更新は不可能です。

データベースを構成するphysicalファイル(ディスク上のビット)は、物理バックアップでバックアップされるファイルです。

詳しくはページをご覧ください。

論理バックアップ:

論理バックアップ方式には、次の特性があります。

•バックアップは、MySQLサーバーにクエリを実行してデータベース構造とコンテンツ情報を取得することによって行われます。

これが基本的に意味することは、特定の瞬間におけるデータベースのビットコピーのバイナリビットではなく、この形式のコピーは、データベースを再構築するために実行する必要があるSQLで構成されるファイルです。 mysqldumpファイルの内容を確認します(これはプレーンテキストであり、任意のエディターで読み取り可能であるか、more/catを使用しています-何をしていますか)。

Hot v。Cold、またはMySQLページがそれらを呼び出すときに、Online v。Offline

ホット-オンライン-サーバーが動作し続けることを意味し、コールド-オフライン-データベースがクエリの処理に使用できないことを意味します。ただし、ホットバックアップを使用すると、パフォーマンスが低下するため、通常はオフピーク時にスケジュールされます。

繰り返しになりますが、詳細についてはMySQLのマニュアルページを参照してください(このページは、長い間出会った最高の技術文書の1つです)。

フルv。インクリメンタルバックアップとスナップショットについては、さらに詳しく読むことができます。これらについてさらに質問がある場合は、ここに戻ってください。

推奨事項が必要な場合は、 PerconaのXtraBackup をお勧めします。これは、InnoDBテーブルを使用するMySQLデータベース用の真のホットバックアップソリューションです-ではありません他のエンジン、特にMyIsamで動作します。 MyIsamアーキテクチャでは、ホットバックアップができません。データベースのロックが必要です。

最後に、サーバーバックアップの非MySQLソリューションの詳細を提供する この投稿 (本当にあなたの作者は:-)を参照することをお勧めします。

4
Vérace

はい、それはホットバックアップです。

  • データベースをオンラインで実行し、クエリを実行するなど
  • ダンプは一貫性があり、アトミックです-ダンプを開始したときに見たデータベースのスナップショット
0
Andrew Brennan