restore

restoreコマンドは、backupコマンドによって作成されたバックアップTARファイルから、BDDのデータおよびメタデータをリストアします。

注意: startstoprestartbackuppublish-configまたはreshape-nodesが現在実行されている場合、restoreは実行できません。
バックアップされたクラスタをリストアするには、次のコマンドをターゲット・クラスタの管理サーバーから実行します。
./bdd-admin.sh restore [option] <file>
ここで、<file>はバックアップ・ファイルの絶対パスです。

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

オプション 説明
-f, --full 完全リストアを実行します。BDDのすべてのデータおよび構成情報がリストアされます。このオプションを指定しない場合、スクリプトは構成が含まれないデータのみのリストアを実行します。詳細は、次のリストアのタイプを参照してください。
-l, --local-tmp <path> リストア操作時に使用される、管理サーバー上の一時ファイルの絶対パス。このオプションを指定しない場合は、BACKUP_LOCAL_TEMP_FOLDER_PATHが使用されます。

リストアする前に、この場所に十分な空き容量があることを確認します。詳細は、次の記憶域の要件を参照してください。

-d, --hdfs-tmp <path> リストア操作時に使用される、HDFSの一時ディレクトリの絶対パス。このオプションを指定しない場合は、BACKUP_HDFS_TEMP_FOLDER_PATHが使用されます。

リストアする前に、この場所に十分な空き容量があることを確認します。詳細は、次の記憶域の要件を参照してください。

-v, --verbose デバッグ・メッセージを有効にします。

restoreは、現在のDgraphデータベース・ディレクトリのコピーをDGRAPH_INDEX_DIR/.snapshot/old_copyに作成します。リストアされたバージョンが維持される場合は、これを削除する必要があります。

クラスタのリストア手順の詳細は、完全BDDリストアの実行および新しいクラスタへのBDDのリストアを参照してください。

前提条件

restoreを実行する前に、次の事項を確認してください。
  • backupコマンドによって作成された既存のバックアップTARファイルがある。
  • スクリプトにすべてのコンポーネント・データベースのユーザー名とパスワードを設定できます。実行時にこの情報を入力するか、次の環境変数に設定できます。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のみ)
  • ソース・クラスタとターゲット・クラスタの両方が、同じマイナー・バージョンのBDDを所有している(たとえば、1.4.0.37.xxxx)。
  • 両方のクラスタのデータベース・タイプが同じである(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に設定されます。
  • MySQLデータベースの場合、両方のクラスタでlower_case_table_namesシステム変数の値が同じである。同じではない場合は、現在のクラスタでそれに応じて値を変更します。そうしないと、リストアが失敗します。詳細は、MySQLデータベースのリストアのトラブルシューティングを参照してください。
  • リストア操作時に使用される一時ディレクトリは十分な空き容量を含みます。詳細は、次の記憶域の要件を参照してください。

リストアのタイプ

restoreは2つのタイプのリストア(データのみと完全)をサポートしています。

デフォルトでは、データのみのリストアが実行されます。次のものがターゲット・クラスタにリストアされます。
  • Dgraphデータベース
  • Studioおよびワークフロー・マネージャ・サービスによって使用されるデータベース
  • bdd.confHDFS_DP_USER_DIRによって定義されている場所のユーザー・サンドボックス・データ
  • $HDFS_DP_USER_DIR/edp/data/.collectionDataのHDFSサンプル・データ

データのみのリストアには構成情報は含められません。このため、前提条件で説明されている条件を満たすBDDクラスタで実行できます。バックアップされた元のクラスタと異なるクラスタにリストアでき、元のクラスタと異なるトポロジであってもかまいません。たとえば、8ノードのクラスタのデータを新しい6ノードのクラスタにリストアできます。

完全リストアでは、前述のデータおよび次の構成データがリストアされます。
  • $BDD_HOME/BDD_manager/conf/bdd.conf
  • Hadoop TLS/SSLの証明書(TLS/SSLが有効にされている場合)
  • portal-ext.propertiesおよびesconfig.propertiesのStudio構成
  • DP CLIのブラックリストおよびホワイトリスト(cli_blacklist.txtおよびcli_whitelist.txt)
  • OPSSファイルcwallet.ssoおよびsystem-jzn-data.xml

完全リストアには構成情報が含まれるため、バックアップされた元のクラスタに対してのみ実行できます。

記憶域の要件

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

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

次のコマンドは、/tmp/bdd_backup1.tarファイルを使用してデータのみのリストアを実行します。
./bdd-admin.sh restore /tmp/bdd_backup1.tar
次のコマンドは、/tmp/bdd_backup1.tarファイルを使用して完全リストアを実行します。
./bdd-admin.sh restore -f /tmp/bdd_backup1.tar