backup

backupコマンドはクラスタのデータおよびメタデータのバックアップを作成します。

これにより、次のデータが単一のTARファイルにバックアップされ、後でクラスタのリストアに使用できます。
  • Studioのデータとメタデータ(Studioデータベースを含む)
  • Dgraphのデータとメタデータ(Dgraphデータベースを含む)
  • HDFSのサンプル・ファイル
  • 構成ファイル
部分的なバックアップはサポートされていません。さらに、一時的なデータ(Studioでの状態など)はバックアップに含まれません。この情報はクラスタがリストアされると失われます。
backupを実行する前に、次の事項を確認してください。
  • BDD_STUDIO_JDBC_USERNAMEおよびBDD_STUDIO_JDBC_PASSWORD環境変数が設定されている。設定されていない場合、実行時にスクリプトでこの情報が要求されます。
  • データベース・クライアントは、管理サーバーにインストールされています。MySQLデータベースの場合、これはMySQLクライアントになります。Oracle Databaseの場合、これはOracle Database Clientであり、管理者タイプでインストールする必要があります。インスタント・クライアントはサポートされません。
  • Oracleデータベースの場合、ORACLE_HOME環境変数は、sqlplus実行可能ファイルがある/binディレクトリより1つ上のディレクトリに設定されます。たとえば、sqlplus実行可能ファイルが/u01/app/oracle/product/11/2/0/dbhome/binにある場合、ORACLE_HOME/u01/app/oracle/product/11/2/0/dbhome/binに設定されます。
  • バックアップ操作に使用される一時ディレクトリは十分な空き容量を含みます。詳細は、次のbackupを参照してください。
注意: startstoprestartまたはrestoreが現在実行中の場合、backupは実行できません。
クラスタをバックアップするには、次を管理サーバーから実行します。
./bdd-admin.sh backup [option <arg>] <file>
ここで、<file>はバックアップTARファイルの絶対パスです。これは存在してはならず、その親ディレクトリは書込み可能である必要があります。

backupでは次のオプションがサポートされています。

オプション 説明
-o, --offline コールド・バックアップを実行します。クラスタが停止している場合、このオプションを使用します。このオプションが指定されない場合、スクリプトはホット・バックアップを実行します。

ホット・バックアップとコールド・バックアップの詳細は、後述の説明を参照してください。

-r, --repeat <num> 検証が失敗した場合にスクリプトがバックアップ・プロセスを繰り返す回数。これは、ホット・バックアップでのみ使用されます。

このオプションが指定されない場合、スクリプトはクラスタのバックアップの試行を1回行います。失敗した場合、スクリプトを再実行する必要があります。

検証の詳細は、後述の説明を参照してください。

-l, --local-tmp バックアップ操作時に使用される、管理サーバー上の一時ファイルの絶対パス。このオプションを指定しなかった場合、bdd.confBACKUP_LOCAL_TEMP_FOLDER_PATHで定義された場所が使用されます。
-d, --hdfs-tmp バックアップ操作時に使用される、HDFSの一時ファイルの絶対パス。このオプションを指定しなかった場合、bdd.confBACKUP_HDFS_TEMP_FOLDER_PATHで定義された場所が使用されます。
-v, --verbose デバッグ・メッセージを有効にします。

どのオプションも指定しない場合、スクリプトは、ホット・バックアップの実行の試行を1回行い、デバッグ・メッセージを出力しません。

クラスタのバックアップの詳細は、「BDDのバックアップ」を参照してください。

記憶域の要件

スクリプトの実行時に、使用する一時ディレクトリに十分な空き容量があることが検証されます。こうした要件が満たされる必要があるのは、バックアップ操作の間だけです。
  • バックアップTARファイルの宛先にはDgraphデータベース、HDFSサンドボックスおよびedpDataDir (edp.propertiesで定義)を同時に格納するのに十分な容量があります。
  • 管理サーバーのlocal-tmpディレクトリにも、3つの項目すべてを同時に格納するために十分な容量が必要です。
  • HDFS上のhdfs-tmpディレクトリは、これら3つの項目のうち同時に格納するのは1つだけのため、最も大きな項目を格納するのに十分な空き容量が含まれる必要があります。

これらの要件が満たされない場合、スクリプトは失敗します。

ホット・バックアップとコールド・バックアップ

backupはホット・バックアップとコールド・バックアップの両方を実行できます。
  • ホット・バックアップはクラスタの実行中に実行されます。特に、これは最初の管理対象サーバー(bdd.confMANAGED_SERVERSで定義)で実行され、そのノード上のコンポーネントが実行中である必要があります。これは、backupのデフォルトの動作です。
  • コールド・バックアップはクラスタの停止中に実行されます。コールド・バックアップを実行するには、-oオプションを含める必要があります。

検証

ホット・バックアップはクラスタの実行中に実行されるため、StudioとDgraphのデータベースおよびサンプル・ファイルのバックアップのデータに一貫性がなくなる可能性があります。たとえば、データベースのバックアップ後にDgraphデータベースに何かが追加されると、それらの場所のデータが異なることになります。

このことを回避するために、backupは、3つのすべてのバックアップのデータに一貫性があることを検証します。一貫性がない場合、操作は失敗します。

デフォルトでは、backupはデータのバックアップと検証を1回のみ行います。ただし、-r <num>オプションを指定することによって、このプロセスを繰り返すように構成できます。<num>は、バックアップおよび検証ステップを繰り返す回数です。これにより、操作が成功する可能性が高くなります。

注意: 最初に検証が失敗する可能性は低いため、プロセスを1、2回より多く繰り返す必要はありません。

次のコマンドは、ホット・バックアップをデバッグ・メッセージとともに実行します。
./bdd-admin.sh backup -v /tmp/bdd_backup1.tar
次のコマンドは、コールド・バックアップを実行します。
./bdd-admin.sh backup -o /tmp/bdd_backup2.tar