1. mysqldumpユーティリティを使用します。 このプログラムは、Webホスティングのユーザーに非常に人気があります。 テーブルの内容を読み取り、彼女は後続の入力のためにSQL命令を含むファイルを作成します。 しかし、原則として、人々を使用するとき、3つの重要な点を忘れます:
- テーブルのロックを使用しない場合、テーブルの内容間の論理関係に違反する可能性が非常に高くなります(コピーの作成中に誰かがデータベースにレコードを残すことにした場合)。 ここでは、間接的に、ダンプからの回復後にbin-log部分をローリングすることが役立ちます。 そのため、何らかの理由でテーブルをロックしない場合---flush-logスイッチを使用する-使用するときに古いログが閉じられ、新しいログが開始されます。 バックアップの作成中に誰かが何かを書き留めると、これがログの先頭に反映され、この変更を問題なくデータベースに転送できます。 バックアップの終了後にmysqladmin-flush-logsを実行し、バックアップのダンプファイルに加えて最後から2番目のバイナリログを配置することをお勧めします。
- --lock-tablesキーを使用すると、すべてのテーブルが書き込みロックを受け取り、リクエストがキューに入れられます。 これにより、クライアント側のタイムアウトが発生する可能性があります。
- また、この方法で保存された大きなベースの増加(およびダンプの作成)はかなり遅れることがあります-最初のケースでは、データベースからすべてのレコードをレーキし、反対の場合、それらにフィードします。 それでも、これは、rootアクセスなしでコンソールからデータベースをバックアップする数少ない方法の1つです。
リカバリ:ダンプファイルをSTDIN経由でmysqlユーティリティにフィードする。
2. mysqlhotcopyユーティリティを使用します。 通常のMySQLセットの別のツール。 これは、データベースがロックされた後、cpまたはscpツールがファイルを別の場所にコピーするという考え方です。
- 以前のバージョンとは異なり、保存されるのはテーブルファイルであり、データベースを再構築するための一連の命令ではありません。つまり、速度はオペレーティングシステムとハードウェアによってのみ制限されます。
- 私の意見では、大規模なベースのバックアップに非常に適しています。
- MyISAMおよびARCHIVEテーブルでのみ機能します。
- これは、データベースが配置されているサーバーからのみ実行され、MySQLテーブルを含むファイルへのアクセス権があります。
リカバリ:保存したファイルをMySQLデータディレクトリにコピーします。
3. LVMを使用します。
LVMは、ファイルシステムとハードドライブ自体の間の追加レイヤーです。 LVMの注目すべき機能の1つは、ボリュームからイメージをオンザフライでキャプチャする機能です。 アクションスキームは次のとおりです。すべてのデータベーステーブルをロックし、ボリュームからスナップショットを削除し、テーブルのロックを解除します。
- この方法は、すべてのテーブルをロックする予備のFLUSHを意味します(この目的のためにスクリプトを記述する方が適切です)。
- この方法を使用するには、MySQLデータ(Linuxの場合、/ var / lib / mysqlディレクトリに保存される可能性が高い)がLVMボリューム上にあることが必要です(バックアップしすぎないように、別のボリュームが望ましい)。
- ホットバックアップについて話していることを考えると、この方法を使用する場合は、サーバーの構成段階で場所を決定することをお勧めします。
リカバリ:イメージから保存されたファイルをMySQLデータディレクトリにコピーします。
4.レプリケーションを使用します。 多くの人がこのオプションをhemoであると考えていますが、このバックアップ方法は私にとって最も正しいようです。 このアプローチのロジックは、プライマリ(マスター)サーバーをセカンダリ(スレーブ)と絶えず同期させることです。 レプリケーションの詳細については、 こちらをご覧ください 。
- 別のMySQLサーバー構成が必要です。 そして、それは望ましいです-自律的な鉄の上で。
- スレーブサーバーを停止しても、マスターでは何の役割も果たしません-「コールド」バックアップを作成できます。
- マスターがクラッシュした場合、できるだけ早く負荷全体をスレーブに転送し(このプロセスを自動化するのが合理的です)、回復後、マスターをマスターと同期し、すべてを元の場所に戻すことができます。
- スレーブは、バックアップ用のパートタイムストレージになることができます。
- 重要! レプリカが存在しても、バックアップの作成が免除されるわけではありません。 DROPの実行は両方のサーバーに影響します!
回復:スレーブサーバーのマスターの場所への出力、または上記の方法のいずれかを使用した回復(選択に応じて)。
合計:ご覧のとおり、各メソッドには長所と短所があります:レプリカを使用して小さなフォーラムをバックアップすることはほとんど意味がありません。特定の条件。
これで、私は私の話を終わります、それがあなたに役立つことを願っています。 ご清聴ありがとうございました。また放送中です。 :)