すべてのプロダクト
Search
ドキュメントセンター

PolarDB:PolarSearch データの手動バックアップと復元

最終更新日:Mar 14, 2026

PolarSearch は、スナップショット機能を使用して、クラスターから Object Storage Service (OSS) バケットにインデックスデータをバックアップしたり、OSS からデータを復元したりすることをサポートしています。この機能により、PolarSearch クラスター間のデータ移行や、カスタムでのバックアップと復元が可能になり、データ保護と転送のための柔軟で低コストなソリューションを提供します。

説明

この機能は現在カナリアリリース段階です。この機能を使用するには、チケットを送信して Alibaba Cloud サポートに連絡し、アカウントでの機能有効化をリクエストしてください。

適用範囲

課金詳細

スナップショット機能は無料です。ただし、OSS バケットに保存されているスナップショットファイルには、OSS のストレージ料金とリクエスト料金が発生します。課金の詳細については、「OSS の課金概要」をご参照ください。

スナップショットリポジトリの登録

スナップショット機能を使用する前に、スナップショットリポジトリを登録して OSS バケットに関連付ける必要があります。次の API を使用してリポジトリを作成します。

PUT /_snapshot/{repo-name}
{
    "type": "oss",
    "settings": {
      "endpoint": "{endpoint}",
      "bucket": "{bucket-name}",
      "base_path": "{path-name}",
      "region": "{region}",
      "access_key": "{your-AccessKey-ID}", 
      "secret_key": "{your-AccessKey-Secret}",
      "session_token": "{your-STS-Token}"
    }
}

パラメーターの説明

パラメーター

説明

{repo-name}

リポジトリ名。カスタマイズ可能です。

type

リポジトリのタイプ。oss に設定します。

endpoint

OSS バケットのエンドポイント。詳細については、「リージョンとエンドポイント」をご参照ください。

bucket

OSS バケットの名前。

base_path

(任意) スナップショットファイルを保存する OSS バケット内のルートディレクトリパスを指定します。

region

バケットが配置されているリージョンを指定します。

access_key

ご利用の AccessKey ID

secret_key

ご利用の AccessKey Secret

session_token

(任意) RAM ロールの Security Token Service (STS) トークン

重要

STS トークンを使用する場合は、access_keysecret_key を STS トークンの値に設定します。一時的な STS トークンを使用しない場合は、長期的な AccessKey ID と AccessKey Secret を使用してください。

次のパラメーターを実際の情報に置き換えてください

curl -X PUT "https://{pc-endpoint}:3001/_snapshot/{repo-name}" \
  -u "{username}:{passwd}" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "oss",
    "settings": {
      "endpoint": "{endpoint}",
      "bucket": "{bucket-name}",
      "base_path": "{path-name}",
      "region": "{region}",
      "access_key": "{your-AccessKey-ID}", 
      "secret_key": "{your-AccessKey-Secret}"
    }
  }'

スナップショットの作成:OSS へのデータバックアップ

スナップショットリポジトリを登録した後、次のコマンドを実行して指定したインデックスのスナップショットを作成します。次の API を使用してスナップショットを作成します。

PUT /_snapshot/{repo-name}/{snapshot-name}?wait_for_completion=true
{
    "indices": "{index-name}",
    "ignore_unavailable":false
}

パラメーターの説明

パラメーターカテゴリ

パラメーター名

説明

リクエストパラメーター

wait_for_completion

スナップショット操作が完了するまで同期的に待機するかどうか。デフォルトは false です。

  • 同期実行: wait_for_completion=true に設定します。コマンドはスナップショットの作成が完了するまで待機してから結果を返します。

  • 非同期実行: wait_for_completion=false に設定します。コマンドはすぐに戻り、スナップショットはバックグラウンドで作成されます。次のコマンドを使用してスナップショットのステータスを確認します。返された結果の state フィールドが SUCCESS になると、作成は完了です。

    GET /_snapshot/{repo-name}/{snapshot-name}/_status

リクエストボディパラメーター

indices

バックアップするインデックスを指定します。ワイルドカード文字 (*) がサポートされています。複数のインデックスはカンマ (,) で区切ります。デフォルトではすべてのインデックスが対象です。

説明

ワイルドカード文字 (*) を使用すると、システムテーブルがバックアップされます。システムテーブルのバックアップや復元を避けるには、バックアップおよび復元するインデックスのみを指定するか、- を使用してシステムテーブルを除外してください。

ignore_unavailable

指定したインデックスが存在しない場合にそれを無視してスナップショットの作成を続行するかどうか。デフォルトは false (失敗を意味します) です。

partial

部分的なスナップショットの作成を許可するかどうか。 true に設定すると、一部のシャードが失敗した場合でも、成功したシャードのデータは保存されます。デフォルトは false です。

次のパラメーターを実際の情報に置き換えてください

curl -X PUT "https://{pc-endpoint}:3001/_snapshot/{repo-name}/{snapshot-name}?wait_for_completion=true" \
  -u "{username}:{passwd}" \
  -H "Content-Type: application/json" \
  -d '{
    "indices": "{index-name}",
    "ignore_unavailable": false
  }'

スナップショットの表示

OSS スナップショットリポジトリ内のすべてのスナップショット情報を表示します。次の API を使用してリストを取得します。

GET /_snapshot/{repo-name}/_all?pretty

次のパラメーターを実際の情報に置き換えてください

curl -X GET "https://{pc-endpoint}:3001/_snapshot/{repo-name}/_all?pretty" -u "{username}:{passwd}"

データの復元

次のコマンドを実行して、指定したスナップショットからインデックスデータを復元します。次の API を使用して復元操作を実行します。

説明

ある PolarSearch クラスターから別の PolarSearch クラスターにスナップショットを解凍するには、送信先の PolarSearch クラスターは、ソース PolarSearch クラスターと同じ スナップショットリポジトリを登録する必要があります。 同じ PolarSearch クラスター内で解凍操作を実行する場合、再登録は不要で、データを直接解凍できます。

POST /_snapshot/{repo-name}/{snapshot-name}/_restore?wait_for_completion=true
{
  "indices": "{index-name}",
  "ignore_unavailable": true
}

パラメーターの説明

パラメーターカテゴリ

パラメーター名

説明

リクエストパラメーター

wait_for_completion

スナップショットの復元が完了するまで同期的に待機するかどうか。デフォルトは false です。

  • 同期実行: wait_for_completion=true に設定します。コマンドは復元が完了するまで待機してから戻ります。

  • 非同期実行: wait_for_completion=false に設定します。コマンドはすぐに戻り、復元ジョブはバックグラウンドで実行されます。次のコマンドを使用してインデックスの復元進捗を確認します。stage フィールドが DONE になると、復元は完了です。

    GET /{index-name}/_recovery

リクエストボディパラメーター

indices

復元するインデックスを指定します。ワイルドカード文字 (*) がサポートされています。複数のインデックスはカンマ (,) で区切ります。デフォルトではすべてのインデックスが対象です。

ignore_unavailable

指定したインデックスが存在しない場合にそれを無視してスナップショットの作成を続行するかどうか。デフォルトは false (失敗を意味します) です。

partial

部分的なスナップショットの作成を許可するかどうか。true に設定すると、一部のシャードが失敗した場合でも、成功したシャードのデータは保存されます。デフォルトは false です。

index_settings

復元時にスナップショット内のインデックス設定を上書きします。たとえば、復元先クラスターの構成に合わせてレプリカ数を変更します。

ignore_index_settings

復元時に無視するインデックス設定のリストを指定します。通常、元の固有の構成を無視するために使用されます。

次のパラメーターを実際の情報に置き換えてください

curl -X POST "https://{pc-endpoint}:3001/_snapshot/{repo-name}/{snapshot-name}/_restore?wait_for_completion=true" \
  -u "{username}:{passwd}" \
  -H "Content-Type: application/json" \
  -d '{
    "indices": "{index-name}",
    "ignore_unavailable": true
  }'