MyISAMおよびInnoDBエンジンを使用するデータベースの一貫した論理バックアップ


8

MyISAMとInnoDBの両方を使用するMySQLデータベースの論理バックアップについて質問があります。

mysqldumpユーティリティは、これらの2つのオプションがサポートされています。

  • --single-transaction-すべてのテーブルを単一のトランザクションでダンプすることにより、一貫したスナップショットを作成します。マルチバージョニングをサポートするストレージエンジンに格納されているテーブルに対してのみ機能します(現在はInnoDBのみがサポートしています)[...]オプションは自動的に--lock-tablesをオフにします。

  • -x、-lock-all-tables-すべてのデータベースのすべてのテーブルをロックします。これは、ダンプ全体の期間中、グローバルな読み取りロックをとることによって実現されます。--single-transactionと--lock-tablesを自動的にオフにします。

    • InnoDBには、 --single-transaction

    • MyISAMには、lock-tablesまたはlock-all-tablesが必要です(データベース間の整合性が必要な場合)。

それでは、ハイブリッドデータベース(MyISAMエンジンとInnoDBエンジンの両方を使用するデータベース)はどのようにバックアップされることになっていますか?

編集:

明確にするために、質問は次のように再定式化できます。

lock- [all-] tablesオプションはInnoDBテーブルの一貫したバックアップを保証しますか?

回答:


8

mysqldumpを使用すると--single-transaction、すべてのテーブルがInnoDBである場合にのみ安全に使用できます。それ以外の場合、バックアップに一貫性がありません。

ハイブリッドバックアップが必要な場合はlock-tables、バックアップ内のすべてのテーブル(デフォルト)が必要です。これは、すべてのエンジンにとって安全です。また、デフォルトのオプションによりバックアップが安全であることを確認できます。特別なフラグをオンにする必要はありません。

注:ハイブリッドミックスがある場合は、xtrabackupを参照してください。バックアップのMyISAMフェーズでのみロックされます。


これを投稿しようとしていましたが、あなたは私を倒しました。関連リンク:percona.com/doc/percona-xtrabackup/innobackupex/...
デレク・ダウニー

ロックテーブルが両方のエンジンの一貫したバックアップを保証することを確認していただきありがとうございます。現在、Zmanda Recovery Manager for MySQLを見ています(xtrabackupも見ていきます)。
Dimitre Radoulov、2009

Zmandaは他の全てのバックアップ方法の単なるGUIマネージャーです-xtrabackupの使用がサポートされていると確信しています。
Morgan Tocker、2011

こんにちは、@ Morgan Tockerです。Zmandaは、論理、RAW、スナップショットなどのさまざまなバックアップタイプを実際に実行する一連のスクリプト(zrm- *)も提供しています。私たちが管理するすべてのデータベースはハイブリッドであるため、別の製品を使用する価値はほとんどありません。バックアップ中にロックを回避することはできません。
Dimitre Radoulov、2011

この回答は、mysqldumpを使用して指定--lock-all-tablesすると、バックアップに一貫性があることを示しています。また、mysqldumpを 1回だけ実行する必要があります。これは、InnoDBとMyISAMの両方に対して同時に安全でしょう。
KajMagnus 2013年

2

状況に対する追加のアイデアとして、バックアップがスレーブから行われるマスタースレーブセットアップのセットアップにいくつかの考えを費やすことが役立つかもしれません。

InnoDBとMyISAMが混在するMySQL dbは、常に(すべての構成とすべてのバックアップツールで知っている限り)MyISAMテーブルをMyISAMバックアップフェーズでロックします。

このロックを回避するには、次の設定を使用します。

  • サーバーA:mysqlマスター
  • サーバーB:mysqlスレーブ(サーバーAに接続)

書き込みと読み取りはすべてサーバーA(マスター)に送信されます。サーバーB(スレーブ)はバックアップにのみ使用されます。スレーブに、MySQL Administratorなどの選択したバックアップツールまたはスクリプトをインストールします。

バックアップを構成します(例:夜間の毎日)。ロックはスレーブ上にあるため、スレーブがロックしている間ラグが生じますが、このラグはバックアップが終了してロックが開かれるとすぐに追いつきます。

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