私たちはinnodb mysqlデータベースを持っているので、多くの異なるmysqlバックアップ戦略で失われています。 mysqldumpについて話す人もいれば、サードパートツールについて話す人もいます。パーティションを実行する予定のテーブルの一部。このタスクに役立つ優れたツールはありますか?
InnoDBのバックアップに関しては、今日(もちろん、私が見ているように)議論はほとんどありません。 Xtrabackup by Perconaは、以下を提供する、広く機能が豊富で安定したソリューションです。
Xtrabackupは、現在MySQL Enterprise Backupと呼ばれているInnoDBホットバックアップから派生しています。追加の機能セットを可能にする追加のラッピングスクリプトがあります。
小さいデータベースは、共通のmysqldump
の恩恵を受ける可能性があります。それは本当にあなたのデータベースのサイズとトラフィックに依存します。 mysqldump
、--single-transaction
を伴うイベントは、DBサーバーに高い負荷をかけ、ロックを蓄積します。思ったほど暑くありません(バックアップ温度については この投稿 を参照)。
LVMスナップショットをかなり頻繁に使用しています。大きな利点は、これらはDBを知らないため、このタイプのバックアップに影響するDB関連のバグがないことです。大きな欠点は、I/Oが過度に増加することです。チェックアウト mylvmbackup 。
ZFSまたはスナップショットをサポートする別のファイルシステムを使用している場合は、これが優れたソリューションになる場合があります。スナップショットをサポートするストレージデバイスがある場合、それも素晴らしいことです。すべてのスナップショットはDBを無視しますが、バックアップが実行される時点(DB単位)を把握するために、このa-la mylvmbackup
をスクリプト化することがよくあります。
私は昔ながらのDBAなので、とにかく聞いてください...
Apr 17, 2011
: 大規模データベースのmysqldumpをどのように最適化できますか?Jun 26, 2011
: MySQLのすべての可能なバックアップオプションを有効にする方法Oct 01, 2011
: クイックMySQLバックアップMay 16, 2012
: MySQLでスナップショットバックアップを作成する方法May 22, 2012
: MySQL Server Backup (MySQL for Windowsで実行する方法を含む)Jul 24, 2012
: InnoDBとMyISAMが混在するMySQLデータベースを同じサーバーにコピーする方法以前の投稿では、mysqldumpを1つのファイルと並行して実行することをお勧めします。 XtraBackupを試すこともお勧めします。 mysqldumpに制限したくありません。一部のデータベースは非常に大きいため、LVMスナップショットが唯一の可能なソリューションです。
バックアップ戦略を選択する際に考慮すべき重要な点:
これは、優先順位の高い順にこれに取り組む方法です。そして、それは私の客観的な答えの終わりです:)
今、私の経験に基づく主観的な部分について:)
最近のDBセットアップの大部分では、唯一のバックアップソリューションとしてmysqldumpを使用することはスケーラブルではありません。遅く、巨大なファイルを作成し、mysqldumpのインポートには永久に時間がかかります。mysqldumpを使用すると、データ全体で一貫性のある真の「ポイントインタイム」リカバリが可能になります。私はmysqldumpを使用して、非常に重要でエンドユーザーのファウル(ユーザーテーブルやuser_profileなど)が発生しやすいv小さなテーブル(それぞれ200MB未満)をバックアップします。私がこれらに戻るときの一般的な使用例は、誰かが「このユーザーはいつ変更されましたか?そしてXを設定することの価値は何でしたか?」と尋ねるときです。真の「ワールドオンファイア」バックアップには、Perconaによるxtrabackupを使用します。これは無料で、オープンソースで、活発に開発されており、自動化も非常に簡単です。