MySQLサーバーのバックアップ


13

MySQLサーバーをバックアップする最良の方法は何ですか?サーバーを停止する必要のない方法が欲しい。InnoDBホットバックアップのようなものが必要ですか、それともMySQL Administratorツールで提供されるバックアップツールを使用できますか。一方が他方に対して提供する利点は何ですか?

回答:


12

MySQLの実行中に機能するmysqldumpを使用します。mysqldumpを使用し始めたのは、ニーズが小さいときにセットアップするのが最も簡単で、それらのニーズを満たすようだったからです。データベースはその後成長しましたが、mysqldumpにまだ成長していません。適しているかどうかは、データベースのサイズ、通常の動作負荷、およびおそらく他の多くのものに依存します。


mysqldumpは素晴らしいです。いくつかの他のRDMSのバイナリダンプとは異なり、デフォルトではmysqldumpが生成するファイルは、本格的なsqlコマンド(ほとんどは行のCREATE TABLEステートメントとINSERT)を含むテキストファイルです。単純なテキストファイルであるため、簡単に操作、圧縮、暗号化できます。
ネッド

3
mysqldumpは、大きなデータベースがある場合やMyISAMに依存している場合に故障します。バックアップからの復旧に3日かかるため、ダンプをインポートするときに再構築する必要のある多くのインデックスを持つ400Gデータベースがいくつかあります。LVMスナップショットを使用すると、mysqldumpが大きくなった場合の回復時間が大幅に短縮されます。
ニルス・アンダースNøttseter

4

perconaのxtrabackupを見てください。これは、innodbデータベース用のmysqlhotcopyに代わる興味深いオープンソースの代替手段です。

あなたはそれについてここでもっと読むことができます


3

mysqldumpは使用できますが、ダンプ中にすべてのテーブルをロックしない限り、データセットの一貫性は保証されません。これにより、データベースは読み取り専用モードになりますが、ダンプの一貫性は保証されます。

次のコマンドでテーブルをロックできます:

FLUSH TABLES WITH READ LOCK;

そして、終了したら、次の方法でロックを解除できます。

UNLOCK TABLES;

7
mysqldumpを--single-トランザクションは、一貫性のあるスナップショットを保証します
デイブチェイニー

5
--single-transactionは、すべてのテーブルがInnoDBの場合にのみ機能します。MyISAMテーブルはトランザクションをサポートしていません。
ニルス・アンダースNøttseter


2

MySQLレプリケーションをセットアップします。ボーナスとして、メインの本番データベースに影響を与えることなく、サーバーに大量のレポートジョブとmysqldumpを実行させることができます。


レプリケーションは遅延する可能性があるため、必ずしもマスターの特定の時点のバックアップではないことに注意してください。

2
レプリケーションはバックアップではありません。マスター内の何かを誤って削除すると、スレーブもそれを削除します。ただし、スレーブは本番サーバーに影響を与えないため、mysqldumpを使用することをお勧めします(Daveが述べたように)。
マルタインHeemels


0

mysqlhotcopyと呼ばれるツールもありますが、これを一度見てみると、多くの可能性があると思いましたが、決して使用しませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.