バックアップのベストプラクティス
コントローラの完全なバックアップを実行するには、次の 3 つのディレクトリをバックアップする必要があります。
- コントローラのインストールディレクトリ。
- MySQL datadir。
- Glassfish で使用する JRE ディレクトリ。
多くの場合、コントローラのデプロイによって大量のデータが生成されますが、これらのデータを扱うにあたって、毎晩システム全体をバックアップすることは現実的ではありません。バックアップを実行するコストと、データ損失のリスクとのバランスをとるため、一般的なバックアップ戦略では、異なる時間帯に異なる範囲でシステムをバックアップすることが求められます。つまり、部分バックアップを頻繁に実行し、完全バックアップの頻度を抑えることができます。
コントローラのバックアップの範囲は、以下のレベルに分類されます。
- レベル 1:インストール環境のみの簡易バックアップ。
- レベル 2:ビッグデータテーブルを除き、インストールに関連付けられたすべてのメタデータを対象とするメタデータバックアップ。
- レベル3: /dataディレクトリのコールドバックアップを実行するか、サードパーティ製のツールを使用してホットバックアップを実行することによるすべてのデータのバックアップ。
考えられるバックアップ戦略としては、レベル1とレベル2のバックアップを非常に頻繁に、たとえば毎晩実行し、レベル1とレベル3のバックアップを週に1回程度実行します。レベル 1 または 2 のバックアップの実行に加えて、定期的に mysqldump を使用して Enterprise Console のデータもバックアップする必要があります。レベル 3 のバックアップでは、Enterprise Console のデータもバックアップされます。詳細については、「Enterprise Console のバックアップと復元No Content found for /db/organizations/splunk/repositories/portal-production/content/documents/AppDynamics/on_premises/c_enterprise_console_back_up_and_restore.dita」を参照してください。
簡易バックアップ(レベル1)
簡易バックアップは、db.cnf や domain.xml といったコントローラの構成ファイルを対象としています。このタイプのバックアップにより、マシンに障害が発生した場合もコントローラを再構成する必要がありません。
このタイプのバックアップを実行するには、データディレクトリを除くコントローラのインストールディレクトリをすべてコピーします。
簡易バックアップを実行する際、特にコントローラのアップグレードを実行する前には、データディレクトリを除くコントローラホーム全体をコピーすることをおすすめしますが、サイト固有の構成ファイルのみをコピーしたい場合もあります。たとえば、既存のコントローラ構成を新しいコントローラインストールに移行する場合などです。これらのファイルのリストについては、「コントローラの移行」を参照してください。
メタデータバックアップ(レベル2)
メタデータバックアップでは、コントローラがモニタリングする環境をカプセル化したデータをエクスポートします。メタデータには、コントローラがモニタリングするアプリケーション、ビジネストランザクション、ポリシーなどが定義されています。「ランタイムデータ」と見なされるもの、つまりモニタリング環境で生成されたメトリック、スナップショット、イベント、トップサマリー統計(トップSQL、トップURLなど)が含まれるビッグデータテーブルは含まれません。メタデータをバックアップすることで、障害が発生した場合にコントローラでモニタリングしているアプリケーションを再設定する必要がなくなります。
このタイプのバックアップを実行するには:
- 「mysqldump を使用したコントローラのバックアップ」に記載されているスクリプトを実行します。
- 次のコピーを指定して拡張します。
- コントローラの Java キーストア(600 バイトのファイル):
<controller install>/.appd.scskeystore - Enterprise Console キーストア:
platform-admin/.appd.scs
- コントローラの Java キーストア(600 バイトのファイル):
完全バックアップ(レベル3)
完全バックアップは、コントローラのインストールに関連付けられているランタイムデータをすべて保存します。このバックアップにより、実際のメトリックデータ、スナップショットなどがキャプチャされます。
Percona XtraBackupといった、一部のサードパーティー製バックアップツールはトランザクションに依存しないため、システムのホットバックアップを取得できます(つまり、コントローラのデータベースの実行中にバックアップします)。
完全バックアップは以下のいずれかの方法で実行できます。
- 3 つのディレクトリすべて(コントローラのインストールディレクトリ、MySQL datadir、および JRE ディレクトリ)のコールドバックアップ。コールドバックアップを実行するには、コントローラのアプリサーバーとデータベースをシャットダウンします。次に、
cp -rコマンド、tar ユーティリティ、rsync などを使用して、3 つのディレクトリのコピーを追加で作成します。 - ホットバックアップ。これは、コントローラが実行中であることを意味します。
- コントローラの高可用性設定がある場合は、セカンダリコントローラのデータベースをシャットダウンできます。その後、セカンダリコントローラでコールドバックアップを実行し、データベースを再起動できます。
-
コントローラの高可用性セットアップがない場合は、Percona XtraBackup などのサードパーティツールを使用して MySQL datadir をバックアップします。次に、
cp -rコマンド、tar ユーティリティ、rsync などを使用してコントローラのインストールディレクトリと JRE ディレクトリをバックアップします。警告:Percona XtraBackup は、ビジー状態のコントローラのホットバックアップに失敗する可能性があります。このエラーを回避するには、次の操作を行います。
- 代わりにセカンダリコントローラをバックアップする(存在する場合)。
- MySQL のログサイズを増やす。
- コントローラがあまりビジー状態でないときにホットバックアップを実行する。