NetBackup™ for MongoDB 管理者ガイド

Last Published:
Product(s): NetBackup & Alta Data Protection (10.3)
  1. NetBackup を使用した MongoDB の保護の概要
    1.  
      NetBackup を使用したシャード、レプリカセット、スタンドアロン MongoDB クラスタの保護について
    2.  
      NetBackup を使用した MongoDB データの保護
    3.  
      NetBackup for MongoDB の用語
    4.  
      制限事項
    5.  
      MongoDB を保護するための前提条件とベストプラクティス
  2. MongoDB Plug-in for NetBackup の前提条件の検証
    1.  
      オペレーティングシステムとプラットフォームの互換性
    2.  
      MongoDB プラグイン構成の前提条件
  3. NetBackup for MongoDB の構成
    1.  
      MongoDB 構成ツールについて
    2.  
      mongodb.conf ファイルを手動で作成するための前提条件
    3. mongodb.conf ファイルを使用する MongoDB のためのバックアップオプションの設定
      1.  
        NetBackup プライマリサーバーの許可リストに構成ファイルのパスを含める
    4.  
      MongoDB ノードの RSA 鍵の取得
    5. NetBackup での MongoDB クレデンシャルの追加
      1.  
        クレデンシャル設定ファイルについて
      2.  
        MongoDB クレデンシャルを NetBackup に追加するには
      3.  
        データを保護するための MongoDB 役割について
    6.  
      root 以外のユーザーのホストユーザーとしての使用
    7. バックアップホストの管理
      1.  
        NetBackup プライマリサーバーの許可リストに NetBackup クライアントを含める
  4. NetBackup を使用した MongoDB のバックアップ
    1. MongoDB データのバックアップ
      1.  
        MongoDB クラスタのバックアップ
    2.  
      MongoDB クラスタをバックアップするための前提条件
    3. MongoDB プラグイン用の NetBackup ポリシーの構成
      1.  
        Web UI を使用した、MongoDB クラスタ用 BigData バックアップポリシーの作成
  5. NetBackup を使用した MongoDB データのリストアまたはリカバリ
    1.  
      MongoDB データのリストア
    2.  
      MongoDB のリストアおよびリカバリの前提条件
    3.  
      同じクラスタに MongoDB データをリストアするための NetBackup Web UI の使用
    4.  
      代替クラスタで MongoDB データをリストアするための NetBackup Web UI の使用
    5.  
      代替クライアントでの高可用性の設定での MongoDB データのリストアについて
    6.  
      リカバリプロセス後の手動の手順
  6. トラブルシューティング
    1.  
      NetBackup for MongoDB のデバッグログについて
    2.  
      NetBackup を使用した MongoDB の保護に関する既知の制限事項
  7. 付録 A. 追加情報
    1.  
      MongoDB のクレデンシャルを追加および更新するための MongoDB 構成ユーティリティのサンプルワークフロー
  8.  
    索引

NetBackup を使用した MongoDB の保護に関する既知の制限事項

次の表に、NetBackup を使用した MongoDB の保護に関する既知の制限事項を示します。

表: 既知の制限事項

制限事項

回避方法

リストアとリカバリ操作を開始する前に、複数の mongos プロセスを含む高可用性シャード MongoDB クラスタでは、構成サーバーレプリカセット (CSRS) イメージのリストア先で mongos プロセスのみが実行されている必要があります。

リストア操作とリカバリ操作を開始する前に、クラスタ内の他の mongos プロセスを手動で停止します。

リカバリ後、リカバリされたクラスタを指すように、mongos サービスを再構成します。

1 つを除くすべてのノードで mongos プロセスが停止していない場合、追加の mongos プロセスがリストアおよびリカバリ操作と競合することがあり、リストアされるデータが mongos への接続を介してアクセス不能になる可能性があります。

リストアとリカバリを開始する前に mongos プロセスが停止していない場合は、リカバリ後に、古い mongos プロセスを手動で停止して、クラスタ内のすべてのリカバリされた mongodmongos プロセスを再起動する必要があります。

構成ファイルへの絶対パスを使用して、MongoDB プロセスを開始する必要があります。証明書ファイルと CA ファイルの絶対パスも使用する必要があります。CA ファイル、PEM ファイル、鍵ファイルの絶対パスも指定する必要があります。

該当なし

バックアップの変更中に存在した認証形式を変更し、別の認証を必要とするリカバリジョブを実行すると、リカバリ処理が失敗することがあります。

リカバリ中の認証形式が、バックアップ中に使用した形式と同じであることを確認します。

ボリュームグループまたは論理ボリュームの名前を変更した場合、バックアップの実行後、後続のバックアップが失敗することがあります。

該当なし

リカバリ時には、1 つの完全バックアップイメージとそれに関連する後続の増分イメージだけが選択されていることを確認します。複数のイメージを選択した場合、リストアされたデータが破損する可能性があるため、リカバリが失敗することがあります。

該当なし

MongoDB クラスタをリカバリした後、リストアされたノードのクラスタ情報のみが利用可能です。

リカバリ処理が完了したら、クラスタにセカンダリノードを手動で追加します。

詳しくは、次の記事を参照してください。add-members-to-the-replica-set

バックアップ処理中に、MongoDB インポート操作が実行されていると、応答しなくなる可能性があります。バックアップまたはリストア処理中は、MongoDB インポート操作を回避します。

該当なし

リストア処理中に、[リストアは正常に開始されました (The restore was successfully initiated)]というポップアップが表示されますが、リストアジョブは開始されません。

この問題は、Web UI でソースクライアントと宛先クライアントの両方にアプリケーションサーバーを入力した場合に発生します。

ソースクライアントと宛先クライアントが正しく入力されていることを確認します。ソースクライアントはアプリケーションサーバー、宛先クライアントはバックアップホストである必要があります。

環境に DNAT がある場合は、バックアップホストまたはリストアホストとすべての MongoDB ノードが同じプライベートネットワークにあることを確認します。

該当なし

MongoDB 用 NetBackup プラグインでは、コマンドライン bprestore のオプション -w および -print_jobid はサポートされません。

該当なし

MongoDB のリストアは、バックアップホストからはサポートされません。MongoDB のすべてのリストア操作は、NetBackup プライマリから開始する必要があります。

該当なし

リストアジョブの送信にリストアジョブが表示されない場合は、宛先ノードに MongoDB プラグインがインストールされているかどうかを確認します。

該当なし

非 LVM の場所に MongoDB データベースをリストアして、この非 LVM の場所からバックアップを作成しようとすると、バックアップは失敗します。

LVM の場所にデータをリストアし、リストアされたデータのバックアップの作成を試行します。

MongoDB 用 NetBackup プラグインでは、データパスフォルダ内のハードリンクまたはソフトリンクはサポートされません。異なる論理ボリュームまたは非論理ボリュームの場所を指すハードリンクまたはソフトリンクを追加しないでください。

NetBackup は、データパスフォルダにハードリンクまたはソフトリンクがある場合、バックアップ時にデータが一貫していることを保証できません。リストア処理時に、ハードリンクまたはソフトリンクはリンクではなくフォルダとして作成されます。

該当なし

MongoDB のリストアおよびリカバリ処理中に子のリストアジョブをキャンセルすると、シンクライアント (mdbserver) はすぐには削除されません。シンクライアントは、次のリストア操作の後に削除されます。

該当なし

MongoDB のリストアが失敗し、エラー 2850 が表示されます。

次の解決策の 1 つまたは複数を試します。

  • 宛先ホストとポートが有効であり、tpconfig コマンドとクレデンシャルファイルを使用してクレデンシャルが設定されていることを確認します。詳しくは tar ログを参照してください。

  • ターゲットデータベースのパスが存在せず、root 以外のユーザーに対して十分な権限がありません。

    回避方法:

    ターゲットデータベースのパスが存在し、root 以外のユーザーに対して十分な権限があることを確認します。

  • 名前変更および filelist ファイルに特殊文字が含まれないことを確認します。また、プライマリサーバーが Windows マシンの場合は、ファイルの EOL 変換が Unix Style (LF) であることを確認してください。

リカバリ後に、MongoDB シャードノードを手動で再起動できず、MongoDB のログに次のエラーが表示されます。

NoSuchKey: Missing expected field "configsvrConnectionString"

問題が発生した MongoDB シャードで、保守モードで MongoDB を起動し、管理データベースの system.version コレクションで次の方法を実行します。

use admin
db.system.version.deleteOne
( { _id: "minOpTimeRecovery" } )

1 つ以上のレプリカセットを含むリストア操作とリカバリ操作では、rs.config() によって提供されるデフォルトの "cfg.members[#].host" 値を使用して、レプリカセットメンバーがレプリカセットにリストアされます。

この値が以前にデフォルト値から更新された場合、リストアおよびリカバリが完了した後に、元の構成と一致するようにこの値を更新する (たとえば、短縮名から FQDN など) 必要がある場合があります。

回避方法:

  1. レプリカセットの MongoDB クラスタにログインします。

  2. 次のコマンドを使用して、構成を確認します。

    rs.conf()

  3. 次のコマンドを使用して、レプリカセットの構成を更新します。

    Update configuration for replica set member 0:
    cfg = rs.conf();
    cfg.members[0].host = '<hostname.domain.com>:
    <port-number>';
    rs.reconfig(cfg)
  4. 次のコマンドを使用して、変更内容を確認します。

    rs.conf()

  5. その他のレプリカセットとメンバー、またはレプリカセットメンバーのみに対し、手順を繰り返します。

バックアップジョブが失敗し、次のエラーコードが表示されます。

  • (50) クライアントのプロセスは異常終了しました (client process aborted)

  • (1) 要求された操作は部分的に成功しました。 (The requested operation was partially successful.)

  • (112) ファイルリストでファイルが指定されていません (no files specified in the file list)

同じ MongoDB クラスタについて、増分バックアップのバックアップ処理時間が異なることを確認します。同じ MongoDB クラスタの増分バックアップでは、バックアップ処理時間が互いに重複しないようにする必要があります。

mdbserver の場所、oplog の場所、スナップショットのマウントの場所に対して権限が適切に設定されていることを確認します。詳しくは、root 以外のユーザーのホストユーザーとしての使用を参照してください。

シャード MongoDB クラスタ環境で、112 エラーは、バックアップポリシーで定義されたクライアントで mongos プロセスが実行されていないことを示す場合があります。

また、エラー 112 は、複数のバックアップホストの同じホスト名が BigData ポリシーに追加されていることを示す場合もあります。バックアップ操作を実行している複数のバックアップホストに対して、一意のホスト名を使用します。

リストアおよびリカバリ操作の後に、mongod サービスまたは mongos サービス (service mongod stop または service mongod restart) を停止して再起動しようとすると、コマンドは失敗します。

このエラーは、mongod プロセスまたは mongos プロセスが、service コマンドまたは systemctl コマンドを使用してサービスとして起動され、直接コマンドを使用していない場合に発生します。

回避方法:

別の方法を使用して、mongod サービスまたは mongos サービスを停止します。たとえば、mongod -f /etc/mongod.conf --shutdownkill <PID> などです。サービスを停止した後、service コマンドまたは systemctl コマンドを再び使用できます。

メモ:

リストアとリカバリの後でサービスを停止すると、.pid ファイルまたは .sock ファイルは、mongod プロセスまたは mongos プロセスを終了するときにそのまま残ります。mongod サービスまたは mongos サービスがシャットダウン後に開始されない場合は、ファイルを削除する必要があります。

.sock ファイルのデフォルトの場所は /tmp です。

.pid ファイルのデフォルトの場所は /var/run/mongodb/ です。

.bashrc で出力を生成するコマンドが追加された場合、バックアップ操作は失敗します。

バックアップはエラー 6646 で失敗し、次のエラーが表示されます。

エラー: サーバーと通信できません。(Unable to communicate with the server.)

.bashrc (echo またはその他の出力生成コマンド) で出力が生成されないことを確認します。シェルが非対話型である場合、出力に STDERR または STDOUT を返すことはできません。

2 つの完全バックアップイメージを選択し、2 つの完全バックアップイメージの間の指定した時点のイメージにリストアしようとすると、最新の完全バックアップイメージがリストアされます。

回避方法:

リストアおよびリカバリ操作中は、複数の完全バックアップイメージを選択しないでください。

指定した時点へのリカバリを効果的に行うには、より短い期間で差分増分バックアップを実行します。

アクティビティモニターでリストアジョブの進行状況を表示できません。

回避方法:

リストアホストとしてプライマリ以外のサーバーを使用する複合リストアジョブの場合、[タスクリストの更新 (Update Task List)]ボタンを使用して、アクティビティモニターのリストアジョブの進行状況を表示する必要があります。

バックアップが次のエラーで失敗します。

(6625) バックアップホストは、操作を実行する権限がないか、アプリケーションサーバーとの接続を確立できません。(The backup host is either unauthorized to complete the operation or it is unable to establish a connection with the application server.)

回避方法:

MongoDB がインストールされたサーバーで、/etc/ssh/sshd_config ファイルで PasswordAuthentication が無効になっていないことを確認します。

sudo service sshd restart コマンドを実行します。

バックアップが次のエラーで失敗します。

(6646) サーバーと通信できません。(Unable to communicate with the server.)

回避方法:

バックアップホストが、mongodb.conf ファイルまたはデフォルトの mdbserver_port (11000) に定義されているポートにアクセスできることを確認します。

次の理由により、MongoDB サーバーのシンクライアントファイルのコピー中にエラーが発生する場合があります。

  • MongoDB サーバーとの接続の問題

  • シンクライアントファイルをコピーするための場所に対する権限がユーザーに付与されていない

次のエラーが mdbserver ログに表示されます。

error-sudo: sorry, you must have a tty to run sudo

回避方法:

  • requiretty オプションをグローバルに無効にするには、sudoersファイル内で、Defaults requirettyDefaults !requiretty に置き換えます。この処理によって、グローバルの sudo 構成が変更されます。

  • ユーザー、グループまたはコマンドの sudo 構成を変更できます。MongoDB がインストールされているサーバーで、sudoers ファイルにホストユーザーまたはグループ、またはコマンドを追加します。

    Defaults /path/to/my/bin !requiretty を追加します。

    Default <host_user> !requiretty を追加します。

nbaapireq_handler ログフォルダが、mklogdir コマンドを実行した後も Flex コンテナに作成されません。

回避方法:

Flex アプライアンスがバージョン 8.1.2 から 8.2 にアップグレードされ、Flex メディアサーバーがバックアップホストとして使用されている場合、MongoDB プラグインのリストアログにログを記録するために、nbaapireq_handler フォルダが /usr/openv/netbackup/logs/ ディレクトリ内に作成されます。

free_space_percentage_snapshot パラメータによって記述されるスナップショットサイズは、MongoDB クラスタサイズに従って設定する必要があり、十分な大きさである必要があります。これらの条件が満たされない場合、バックアップは失敗し、次のエラーが表示されます。

invalid command parameter (20)

MongoDB クラスタで free_space_percentage_snapshot 値を検証します。

バックアップが次のエラーで失敗します。

(13) メディアのファイルの読み込みに失敗しました (file read failed for Media)

次のことを確認します。

  • プライマリサーバー上の NetBackup のバージョンが最新である。

  • メディアサーバーの NetBackup バージョンはプライマリサーバーと同じだが、バックアップホストの NetBackup クライアントのバージョン以降のバージョンである。

  • バックアップホストの NetBackup クライアントバージョンが、メディアサーバーと同じかそれよりも古いバージョンである。

mdb_progress_loglevel パラメータが MongoDB 構成ツールから見つかりません。

mdb_progress_loglevel パラメータを変更するには、mongodb.conf ファイルが MongoDB 構成ツールによって作成された後に更新します。

詳しくは、『MongoDB 管理者ガイド』を参照してください。

スナップショットが削除されず、古い mdbserver インスタンスが表示されます。このシナリオでは、バックアップ中に Cannot lstat エラーが発生するか、バックアップが部分的に成功する可能性があります。

mongodb.conf ファイル内の次のパラメータの構成設定を変更します。

  • cleanup_time_in_min

  • mdbserver_timeout_min

次回の完全バックアップスケジュールまたは増分バックアップスケジュールの前に、mdbserver の無効なスナップショットと無効なインスタンスが消去されるように値を設定します。

バックアップホストに 8.3 より前のバージョンの NetBackup があり、プライマリサーバーとメディアサーバーに NetBackup の最新バージョンがある場合、次の無効なエラーコードが各種シナリオで表示されることがあります。

13302、13303、13304、13305、13306、13307、13308、13309、13310、13311、13312、13313、13314、13315

回避方法:

実際のシナリオおよび推奨処置に対して無効なエラーコードが表示された場合は、対応する次の実際のエラーコードのリストを参照してください。

  • 無効なエラーコード: 13302

    実際のエラー: 6724

    メッセージ: リストアするノード数が無効です。(Restore node count is invalid.)

  • 無効なエラーコード: 13303

    実際のエラー: 6725

    メッセージ: MongoDB レプリカセットの情報が見つかりません。(Unable to find information about the MongoDB replica set.)

  • 無効なエラーコード: 13304

    実際のエラー: 6704

    エラー: メッセージ: 1 つのレプリカセットで複数の MongoDB ノードをリストアすることは無効です。(Restoring multiple MongoDB nodes on one replica set is invalid.)

  • 無効なエラーコード: 13305

    実際のエラー: 6705

    メッセージ: アービターノードの MongoDB データをリストアすることは無効です。(Restoring MongoDB data on an arbiter node is invalid.)

  • 無効なエラーコード: 13306

    実際のエラー: 6706

    メッセージ: 検出したシャードはドレイン状態のため、バックアップを続行できません。(A discovered shard was found in drain state, cannot proceed with backup.)

  • 無効なエラーコード: 13307

    実際のエラー: 6707

    メッセージ: サポート対象外の MongoDB ストレージエンジンが検出されました。(An unsupported MongoDB storage engine is detected.)

  • 無効なエラーコード: 13308

    実際のエラー: 6708

    メッセージ: コマンド出力を解析できません。(Unable to parse command output)

  • 無効なエラーコード: 13309

    実際のエラー: 6709

    メッセージ: コマンドを実行できません。(Unable to run the command.)

  • 無効なエラーコード: 13310

    実際のエラー: 6710

    メッセージ: データベースのパスに WiredTiger ログファイルがあるためリカバリの事前チェックに失敗しました。(Pre-check for recovery has failed as WiredTiger log files are present at the database path.)

  • 無効なエラーコード: 13311

    実際のエラー: 6711

    メッセージ: MongoDB 構成ファイルをバックアップできません。(Unable to backup MongoDB configuration file.)

  • 無効なエラーコード: 13312

    実際のエラー: 6712

    メッセージ: 以前のバックアップの操作ログが見つかりません。(Unable to find operation log for previous backup.)

  • 無効なエラーコード: 13313

    実際のエラー: 6713

    メッセージ: 操作ログのロールオーバーが検出されました。(Operations log roll-over detected.)

  • 無効なエラーコード: 13314

    実際のエラー: 6714

    メッセージ: 収集の反復中にエラーが発生しました。(Error while collection was iterated.)

  • 無効なエラーコード: 13315

    実際のエラー: 6715

    メッセージ: 操作ログの検証エラーです。(Operation log verification error.)

推奨処置について詳しくは、『NetBackup 状態コードリファレンスガイド』を参照してください。

インポートされた MongoDB バックアップイメージでは、NetBackup Web UI の[リストア (Restore)]ボタンを無効になる場合があります。

回避方法:

元のバックアップに使用されていたのと同じ NetBackup プライマリサーバーにイメージをインポートする場合は、次のいずれかの方法を使用します。

  • bprestore コマンドを使用してリストア操作を実行します。

  • Web UI の[リストア (Restore)]ボタンが有効になるカタログバックアップをリストアしてから、イメージをリストアします。

最初にバックアップを作成したときと異なる NetBackup プライマリサーバーにイメージをインポートする場合は、bprestore コマンドを使用してリストア操作を実行します。

代替のシャード MongoDB クラスタでリカバリ操作が失敗します。次のエラーが表示されます。

構成パラメータが見つかりません。(Unable to find the configuration parameter.)(6661)

この問題は、リカバリ前チェックで代替クラスタの mongos ポートが mongodb.conf ファイル内に見つからないため、代替クラスタリカバリ中に発生します。MongoDB 構成ツールの[更新 (Update)]オプションを使用して代替 MongoDB クラスタの詳細を追加するときに、ツールが mongodb.conf ファイルを作成する方法に原因があります。

回避方法:

リカバリ処理を開始する前に、mongodb.conf ファイルを更新して、元のクラスタから代替クラスタを独立させます。

次に例を示します。

既存の mongodb.conf ファイル:

 "application_servers":
   {
    "original.mongodb.cluster.com:26050":
		 {
     "alternate_config_server":
			  [
       {
         "hostname:port": "alt.mongodb.cluster.com:26000",
         "mongos_port": "26001"
       }
      ],
    "mongos_port": "26051"
    }
   }

更新後の mongodb.conf ファイル (推奨):

"application_servers": 
   {
    "original.mongodb.cluster.com:26050":
   {
      "mongos_port": "26051"
   },
      "alt.mongodb.cluster.com:26000":
   {
   "mongos_port": "26001"
   }
   }

MUI ツールで次のエラーが表示されます。

構成を削除できません。(Unable to delete configuration.)

推奨処置:

  • <hostname-port>.conf ファイルが /usr/openv/var/global ディレクトリにまだ存在していることを確認します。

  • tpconfig ログを参照し、次のエラーを確認します:

    Translating EMM_ERROR_MachineNotExist(2000000) to 88 in the Device Config context.

回避方法:

/usr/openv/var/global から <hostname-port>.conf ファイルを手動で削除します。

MongoDB で証明書ベースの認証が有効になっている場合、差分増分バックアップがエラー 6709「コマンドを実行できません。(Unable to run the command.)」で失敗します。

回避方法:

エラーコードとコマンドについて詳しくは、mdbserver のログを参照してください。次のいずれかの適切な操作を実行します。

  • mdbserver ログに mongodump コマンドエラーが示された場合は、MongoDB ホストで mongodump コマンドを手動で実行し、エラーを確認してください。

  • mongodump コマンドが X509 証明書関連の接続エラーで失敗した場合は、MongoDB のマニュアルに従い、subjectAltName プロパティを使用して MongoDB サーバー証明書を更新し、これらのエラーを修正します。その後、差分増分バックアップを再実行します。