バックアップを完了する前に、以下のトピックの情報を確認します。
[MySQL Standard/Community]オプションを使用する場合、以下のガイドラインと情報について確認する必要があります。
ハイフンなどの特殊文字を含むデータベースが環境内に存在する場合、以下の制限事項に注意する必要があります。
• |
データベース名にハイフンが含まれると、MyISAMバックアップ方法がバージョン4.2で導入されたMysqldumpオプションに設定されている場合、MyISAMテーブルがバックアップされます。この場合、バックアップおよびリストアのパフォーマンスにマイナスとなる影響を及ぼす場合があります。 |
• |
MyISAMバックアップ方法にデフォルトの[テーブル・ファイルのロック&コピー]オプションを使用し、データベース名にハイフンが使用されていると、MyISAMテーブルはバックアップされません。これは、本プラグインがMySQLコマンドを迂回し、直接テーブル・ファイルのコピーを試行するためです。本プラグインは、テーブル・ファイルが特定できないことを示すエラー・メッセージを出力し、バックアップ・ジョブがセーブセットを作成することなく失敗します。 |
MIXEDバイナリ・ログ形式が使用されている場合、MySQLはUSEステートメントの使用を強制しません。したがって、Questでは、すべてのデータベース・ユーザーとプログラムで変更されたテーブルがUSEによって選択されたデータベース内に存在すること、およびクロスデータベースの更新が実行されないことを確認することをお勧めします。このガイドラインがご使用の環境に適していない場合は、Questでは、MIXEDバイナリ・ログ形式を使用しないことをお勧めします。
ご使用の環境でMIXEDバイナリ・ログ形式が使用されている場合、PITリカバリ中にバイナリ・ログ・エントリが再生されないことがあります。リカバリ中、プラグインは‑‑databaseオプションを指定してmysqlbinlogを使用し、リストア・ジョブで選択したデータベースに関連するエントリだけを再生します。‑‑databaseが使用されない場合、すべてのエントリが再生され、すべてのデータベースに影響します。MIXEDバイナリ・ログ形式を使用する場合、‑‑databaseオプションを使用したmysqlbinlogが一部またはすべてのエントリを再生しないようにエントリが書き込まれます。詳細は、「https://dev.mysql.com/doc/refman/5.7/en/mysqlbinlog.html#option_mysqlbinlog_database」を参照してください。
--databaseオプションを使用したMIXEDバイナリ・ログ形式が正しく機能するためには、データベースを選択するUSEステートメントの下で、データベースに対する特定の更新のすべてのトランザクションを実行する必要があります。
増分または差分バックアップがリストアされず、mysqlbinlogがMySQLサーバーからの現在のバイナリ・ログを適用した場合も、同じ状況が発生します。この状況は、バイナリ・ログがバックアップに保存された方法ではなく、バイナリ・ログが書き込まれた方法によって発生します。
重要: 変更するテーブルが、USEステートメントで指定されたデータベースに属していれば、MySQLコマンド・プロンプトで生成されたトランザクションに適用されます。また、MySQLサーバーのデータベースと対話するスクリプト、プログラム、その他のアプリケーションによって生成されたトランザクションにも適用されます。 |
次の例では、MIXEDがリカバリ動作にどのように影響するかをさまざまな状況ごとに示しています。
• |
例1:この例では、データ行がmy_databaseのmy_tableに挿入されます。USEステートメントはないため、使用中のデータベースはmysqlデータベースなどのデフォルト・データベースです。binlog_formatがMIXEDに設定されている場合、mysqlbinlogがバイナリ・ログに‑-database my_databaseオプションを適用すると、次のトランザクションが再生されません。 |
• |
例2:この例では、データ行がmy_databaseのmy_tableに挿入されます。USEステートメントは存在しますが、別のデータベースが指定されています。つまり、USEステートメントでmy_databasが選択されていません。binlog_formatがMIXEDに設定されている場合、mysqlbinlogがバイナリ・ログに‑-database my_databaseオプションを適用すると、次のトランザクションが再生されません。 |
• |
例3:この例では、データ行がmy_databaseのmy_tableに挿入され、USEステートメントでmy_databaseが選択されています。binlog_formatがMIXEDに設定されている場合、mysqlbinlogがバイナリ・ログに‑-database my_databaseオプションを適用すると、次のトランザクションが再生されます。 |
• |
例4:この例では、2つの挿入クエリがあります。最初の挿入は、USEステートメントで選択されたデータベースとは異なるmy_databaseに対して行われます。2番目の挿入は、USEステートメントで選択されたmy_databaseの範囲内で行われます。binlog_formatがMIXEDに設定されている場合、my_databaseがUSEステートメントで指定されていないため、最初の挿入は再生されません。しかし、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. 使用条款 隐私 Cookie Preference Center