メインコンテンツまでスキップ
バージョン: Latest-3.4

データのバックアップと復元

このトピックでは、StarRocks でデータをバックアップおよび復元する方法、またはデータを新しい StarRocks クラスターに移行する方法について説明します。

StarRocks は、データをスナップショットとしてリモートストレージシステムにバックアップし、任意の StarRocks クラスターにデータを復元することをサポートしています。

バージョン 3.4.0 以降、StarRocks はより多くのオブジェクトをサポートし、構文をリファクタリングして柔軟性を向上させることで、BACKUP および RESTORE の機能を強化しました。

StarRocks は、次のリモートストレージシステムをサポートしています。

  • Apache™ Hadoop® (HDFS) クラスター
  • AWS S3
  • Google GCS
  • MinIO

StarRocks は、次のオブジェクトのバックアップをサポートしています。

  • 内部データベース、テーブル(すべてのタイプとパーティショニング戦略)、およびパーティション
  • 外部カタログのメタデータ(バージョン 3.4.0 以降でサポート)
  • 同期マテリアライズドビューおよび非同期マテリアライズドビュー
  • ビュー(バージョン 3.4.0 以降でサポート)
  • ユーザー定義関数(バージョン 3.4.0 以降でサポート)

NOTE

共有データ StarRocks クラスターは、データの BACKUP および RESTORE をサポートしていません。

リポジトリの作成

データをバックアップする前に、リモートストレージシステムにデータスナップショットを保存するためのリポジトリを作成する必要があります。StarRocks クラスター内に複数のリポジトリを作成できます。詳細な手順については、CREATE REPOSITORY を参照してください。

  • HDFS にリポジトリを作成

次の例では、test_repo という名前のリポジトリを HDFS クラスターに作成します。

CREATE REPOSITORY test_repo
WITH BROKER
ON LOCATION "hdfs://<hdfs_host>:<hdfs_port>/repo_dir/backup"
PROPERTIES(
"username" = "<hdfs_username>",
"password" = "<hdfs_password>"
);
  • AWS S3 にリポジトリを作成

    AWS S3 にアクセスするための認証方法として、IAM ユーザーに基づくクレデンシャル(アクセスキーとシークレットキー)、インスタンスプロファイル、またはアサインされたロールを選択できます。

    • 次の例では、IAM ユーザーに基づくクレデンシャルを認証方法として使用して、AWS S3 バケット bucket_s3test_repo という名前のリポジトリを作成します。
    CREATE REPOSITORY test_repo
    WITH BROKER
    ON LOCATION "s3a://bucket_s3/backup"
    PROPERTIES(
    "aws.s3.access_key" = "XXXXXXXXXXXXXXXXX",
    "aws.s3.secret_key" = "yyyyyyyyyyyyyyyyyyyyyyyy",
    "aws.s3.region" = "us-east-1"
    );
    • 次の例では、インスタンスプロファイルを認証方法として使用して、AWS S3 バケット bucket_s3test_repo という名前のリポジトリを作成します。
    CREATE REPOSITORY test_repo
    WITH BROKER
    ON LOCATION "s3a://bucket_s3/backup"
    PROPERTIES(
    "aws.s3.use_instance_profile" = "true",
    "aws.s3.region" = "us-east-1"
    );
    • 次の例では、アサインされたロールを認証方法として使用して、AWS S3 バケット bucket_s3test_repo という名前のリポジトリを作成します。
    CREATE REPOSITORY test_repo
    WITH BROKER
    ON LOCATION "s3a://bucket_s3/backup"
    PROPERTIES(
    "aws.s3.use_instance_profile" = "true",
    "aws.s3.iam_role_arn" = "arn:aws:iam::xxxxxxxxxx:role/yyyyyyyy",
    "aws.s3.region" = "us-east-1"
    );

NOTE

StarRocks は、S3A プロトコルに従ってのみ AWS S3 にリポジトリを作成することをサポートしています。したがって、AWS S3 にリポジトリを作成する場合、ON LOCATION でリポジトリの場所として渡す S3 URI の s3://s3a:// に置き換える必要があります。

  • Google GCS にリポジトリを作成

次の例では、Google GCS バケット bucket_gcstest_repo という名前のリポジトリを作成します。

CREATE REPOSITORY test_repo
WITH BROKER
ON LOCATION "s3a://bucket_gcs/backup"
PROPERTIES(
"fs.s3a.access.key" = "xxxxxxxxxxxxxxxxxxxx",
"fs.s3a.secret.key" = "yyyyyyyyyyyyyyyyyyyy",
"fs.s3a.endpoint" = "storage.googleapis.com"
);

NOTE

  • StarRocks は、S3A プロトコルに従ってのみ Google GCS にリポジトリを作成することをサポートしています。したがって、Google GCS にリポジトリを作成する場合、ON LOCATION でリポジトリの場所として渡す GCS URI のプレフィックスを s3a:// に置き換える必要があります。
  • エンドポイントアドレスに https を指定しないでください。
  • MinIO にリポジトリを作成

次の例では、MinIO バケット bucket_miniotest_repo という名前のリポジトリを作成します。

CREATE REPOSITORY test_repo
WITH BROKER
ON LOCATION "s3://bucket_minio/backup"
PROPERTIES(
"aws.s3.access_key" = "XXXXXXXXXXXXXXXXX",
"aws.s3.secret_key" = "yyyyyyyyyyyyyyyyy",
"aws.s3.endpoint" = "http://minio:9000"
);

リポジトリが作成された後、SHOW REPOSITORIES を使用してリポジトリを確認できます。データを復元した後、StarRocks で DROP REPOSITORY を使用してリポジトリを削除できます。ただし、リモートストレージシステムにバックアップされたデータスナップショットは、StarRocks を通じて削除することはできません。リモートストレージシステムで手動で削除する必要があります。

データのバックアップ

リポジトリが作成された後、データスナップショットを作成し、リモートリポジトリにバックアップする必要があります。詳細な手順については、BACKUP を参照してください。BACKUP は非同期操作です。SHOW BACKUP を使用して BACKUP ジョブのステータスを確認したり、CANCEL BACKUP を使用して BACKUP ジョブをキャンセルしたりできます。

StarRocks は、データベース、テーブル、またはパーティションの粒度レベルでの完全バックアップをサポートしています。

テーブルに大量のデータを保存している場合は、パーティションごとにデータをバックアップおよび復元することをお勧めします。これにより、ジョブの失敗時の再試行コストを削減できます。定期的に増分データをバックアップする必要がある場合は、テーブルにパーティショニングプランを設定し、新しいパーティションのみを毎回バックアップできます。

データベースのバックアップ

データベースに対して完全な BACKUP を実行すると、データベース内のすべてのテーブル、同期および非同期マテリアライズドビュー、ビュー、および UDF がバックアップされます。

次の例では、スナップショット sr_hub_backup にデータベース sr_hub をバックアップし、リポジトリ test_repo にスナップショットをアップロードします。

-- バージョン 3.4.0 以降でサポート。
BACKUP DATABASE sr_hub SNAPSHOT sr_hub_backup
TO test_repo;

-- 以前のバージョンの構文と互換性があります。
BACKUP SNAPSHOT sr_hub.sr_hub_backup
TO test_repo;

テーブルのバックアップ

StarRocks は、すべてのタイプとパーティショニング戦略のテーブルのバックアップと復元をサポートしています。テーブルに対して完全な BACKUP を実行すると、そのテーブルとその上に構築された同期マテリアライズドビューがバックアップされます。

次の例では、スナップショット sr_member_backup にデータベース sr_hub のテーブル sr_member をバックアップし、リポジトリ test_repo にスナップショットをアップロードします。

-- バージョン 3.4.0 以降でサポート。
BACKUP DATABASE sr_hub SNAPSHOT sr_member_backup
TO test_repo
ON (TABLE sr_member);

-- 以前のバージョンの構文と互換性があります。
BACKUP SNAPSHOT sr_hub.sr_member_backup
TO test_repo
ON (sr_member);

次の例では、スナップショット sr_core_backup にデータベース sr_hub のテーブル sr_membersr_pmc をバックアップし、リポジトリ test_repo にスナップショットをアップロードします。

BACKUP DATABASE sr_hub SNAPSHOT sr_core_backup
TO test_repo
ON (TABLE sr_member, TABLE sr_pmc);

次の例では、スナップショット sr_all_backup にデータベース sr_hub のすべてのテーブルをバックアップし、リポジトリ test_repo にスナップショットをアップロードします。

BACKUP DATABASE sr_hub SNAPSHOT sr_all_backup
TO test_repo
ON (ALL TABLES);

パーティションのバックアップ

次の例では、スナップショット sr_par_backup にデータベース sr_hub のテーブル sr_member のパーティション p1 をバックアップし、リポジトリ test_repo にスナップショットをアップロードします。

-- バージョン 3.4.0 以降でサポート。
BACKUP DATABASE sr_hub SNAPSHOT sr_par_backup
TO test_repo
ON (TABLE sr_member PARTITION (p1));

-- 以前のバージョンの構文と互換性があります。
BACKUP SNAPSHOT sr_hub.sr_par_backup
TO test_repo
ON (sr_member PARTITION (p1));

複数のパーティション名をカンマ(,)で区切って指定することで、パーティションを一括でバックアップできます。

マテリアライズドビューのバックアップ

同期マテリアライズドビューは、ベーステーブルの BACKUP 操作と共にバックアップされるため、手動でバックアップする必要はありません。

非同期マテリアライズドビューは、それが属するデータベースの BACKUP 操作と共にバックアップできます。また、手動でバックアップすることもできます。

次の例では、スナップショット sr_mv1_backup にデータベース sr_hub のマテリアライズドビュー sr_mv1 をバックアップし、リポジトリ test_repo にスナップショットをアップロードします。

BACKUP DATABASE sr_hub SNAPSHOT sr_mv1_backup
TO test_repo
ON (MATERIALIZED VIEW sr_mv1);

次の例では、スナップショット sr_mv2_backup にデータベース sr_hub のマテリアライズドビュー sr_mv1sr_mv2 をバックアップし、リポジトリ test_repo にスナップショットをアップロードします。

BACKUP DATABASE sr_hub SNAPSHOT sr_mv2_backup
TO test_repo
ON (MATERIALIZED VIEW sr_mv1, MATERIALIZED VIEW sr_mv2);

次の例では、スナップショット sr_mv3_backup にデータベース sr_hub のすべてのマテリアライズドビューをバックアップし、リポジトリ test_repo にスナップショットをアップロードします。

BACKUP DATABASE sr_hub SNAPSHOT sr_mv3_backup
TO test_repo
ON (ALL MATERIALIZED VIEWS);

ビューのバックアップ

次の例では、スナップショット sr_view1_backup にデータベース sr_hub のビュー sr_view1 をバックアップし、リポジトリ test_repo にスナップショットをアップロードします。

BACKUP DATABASE sr_hub SNAPSHOT sr_view1_backup
TO test_repo
ON (VIEW sr_view1);

次の例では、スナップショット sr_view2_backup にデータベース sr_hub のビュー sr_view1sr_view2 をバックアップし、リポジトリ test_repo にスナップショットをアップロードします。

BACKUP DATABASE sr_hub SNAPSHOT sr_view2_backup
TO test_repo
ON (VIEW sr_view1, VIEW sr_view2);

次の例では、スナップショット sr_view3_backup にデータベース sr_hub のすべてのビューをバックアップし、リポジトリ test_repo にスナップショットをアップロードします。

BACKUP DATABASE sr_hub SNAPSHOT sr_view3_backup
TO test_repo
ON (ALL VIEWS);

UDF のバックアップ

次の例では、スナップショット sr_udf1_backup にデータベース sr_hub の UDF sr_udf1 をバックアップし、リポジトリ test_repo にスナップショットをアップロードします。

BACKUP DATABASE sr_hub SNAPSHOT sr_udf1_backup
TO test_repo
ON (FUNCTION sr_udf1);

次の例では、スナップショット sr_udf2_backup にデータベース sr_hub の UDF sr_udf1sr_udf2 をバックアップし、リポジトリ test_repo にスナップショットをアップロードします。

BACKUP DATABASE sr_hub SNAPSHOT sr_udf2_backup
TO test_repo
ON (FUNCTION sr_udf1, FUNCTION sr_udf2);

次の例では、スナップショット sr_udf3_backup にデータベース sr_hub のすべての UDF をバックアップし、リポジトリ test_repo にスナップショットをアップロードします。

BACKUP DATABASE sr_hub SNAPSHOT sr_udf3_backup
TO test_repo
ON (ALL FUNCTIONS);

外部カタログのメタデータのバックアップ

次の例では、スナップショット iceberg_backup に外部カタログ iceberg のメタデータをバックアップし、リポジトリ test_repo にスナップショットをアップロードします。

BACKUP EXTERNAL CATALOG (iceberg) SNAPSHOT iceberg_backup
TO test_repo;

次の例では、スナップショット iceberg_hive_backup に外部カタログ iceberghive のメタデータをバックアップし、リポジトリ test_repo にスナップショットをアップロードします。

BACKUP EXTERNAL CATALOGS (iceberg, hive) SNAPSHOT iceberg_hive_backup
TO test_repo;

次の例では、スナップショット all_catalog_backup にすべての外部カタログのメタデータをバックアップし、リポジトリ test_repo にスナップショットをアップロードします。

BACKUP ALL EXTERNAL CATALOGS SNAPSHOT all_catalog_backup
TO test_repo;

外部カタログの BACKUP 操作をキャンセルするには、次のステートメントを実行します。

CANCEL BACKUP FOR EXTERNAL CATALOG;

データの復元

リモートストレージシステムにバックアップされたデータスナップショットを現在の StarRocks クラスターまたは他の StarRocks クラスターに復元して、データを復元または移行できます。

スナップショットからオブジェクトを復元する際には、スナップショットのタイムスタンプを指定する必要があります。

リモートストレージシステムのデータスナップショットを復元するには、RESTORE ステートメントを使用します。

RESTORE は非同期操作です。SHOW RESTORE を使用して RESTORE ジョブのステータスを確認したり、CANCEL RESTORE を使用して RESTORE ジョブをキャンセルしたりできます。

(オプション)新しいクラスターにリポジトリを作成

データを別の StarRocks クラスターに移行するには、ターゲットクラスターに同じリポジトリ名場所でリポジトリを作成する必要があります。そうしないと、以前にバックアップされたデータスナップショットを表示できません。詳細については、リポジトリの作成を参照してください。

スナップショットのタイムスタンプを取得

データを復元する前に、SHOW SNAPSHOT を使用してリポジトリ内のスナップショットを確認し、タイムスタンプを取得できます。

次の例では、test_repo 内のスナップショット情報を確認します。

mysql> SHOW SNAPSHOT ON test_repo;
+------------------+-------------------------+--------+
| Snapshot | Timestamp | Status |
+------------------+-------------------------+--------+
| sr_member_backup | 2023-02-07-14-45-53-143 | OK |
+------------------+-------------------------+--------+
1 row in set (1.16 sec)

データベースの復元

次の例では、スナップショット sr_hub_backup のデータベース sr_hub をターゲットクラスターのデータベース sr_hub に復元します。スナップショットにデータベースが存在しない場合、システムはエラーを返します。ターゲットクラスターにデータベースが存在しない場合、システムは自動的に作成します。

-- バージョン 3.4.0 以降でサポート。
RESTORE SNAPSHOT sr_hub_backup
FROM test_repo
DATABASE sr_hub
PROPERTIES("backup_timestamp" = "2024-12-09-10-25-58-842");

-- 以前のバージョンの構文と互換性があります。
RESTORE SNAPSHOT sr_hub.sr_hub_backup
FROM `test_repo`
PROPERTIES("backup_timestamp" = "2024-12-09-10-25-58-842");

次の例では、スナップショット sr_hub_backup のデータベース sr_hub をターゲットクラスターのデータベース sr_hub_new に復元します。スナップショットにデータベース sr_hub が存在しない場合、システムはエラーを返します。ターゲットクラスターにデータベース sr_hub_new が存在しない場合、システムは自動的に作成します。

-- バージョン 3.4.0 以降でサポート。
RESTORE SNAPSHOT sr_hub_backup
FROM test_repo
DATABASE sr_hub AS sr_hub_new
PROPERTIES("backup_timestamp" = "2024-12-09-10-25-58-842");

テーブルの復元

次の例では、スナップショット sr_member_backup のデータベース sr_hub のテーブル sr_member をターゲットクラスターのデータベース sr_hub のテーブル sr_member に復元します。

-- バージョン 3.4.0 以降でサポート。
RESTORE SNAPSHOT sr_member_backup
FROM test_repo
DATABASE sr_hub
ON (TABLE sr_member)
PROPERTIES ("backup_timestamp" = "2024-12-09-10-52-10-940");

-- 以前のバージョンの構文と互換性があります。
RESTORE SNAPSHOT sr_hub.sr_member_backup
FROM test_repo
ON (sr_member)
PROPERTIES ("backup_timestamp"="2024-12-09-10-52-10-940");

次の例では、スナップショット sr_member_backup のデータベース sr_hub のテーブル sr_member をターゲットクラスターのデータベース sr_hub_new のテーブル sr_member_new に復元します。

RESTORE SNAPSHOT sr_member_backup
FROM test_repo
DATABASE sr_hub AS sr_hub_new
ON (TABLE sr_member AS sr_member_new)
PROPERTIES ("backup_timestamp" = "2024-12-09-10-52-10-940");

次の例では、スナップショット sr_core_backup のデータベース sr_hub のテーブル sr_membersr_pmc をターゲットクラスターのデータベース sr_hub のテーブル sr_membersr_pmc に復元します。

RESTORE SNAPSHOT sr_core_backup
FROM test_repo
DATABASE sr_hub
ON (TABLE sr_member, TABLE sr_pmc)
PROPERTIES ("backup_timestamp" = "2024-12-09-10-52-10-940");

次の例では、スナップショット sr_all_backup のデータベース sr_hub のすべてのテーブルを復元します。

RESTORE SNAPSHOT sr_all_backup
FROM test_repo
DATABASE sr_hub
ON (ALL TABLES);

次の例では、スナップショット sr_all_backup のデータベース sr_hub のすべてのテーブルのうちの 1 つを復元します。

RESTORE SNAPSHOT sr_all_backup
FROM test_repo
DATABASE sr_hub
ON (TABLE sr_member)
PROPERTIES ("backup_timestamp" = "2024-12-09-10-52-10-940");

パーティションの復元

次の例では、スナップショット sr_par_backup のテーブル sr_member のパーティション p1 をターゲットクラスターのテーブル sr_member のパーティション p1 に復元します。

-- バージョン 3.4.0 以降でサポート。
RESTORE SNAPSHOT sr_par_backup
FROM test_repo
DATABASE sr_hub
ON (TABLE sr_member PARTITION (p1))
PROPERTIES ("backup_timestamp" = "2024-12-09-10-52-10-940");

-- 以前のバージョンの構文と互換性があります。
RESTORE SNAPSHOT sr_hub.sr_par_backup
FROM test_repo
ON (sr_member PARTITION (p1))
PROPERTIES ("backup_timestamp" = "2024-12-09-10-52-10-940");

複数のパーティション名をカンマ(,)で区切って指定することで、パーティションを一括で復元できます。

マテリアライズドビューの復元

次の例では、スナップショット sr_mv1_backup のデータベース sr_hub のマテリアライズドビュー sr_mv1 をターゲットクラスターに復元します。

RESTORE SNAPSHOT sr_mv1_backup
FROM test_repo
DATABASE sr_hub
ON (MATERIALIZED VIEW sr_mv1)
PROPERTIES ("backup_timestamp" = "2024-12-09-10-52-10-940");

次の例では、スナップショット sr_mv2_backup のデータベース sr_hub のマテリアライズドビュー sr_mv1sr_mv2 をターゲットクラスターに復元します。

RESTORE SNAPSHOT sr_mv2_backup
FROM test_repo
DATABASE sr_hub
ON (MATERIALIZED VIEW sr_mv1, MATERIALIZED VIEW sr_mv2)
PROPERTIES ("backup_timestamp" = "2024-12-09-10-52-10-940");

次の例では、スナップショット sr_mv3_backup のデータベース sr_hub のすべてのマテリアライズドビューをターゲットクラスターに復元します。

RESTORE SNAPSHOT sr_mv3_backup
FROM test_repo
DATABASE sr_hub
ON (ALL MATERIALIZED VIEWS)
PROPERTIES ("backup_timestamp" = "2024-12-09-10-52-10-940");

次の例では、スナップショット sr_mv3_backup のデータベース sr_hub のマテリアライズドビューのうちの 1 つをターゲットクラスターに復元します。

RESTORE SNAPSHOT sr_mv3_backup
FROM test_repo
DATABASE sr_hub
ON (MATERIALIZED VIEW sr_mv1)
PROPERTIES ("backup_timestamp" = "2024-12-09-10-52-10-940");
備考

RESTORE 後、SHOW MATERIALIZED VIEWS を使用してマテリアライズドビューのステータスを確認できます。

  • マテリアライズドビューがアクティブな場合、直接使用できます。
  • マテリアライズドビューが非アクティブな場合、そのベーステーブルが復元されていない可能性があります。すべてのベーステーブルが復元された後、ALTER MATERIALIZED VIEW を使用してマテリアライズドビューを再アクティブ化できます。

ビューの復元

次の例では、スナップショット sr_view1_backup のデータベース sr_hub のビュー sr_view1 をターゲットクラスターに復元します。

RESTORE SNAPSHOT sr_view1_backup
FROM test_repo
DATABASE sr_hub
ON (VIEW sr_view1)
PROPERTIES ("backup_timestamp" = "2024-12-09-10-52-10-940");

次の例では、スナップショット sr_view2_backup のデータベース sr_hub のビュー sr_view1sr_view2 をターゲットクラスターに復元します。

RESTORE SNAPSHOT sr_view2_backup
FROM test_repo
DATABASE sr_hub
ON (VIEW sr_view1, VIEW sr_view2)
PROPERTIES ("backup_timestamp" = "2024-12-09-10-52-10-940");

次の例では、スナップショット sr_view3_backup のデータベース sr_hub のすべてのビューをターゲットクラスターに復元します。

RESTORE SNAPSHOT sr_view3_backup
FROM test_repo
DATABASE sr_hub
ON (ALL VIEWS)
PROPERTIES ("backup_timestamp" = "2024-12-09-10-52-10-940");

次の例では、スナップショット sr_view3_backup のデータベース sr_hub のすべてのビューのうちの 1 つをターゲットクラスターに復元します。

RESTORE SNAPSHOT sr_view3_backup
FROM test_repo
DATABASE sr_hub
ON (VIEW sr_view1)
PROPERTIES ("backup_timestamp" = "2024-12-09-10-52-10-940");

UDF の復元

次の例では、スナップショット sr_udf1_backup のデータベース sr_hub の UDF sr_udf1 をターゲットクラスターに復元します。

RESTORE SNAPSHOT sr_udf1_backup
FROM test_repo
DATABASE sr_hub
ON (FUNCTION sr_udf1)
PROPERTIES ("backup_timestamp" = "2024-12-09-10-52-10-940");

次の例では、スナップショット sr_udf2_backup のデータベース sr_hub の UDF sr_udf1sr_udf2 をターゲットクラスターに復元します。

RESTORE SNAPSHOT sr_udf2_backup
FROM test_repo
DATABASE sr_hub
ON (FUNCTION sr_udf1, FUNCTION sr_udf2)
PROPERTIES ("backup_timestamp" = "2024-12-09-10-52-10-940");

次の例では、スナップショット sr_udf3_backup のデータベース sr_hub のすべての UDF をターゲットクラスターに復元します。

RESTORE SNAPSHOT sr_udf3_backup
FROM test_repo
DATABASE sr_hub
ON (ALL FUNCTIONS)
PROPERTIES ("backup_timestamp" = "2024-12-09-10-52-10-940");

次の例では、スナップショット sr_udf3_backup のデータベース sr_hub のすべての UDF のうちの 1 つをターゲットクラスターに復元します。

RESTORE SNAPSHOT sr_udf3_backup
FROM test_repo
DATABASE sr_hub
ON (FUNCTION sr_udf1)
PROPERTIES ("backup_timestamp" = "2024-12-09-10-52-10-940");

外部カタログのメタデータの復元

次の例では、スナップショット iceberg_backup の外部カタログ iceberg のメタデータをターゲットクラスターに復元し、iceberg_new として名前を変更します。

RESTORE SNAPSHOT iceberg_backup
FROM test_repo
EXTERNAL CATALOG (iceberg AS iceberg_new)
PROPERTIES ("backup_timestamp" = "2024-12-09-10-52-10-940");

次の例では、スナップショット iceberg_hive_backup の外部カタログ iceberghive のメタデータをターゲットクラスターに復元します。

RESTORE SNAPSHOT iceberg_hive_backup
FROM test_repo
EXTERNAL CATALOGS (iceberg, hive)
PROPERTIES ("backup_timestamp" = "2024-12-09-10-52-10-940");

次の例では、スナップショット all_catalog_backup のすべての外部カタログのメタデータをターゲットクラスターに復元します。

RESTORE SNAPSHOT all_catalog_backup
FROM test_repo
ALL EXTERNAL CATALOGS
PROPERTIES ("backup_timestamp" = "2024-12-09-10-52-10-940");

外部カタログの RESTORE 操作をキャンセルするには、次のステートメントを実行します。

CANCEL RESTORE FOR EXTERNAL CATALOG;

BACKUP または RESTORE ジョブの設定

BE 設定ファイル be.conf の次の設定項目を変更することで、BACKUP または RESTORE ジョブのパフォーマンスを最適化できます。

設定項目説明
make_snapshot_worker_countBE ノード上の BACKUP ジョブのスナップショット作成タスクの最大スレッド数。デフォルト: 5。この設定項目の値を増やすことで、スナップショット作成タスクの並行性を向上させることができます。
release_snapshot_worker_countBE ノード上の失敗した BACKUP ジョブのスナップショット解放タスクの最大スレッド数。デフォルト: 5。この設定項目の値を増やすことで、スナップショット解放タスクの並行性を向上させることができます。
upload_worker_countBE ノード上の BACKUP ジョブのアップロードタスクの最大スレッド数。デフォルト: 00 は BE が存在するマシンの CPU コア数に設定されることを示します。この設定項目の値を増やすことで、アップロードタスクの並行性を向上させることができます。
download_worker_countBE ノード上の RESTORE ジョブのダウンロードタスクの最大スレッド数。デフォルト: 00 は BE が存在するマシンの CPU コア数に設定されることを示します。この設定項目の値を増やすことで、ダウンロードタスクの並行性を向上させることができます。

使用上の注意

  • グローバル、データベース、テーブル、パーティションレベルでのバックアップおよび復元操作には、異なる権限が必要です。詳細情報については、シナリオに基づくロールのカスタマイズを参照してください。
  • 各データベースでは、同時に実行中の BACKUP または RESTORE ジョブは 1 つだけ許可されます。それ以外の場合、StarRocks はエラーを返します。
  • BACKUP および RESTORE ジョブは、StarRocks クラスターの多くのリソースを占有するため、StarRocks クラスターが重負荷でないときにデータをバックアップおよび復元することをお勧めします。
  • StarRocks は、データバックアップのためのデータ圧縮アルゴリズムの指定をサポートしていません。
  • データはスナップショットとしてバックアップされるため、スナップショット生成時にロードされたデータはスナップショットに含まれません。したがって、スナップショットが生成された後、RESTORE ジョブが完了する前に古いクラスターにデータをロードした場合、データを復元するクラスターにもデータをロードする必要があります。データ移行が完了した後、データとサービスの正確性を確認した後、新しいクラスターにアプリケーションを移行するまでの間、両方のクラスターに並行してデータをロードすることをお勧めします。
  • RESTORE ジョブが完了するまで、復元するテーブルを操作することはできません。
  • 主キーテーブルは、バージョン 2.5 より前の StarRocks クラスターに復元することはできません。
  • 新しいクラスターで復元するテーブルを事前に作成する必要はありません。RESTORE ジョブが自動的に作成します。
  • 復元するテーブルと同じ名前の既存のテーブルがある場合、StarRocks はまず既存のテーブルのスキーマが復元するテーブルのスキーマと一致するかどうかを確認します。スキーマが一致する場合、StarRocks はスナップショット内のデータで既存のテーブルを上書きします。スキーマが一致しない場合、RESTORE ジョブは失敗します。AS キーワードを使用して復元するテーブルの名前を変更するか、データを復元する前に既存のテーブルを削除することができます。
  • RESTORE ジョブが既存のデータベース、テーブル、またはパーティションを上書きする場合、ジョブが COMMIT フェーズに入った後、上書きされたデータは復元できません。RESTORE ジョブがこの時点で失敗またはキャンセルされた場合、データが破損しアクセスできなくなる可能性があります。この場合、再度 RESTORE 操作を実行し、ジョブが完了するのを待つしかありません。したがって、現在のデータがもはや使用されていないことが確実でない限り、上書きによるデータの復元はお勧めしません。上書き操作は、スナップショットと既存のデータベース、テーブル、またはパーティションの間のメタデータの一貫性を最初にチェックします。不一致が検出された場合、RESTORE 操作は実行できません。
  • 現在、StarRocks はユーザーアカウント、権限、リソースグループに関連する設定データのバックアップおよび復元をサポートしていません。
  • 現在、StarRocks はテーブル間の Colocate Join 関係のバックアップおよび復元をサポートしていません。