backup

backupコマンドは、クラスタのデータおよびメタデータのバックアップを単一のTARファイルに作成します。このファイルは、それらをリストアするために後で使用できます。

注意: startstoprestartrestorepublish-configまたはreshape-nodesが現在実行されている場合、backupは実行できません。
クラスタをバックアップするには、次を管理サーバーから実行します。
./bdd-admin.sh backup [option <arg>] <file>
ここで、<file>はバックアップTARファイルの絶対パスです。これは存在してはならず、その親ディレクトリは書込み可能である必要があります。

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

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

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

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

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

詳細は、検証を参照してください。

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

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

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

前提条件

backupを実行する前に、次の事項を確認してください。
  • スクリプトにすべてのコンポーネント・データベースのユーザー名とパスワードを設定できます。実行時にこの情報を入力するか、次の環境変数に設定できます。HDPを所有している場合は、Ambariのユーザー名とパスワードも入力する必要があります。
    • BDD_STUDIO_JDBC_USERNAME: Studioデータベースのユーザー名
    • BDD_STUDIO_JDBC_PASSWORD: Studioデータベースのパスワード
    • BDD_WORKFLOW_MANAGER_JDBC_USERNAME: ワークフロー・マネージャ・サービス・データベースのユーザー名
    • BDD_WORKFLOW_MANAGER_JDBC_PASSWORD: ワークフロー・マネージャ・サービス・データベースのパスワード
    • BDD_HADOOP_UI_USERNAME: Ambariのユーザー名(HDPのみ)
    • BDD_HADOOP_UI_PASSWORD: Ambariのパスワード(HDPのみ)
  • OracleまたはMySQLデータベースを保有している。Hypersonicはサポートされません。
  • データベース・クライアントは、管理サーバーにインストールされています。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に設定されます。
  • バックアップ操作に使用される一時ディレクトリは十分な空き容量を含みます。詳細は、次の記憶域の要件を参照してください。

バックアップされるデータ

次のデータがバックアップに含められます。
  • Dgraphデータベース
  • Studioおよびワークフロー・マネージャ・サービスによって使用されるデータベース
  • $BDD_HOME/BDD_manager/conf/bdd.confSANDBOX_PATHによって定義されているディレクトリにあるユーザー・サンドボックス・データ
  • $SANDBOX_PATH/edp/data/.swampDataのHDFSサンプル・データ
  • $BDD_HOME/BDD_manager/conf/bdd.conf
  • Hadoopサーバーの証明書(TLS/SSLが有効にされている場合)
  • portal-ext.propertiesおよびesconfig.propertiesのStudio構成
  • DP CLIのブラックリストおよびホワイトリスト(cli_blacklist.txtおよびcli_whitelist.txt)
  • OPSSファイルcwallet.ssoおよびsystem-jzn-data.xml

一時的なデータ(Studioでの状態など)はバックアップされません。この情報はクラスタがリストアされると失われます。

記憶域の要件

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

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

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

backupはホット・バックアップとコールド・バックアップの両方を実行できます。
  • ホット・バックアップはクラスタの実行中に実行されます。特に、これは最初の管理対象サーバー($BDD_HOME/BDD_manager/conf/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