バックアップを完了する前に、以下のトピックの情報を確認します。
MySQL Standard/Communityオプションを使用する予定の場合は、以下のガイドラインと詳細を確認してください。
ハイフンなどの特殊文字を含むデータベースが環境内に存在する場合、以下の制限事項に注意する必要があります。
• |
データベース名にハイフンが含まれると、MyISAMバックアップ方法がバージョン4.2で導入されたMysqldumpオプションに設定されている場合、MyISAMテーブルがバックアップされます。この場合、バックアップおよびリストアのパフォーマンスにマイナスとなる影響を及ぼす場合があります。 |
• |
MyISAMバックアップ方法にデフォルトの[テーブル・ファイルのロック&コピー]オプションを使用し、データベース名にハイフンが使用されていると、MyISAMテーブルはバックアップされません。これは、本プラグインがMySQLコマンドを迂回し、直接テーブル・ファイルのコピーを試行するためです。本プラグインは、テーブル・ファイルが特定できないことを示すエラー・メッセージを出力し、バックアップ・ジョブがセーブセットを作成することなく失敗します。 |
MIXEDバイナリ・ログ形式を使用する場合、MySQLではUSEステートメントの使用を強制しません。したがって、Questではデータベースを使用する全ユーザーおよびプログラムによって変更が加えられるテーブルは必ずUSEで選択したデータベース内に配置し、データベースを横断する更新は実行しないことを推奨します。このガイドラインが環境に適さない場合は、QuestではMIXEDのバイナリ・ログ形式を使用しないことを推奨しています。
重要: MIXEDバイナリ・ログ形式を使用すると、増分バックアップおよび差分バックアップのジョブは警告を発して終了します。 |
MIXEDバイナリ・ログ形式を使用している環境では、PITリカバリ中、バイナリ・ログのエントリが再生されないことがあります。リカバリ中、プラグインはmysqlbinlogに「‑‑database」オプションを付けて使用し、リストア・ジョブに選択したデータベースに関連するエントリのみを再生します。「--database」が使用されていない場合は、すべてのエントリが再生され、すべてのデータベースに影響します。MIXEDバイナリ・ログ形式を使用する場合、「--database」オプションを付けたmysqlbinlogで一部またはすべてのエントリが再生されない動作を見せる場合があります。詳しくは、https://dev.mysql.com/doc/refman/5.7/en/mysqlbinlog.html#option_mysqlbinlog_databaseを参照してください。
MIXEDバイナリ・ログ形式が「--database」オプションを使用して正常に動作するには、データベースに対する特定の更新のトランザクションが発行される際、そのデータベースがUSEステートメントで選択されていなければなりません。
増分バックアップまたは差分バックアップがリストアされず、mysqlbinlogがMySQL Serverの現在のバイナリ・ログに適用されると、同じ状況が発生します。このような状況は、バイナリ・ログの出力動作が原因で発生します。バックアップへのバイナリ・ログの格納方法がその原因ではありません。
重要: MySQLコマンド・プロンプトで生成されるトランザクションに対しても、変更を加えるテーブルが必ずUSEステートメントで指定されているデータベースに属していることを確認してください。また、スクリプト、プログラム、およびMySQL Serverのデータベースを利用する他のアプリケーションで生成されるトランザクションに対しても同様に適用してください。 |
MIXEDがリカバリ動作に与える影響について、以下にいくつか示します。
• |
例1:この例では、データの行がmy_databaseのmy_tableに挿入されます。USEステートメントはありません。このため、使用中のデータベースがデフォルトのデータベースになります(mysqlデータベースなど)。binlog_formatをMIXEDに設定した場合、mysqlbinlogで「--database my_database」オプションがバイナリ・ログに適用されると次のトランザクションは再生されません。 |
• |
例2:この例では、データの行がmy_databaseのmy_tableに挿入されます。USEステートメントがありますが、別のデータベースが指定されています。つまり、my_databaseはUSEステートメントで選択されていません。binlog_formatをMIXEDに設定した場合、mysqlbinlogで「--database my_database」オプションがバイナリ・ログに適用されると次のトランザクションは再生されません。 |
• |
例3:この例では、データの行がmy_databaseのmy_tableに挿入され、my_databaseがUSEステートメントで選択されています。Binlog_formatをMIXEDに設定した場合、mysqlbinlogで「--database my_database」オプションがバイナリ・ログに適用されると次のトランザクションが再生されます。 |
• |
例4:この例では、2つの挿入クエリを見てみます。1番目の挿入は、my_databaseに対して行われます。このデータベースはUSEステートメントで選択されているデータベースとは異なります。2番目の挿入は、my_databaseを選択しているUSEステートメントの範囲内で行われます。binlog_formatをMIXEDに設定した場合、1番目の挿入はUSEステートメントにmy_databaseが指定されていないため再生されません。2番目の挿入はUSEステートメントにmy_databaseが指定されているため再生されます。 |
[MySQL Enterpriseバックアップ]オプションを使用する場合、以下のガイドラインと情報について確認する必要があります。
• |
MySQL 5.6以降では、innodb_file_per_table設定オプションはデフォルトで有効化されています。innodb_file_per_tableオプションが無効化された状態で作成されたすべてのInnoDBテーブルは、InnoDBシステム・テーブルスペース内に格納されますが、バックアップから除外することはできません。InnoDBテーブルをテーブルスペース外に配置する必要がある場合、innodb_file_per_tableオプションを有効化した状態で、MySQL内でInnoDBテーブルを作成する必要があります。各.ibdファイルには、1つのテーブルのデータとインデックスのみが含まれます。 |
MySQLバックアップ戦略を定義する際、以下の点を明確にしておきます。
• |
[MySQL Standard/Community]オプションまたは[MySQL Enterpriseバックアップ]オプションのどちらを使用するか。環境に両方のバージョンを導入している場合でも、プラグインでは1つの計画のみを使用することができます。MEBベース方法またはmysqldumpベース方法のいずれかを使用します。両方を併用することはできません。 |
上記の点を明確にしておくと、実装するバックアップ・タイプおよび頻度を定義する際に役立ちます。
[MySQL Standard/Community]オプションを使用する場合、本プラグインはmysqldumpを使用して以下のタイプのバックアップを実行します。
• |
• |
各MySQLインスタンスのデータ保護要件に適したバックアップ・シーケンスを選択するには、まずこれらのバックアップの違いを理解する必要があります。
[MySQL Standard/Community]オプション用フル・バックアップの場合、本プラグインはmysqldumpユーティリティを使用して、インスタンスに含まれるすべてのデータベースをバックアップします。フル・バックアップはほぼすべてのリストア・シナリオの起点になるため、あらゆるバックアップ戦略の基盤となります。プラグインで生成されたフル・バックアップを使用して、インスタンス全体、個々または複数のデータベース、個々または複数のテーブルをリストアできます。
[フルまたはインクリメンタル・バックアップ後、バイナリ・ログをパージ]オプションを使用して、フルまたは増分バックアップ後にバイナリ・ログをパージする必要があります。[MySQLレプリケーションを可能にする]が無効化され、[特定時点リカバリを可能にする]が有効化されている標準のMySQLサーバー設定でプラグインを使用する場合、このオプションはデフォルトで有効化されています。プラグインをクラスタに接続すると、このオプションは無効になります。バイナリ・ログのパージはプラグインの外で管理する必要があります。
[フルまたはインクリメンタル・バックアップ後、バイナリ・ログをパージ]オプションを選択しない場合、プラグインは設定ファイルで最終バックアップのログを追跡します。これにより必要に応じてバイナリ・ログを手動でパージすることができます。例えば、MySQLレプリケーション環境で、バイナリ・ログがスレーブ・インスタンスにレプリケートされるまで、バイナリ・ログをマスタ・インスタンスからパージしたくない場合などは、ユーザーはバイナリ・ログを手動でパージする必要があります。
MySQLの増分バックアップを実行するには、バイナリ・ログを有効にする「-log-bin」オプションを使用してMySQLインスタンスを開始する必要があります。この手順は、「MySQLサーバーでのバイナリ・ログの有効化(MySQL Standard/Communityオプションのみ)」で概説しています。詳しくは、『MySQLリファレンス・マニュアル』のバイナリ・ログに関するセクションを参照してください。
上記で説明したように、[フルまたはインクリメンタル・バックアップ後、バイナリ・ログをパージ]オプションを使用して、フルまたは増分バックアップ後にバイナリ・ログをパージする必要があります。このオプションを使用しない場合は、本プラグインは設定ファイルで最終バックアップのログを追跡します。これにより必要に応じてバイナリ・ログを手動でパージすることができます。
差分バックアップでは、最後のフルまたは増分バックアップ以降に生成されたバイナリ(トランザクション)・ログをバックアップします。ただし、この形式のバックアップでは、完了時にバイナリ・ログがパージされません。このため、以降の差分バックアップのサイズが大きくなり、その時間も長くなります。各差分バックアップには、前の差分バックアップにも含まれていたバイナリ・ログだけでなく、前の差分バックアップ以降に生成されたバイナリ・ログも含まれることになるため、サイズが大きくなり、その時間も長くなります。たとえば、月曜日から金曜日までの差分バックアップを伴って、日曜日にフル・バックアップの実行がスケジュールされている場合、月曜日の差分には日曜日のフル・バックアップ以降生成されたトランザクション・ログ・ファイルが含まれます。一方、火曜日の差分には、月曜日に生成されたバイナリ・ログ・ファイルおよび火曜日に生成されたバイナリ・ログ・ファイルが含まれます。水曜日の差分バックアップには、月曜日、火曜日、および水曜日のバイナリ・ログが含まれる、というようになります。
差分バックアップを実行するには、バイナリ・ログを有効にする「-log-bin」オプションを使用してMySQLインスタンスを開始する必要があります。この手順は、「MySQLサーバーでのバイナリ・ログの有効化(MySQL Standard/Communityオプションのみ)」で概説しています。詳しくは、『MySQLリファレンス・マニュアル』のバイナリ・ログに関するセクションを参照してください。
場合によっては、データベース全体の包括的なバックアップおよびリストア手順に影響を与えることなく、特殊な目的でバックアップを実行しなければならないことがあります。たとえば、バックアップをテスト環境のソースにしたり、レプリケーション・スレーブ・インスタンスの初期同期用に使用する場合などです。個々のデータベース/テーブル・コピーのみのバックアップは、このような特殊な目的のために設計されており、MySQL環境をコピーすることができます。コピーのみのバックアップは、設定されたバックアップ・シーケンスから独立しているため、フル、増分、または差分バックアップのリカバリ可能性には影響しません。ただし、フル・バックアップの代わりとして使用することはできません。
個々のデータベース/テーブル・コピーのみのバックアップで説明したとおり、データベース・コピー全体のバックアップ・オプションは、選択したデータベースに該当する全InnoDBテーブルなど、選択したMySQLデータベースのコピーを作成するため、特殊な目的の場合にのみ使用します。作成されるコピーのバックアップは、設定されている複数のバックアップのシーケンスとは独立しているため、フル、増分、または差分バックアップのリカバリ可能性には影響しません。ただし、フル・バックアップの代わりとして使用することはできません。
[MySQL Enterpriseバックアップ]オプションについて、本プラグインは選択されたすべてのデータベース・オブジェクトに対してmysqlbackupコマンドを1度実行し、フルおよび増分タイプのバックアップをアーカイブします。フル、増分、およびTTS。
[MySQL Enterpriseバックアップ]オプションのフル・バックアップでは、プラグインはmysqlbackupユーティリティまたは適用できるNetVault Backupスクリプトを使用して、インスタンスに含まれるすべての選択データベース・オブジェクトをバックアップします。フル・バックアップはほぼすべてのリストア・シナリオの起点になるため、あらゆるバックアップ戦略の基盤となります。プラグインで生成されたフル・バックアップを使用して、インスタンス全体、個々または複数のデータベース、個々または複数のテーブルをリストアできます。
TTSバックアップを実行する場合、プラグインはフル・バックアップを実行し、「--use-tts」MySQLオプションを追加します。
TTSバックアップを生成する場合は、次の制限に注意してください。
• |
Innodb_file_per_tableオプションを有効にして作成したテーブルのみがバックアップに含まれます。 |
「--use-tts」オプションを使用する際の制限については、https://dev.mysql.com/doc/mysql-enterprise-backup/4.0/en/backup-partial-options.htmlを参照してください。
© ALL RIGHTS RESERVED. Terms of Use Privacy Cookie Preference Center