web-dev-qa-db-ja.com

サーバー全体をバックアップするだけで十分ですか?MySQLが含まれていますか?

サーバーの完全バックアップが必要です。 CentOS5です。

私の考え:サーバー上のすべてのファイルを文字通り取得してバックアップすることができ、すべてのバックアップを作成します。サーバー構成、私のPHPファイル、MySQL DB、すべて...これは正確な仮定ですか?

MySQLを追加でバックアップするつもりでしたが、DBファイルがサーバーのバックアップに含まれているので、おそらくそれは必要ありませんか?

さらに... RackSpace ServerBackupを試しています。これは基本的に私のディスク上のすべてのファイルを取得し、SSLを介してバックアップし、バックアップディスク上のデータを暗号化します。毎日実行でき、「更新されたファイル」のみがバックアップ先に送信されます。

ここで助けてくれてありがとう...

1
Shackrock

私はニルスに同意できません。私はMySQLと話すことができないことを認めますが、経験からそれはnot Oracleに当てはまると言えます。

ディスク上のデータベースファイルのスナップショットを撮ることは、たとえそれが瞬間的であっても、かなり無意味です。 DBには多くのトランザクションが含まれており、その一部はほぼ完全にディスクにフラッシュされ、一部は部分的にフラッシュされ、一部はほぼ完全にRAMに残ります。オンディスクはDBツールで回復できる可能性がありますが、実行可能なデータベースである可能性は低いです。

さらに悪いことに、大規模なデータベースの場合、バックアップには時間がかかります。つまり、ディスクのみのバックアップはまったく役に立たないということです。非常にぼやけたスナップショットと考えてください。非常に速く動いているもの(DB)を撮影し、バックアップを取るのに必要な時間(20分?2時間?28時間?(一部の本番DBの場合))シャッターを開いたままにします。写真は非常にぼやけます。ディスクにコミットされるトランザクションはほとんどなく、いくつかのテーブルを早期にキャッチします。他の人は何時間も後にキャッチするかもしれません、それまでに数十万以上のトランザクションがディスク上にあります。ディスクバックアップがすぐに機能しないとは言えません。 DBフォレンジックツールを使用して回復できないとは言えません。しかし、私は自分の仕事をそれに信頼しません。

FSがスナップショットをサポートし、DBがホットバックアップ(または同等のもの)をサポートしている場合、それらは機能します。ホットバックアップは、データベースに対してテーブルスペースを静止するための命令であり、保留中のすべてのトランザクションをバッファリングします。ある種のログファイルで、テーブルスペースをホットバックアップ状態から解除するときにそれらをen blocに適用します。これは、テーブルスペースを静止してから戻すときに機能します。それらはテープまでですが、テーブルスペースを静止し、基盤となるファイルシステムのスナップショットを作成し、ホットバックアップからテーブルスペースを解放してスナップショットをロールできる場合は、絶対的な扱いになります。 -)テープにオフ。

それを管理できない場合(そして私はしばしば管理できない場合)、バックアップソフトウェアにデータファイルを完全に無視するように指示し、MySQLに最初にオンラインストレージへのmysqldumpsを実行させてから、それをテープにロールオフします。私はそれらからの回復に問題があったことは一度もありません。

しかし、私がいつもこれらの場合に追加するように、何でもあなたがするので、あなたはそれをよく文書化してそれをテストするべきです頻繁に。その最後は、他のどのヒントよりも重要です。あなたがそれがうまくいくことを知っているなら、誰があなたがしていることを気にしますか?確実に機能することがわかっている場合は、蝉の羽のケースに書かれたZip toWORMアーカイブを使用してバックアップできます。しかしあなたがそれをテストしていないのなら、serverfaultのトーキング・ヘッズが言うことを誰が気にしますか?それは目的に適合しません。

2
MadHatter

基本的にはい-すべてがファイルです。ただし、一部のデータがまだRAMキャッシュにあり、まだディスクに書き込まれていないため、データを含むディスク上のファイルに一貫性がない場合があります。

したがって、ファイルバックアップを使用するだけで高負荷のDBをバックアップすると、一部のトランザクションが失われる可能性があります。ファイルごとに完全バックアップを作成する最も安全な方法は、DBをシャットダウンし、ディスクを同期してからバックアップを開始することです。または、DB-meansを使用して、データベースの内容をディスクにバックアップします。これらのバックアップは、多かれ少なかれ一貫性があります。 mySQLでは、さまざまなバックアップモードを選択できます...

編集:mysql-Administratorを試してください(利用可能な場合)。そこで、GUIを介してバックアップジョブを指定できます。結果は、バックアップ仕様を使用したcron-jobとして対応するバックアップコマンドになります。

1
Nils