9

MySql ホット バックアップに Amazon の EBS スナップショット機能を使用した経験は何ですか。

EC2 でバッチ処理ジョブを実行しているデータベースがあります。EBS スナップショットでバックアップします。これまでのところ、バックアップは一貫しているように見えます。しかし、私は彼らが「チェックをやめるとすぐに一貫性を失うだろう」と心配しています(不確実性原理)。

ebs スナップショットを使用してリレーショナル データベース (特に mysql) をバックアップした経験はありますか?

4

5 に答える 5

11

EBS スナップショットを使用して、MySQL データ ディレクトリを 1 年以上バックアップしています。それは完璧に機能しています。これらのスナップショットを、MySQL セットアップの代替 (またはクローン) の基礎として使用しても問題はありませんでした。

ベスト プラクティスは、XFS などのフリーズが可能なファイル システムで EBS ボリュームをフォーマットすることです。これにより、一貫性のあるスナップショットを取得できます。MySQL のメモリをディスクにフラッシュし、ファイルシステムをフリーズし、スナップショットを作成してから、フリーズを解除します。プロセス全体にかかる時間は 10 秒未満です (ただし、DB が頻繁に使用されている場合は、さらに時間がかかる場合があります)。

このすべてを実行するスクリプトについては、Eric Hammond によるこの記事を参照してください。

于 2009-10-25T12:11:28.220 に答える
3

MySQL は、一貫性のないディスク状態からの回復が不十分であるという評判があり、XFS は基本的に、スナップショットが行われている間、ファイル システムへの IO を一時停止します。通常、データベースは完全なトランザクション ログ エントリが作成されると、flush() を実行します。これは、基本的にファイル システムへのチェックポイントを示します。ジャーナリング ファイル システムの場合、これは重要です。ほとんどの場合、ファイル システムはマウントされた最後の有効なジャーナル エントリに回復します。これは 100% ではありませんが、何もないよりはましです。ほとんどのデータベース システムは、データベース ファイルがトランザクション ログの背後にある場合、復旧時にトランザクション ログ ファイルを使用して「ロールフォワード」し、データベース エンジンは、トランザクション ログの内容が与えられた場合に限りロールフォワードします。部分的に書き込まれたトランザクションをロールフォワードしようとはしません。ここでの問題は、MySQL がそれを達成するのに最適ではないということです。したがって、それは絶対に問題になる可能性があります。これに対する確実な解決策は見つかりませんでした。ミラーを実行し、MySQL を一時停止してスナップショットを作成し、同期を再開することを想像できますが、MySQL ミラーが部分的に使用できないミラーに対応できるかどうかはわかりません。しばらくすると、完全な再ミラーリングなしで追いつくことができます。その場合、完全なミラーリングを実行するのとほぼ同じ効果がデータベースに及ぶため、すべてのデータベースの mysqldump を実行することもできます。これは、私が考えることができる実行中の他のオプションです。すべてのデータベースの mysqldump を実行して、バックアップ パーティションとスナップショットを作成します。実行中のバックアップが提供されないため、頻繁に実行することはできません。

他のデータベース エンジンは、この点ではるかに優れています。PostgreSQL は、一貫性のないディスク状態から、ジャーナリングされたファイルシステムでの実行をまったく推奨しないところまで回復するのに非常に優れています。また、トランザクション ログをアーカイブするオプションもあるため、最後の正常な完全バックアップから、アーカイブ ログが存在する任意の時点までロール フォワードできます。これにより、一貫したバックアップを作成するのがはるかに簡単になります。Oracle では、物理ディスク/EBS パーティション間で切り替えるトランザクション ログの複数のセットを使用できるため、一貫性のあるスナップショットを作成するためのウィンドウが頻繁に作成され、スナップショットを実行する必要があることをデータベース エンジンに示すことができますが、反転することはできません。あなたがそう言うまで戻ってください。

ジャーナリングの考え方に沿って、LVM には通常 1 秒未満でファイル システム全体のスナップショットを作成する機能があります。EBS スナップショット機能がこれを利用するかどうかはわかりませんが、手動で行うこともできます。LVM は XFS よりも少し手間がかかりますが、ext3 では問題がなかった単一のディレクトリ内の多数のファイルが大量に発生する問題が過去に XFS で発生しました。LVM には他にも多くの利点があり、いずれにしても検討する価値があります。

于 2011-01-26T12:54:52.303 に答える
1

私が主に懸念しているのは、データベースのバックアップを操作するレベルで EBS スナップショットに依存することです。スナップショットはディスク上で非常に低いレベルで動作し、アプリケーションの書き込み状態に関係なくイメージを取得します。理論的には、バックアップ イメージはトランザクションまたは何かの途中である可能性があります。

于 2010-05-19T17:52:19.397 に答える
-2

You might consider using Amazon RDS to manage your database(s) -- it works just like a standard MySQL server and then you could blame Amazon if it crashes (it won't). Also, they back up and patch the server for you regularly. I moved my Wordpress and vBulletin installs over and it took maybe an hour.

Just my 2¢!

于 2012-01-17T22:13:20.420 に答える