BACKUP
説明
指定されたデータベース、テーブル、またはパーティションのデータをバックアップします。現在、StarRocks は OLAP テーブルのデータのみをバックアップすることをサポートしています。詳細については、データのバックアップと復元を参照してください。
BACKUP は非同期操作です。SHOW BACKUP を使用して BACKUP ジョブのステータスを確認したり、CANCEL BACKUP を使用して BACKUP ジョブをキャンセルしたりできます。SHOW SNAPSHOT を使用してスナップショット情報を表示できます。
注意
- ADMIN 権限を持つユーザーのみがデータをバックアップできます。
- 各データベースでは、同時に 1 つの BACKUP または RESTORE ジョブのみが実行可能です。それ以外の場合、StarRocks はエラーを返します。
- StarRocks はデータバックアップのためのデータ圧縮アルゴリズムの指定をサポートしていません。
構文
BACKUP SNAPSHOT <db_name>.<snapshot_name>
TO <repository_name>
[ ON ( <table_name> [ PARTITION ( <partition_name> [, ...] ) ]
[, ...] ) ]
[ PROPERTIES ("key"="value" [, ...] ) ]
パラメータ
パラメータ | 説明 |
---|---|
db_name | バックアップするデータを格納するデータベースの名前。 |
snapshot_name | データスナップショットの名前を指定します。グローバルに一意です。 |
repository_name | リポジトリ名。CREATE REPOSITORY を使用してリポジトリを作成できます。 |
ON | バックアップするテーブルの名前。このパラメータが指定されていない場合、データベース全体がバックアップされます。 |
PARTITION | バックアップするパーティションの名前。このパラメータが指定されていない場合、テーブル全体がバックアップされます。 |
PROPERTIES | データスナップショットのプロパティ。有効なキー:type : バックアップタイプ。現在、完全バックアップ FULL のみがサポートされています。デフォルト: FULL 。timeout : タスクのタイムアウト。単位: 秒。デフォルト: 86400 。 |
例
例 1: データベース example_db
をリポジトリ example_repo
にバックアップします。
BACKUP SNAPSHOT example_db.snapshot_label1
TO example_repo
PROPERTIES ("type" = "full");
例 2: example_db
のテーブル example_tbl
を example_repo
にバックアップします。
BACKUP SNAPSHOT example_db.snapshot_label2
TO example_repo
ON (example_tbl);
例 3: example_db
の example_tbl
のパーティション p1
と p2
、およびテーブル example_tbl2
を example_repo
にバックアップします。
BACKUP SNAPSHOT example_db.snapshot_label3
TO example_repo
ON(
example_tbl PARTITION (p1, p2),
example_tbl2
);
使用上の注意
- グローバル、データベース、テーブル、およびパーティションレベルでバックアップおよび復元操作を行うには、異なる権限が必要です。
- 各データベースでは、同時に 1 つの BACKUP または RESTORE ジョブのみが実行可能です。それ以外の場合、StarRocks はエラーを返します。
- BACKUP および RESTORE ジョブは、StarRocks クラスターの多くのリソースを占有するため、StarRocks クラスターが高負荷でないときにデータをバックアップおよび復元することができます。
- StarRocks はデータバックアップのためのデータ圧縮アルゴリズムの指定をサポートしていません。
- データはスナップショットとしてバックアップされるため、スナップショット生成時にロードされたデータはスナップショットに含まれません。したがって、スナップショットが生成された後、RESTORE ジョブが完了する前に古いクラスターにデータをロードした場合、そのデータを復元先のクラスターにもロードする必要があります。データ移行が完了した後、データとサービスの正確性を確認した後にアプリケーションを新しいクラスターに移行することをお勧めします。
- RESTORE ジョブが完了する前に、復元するテーブルを操作することはできません。
- 主キーテーブルは v2.5 より前の StarRocks クラスターに復元することはできません。
- 新しいクラスターで復元する前に、復元するテーブルを作成する必要はありません。RESTORE ジョブが自動的に作成します。
- 既存のテーブルが復元するテーブルと重複した名前を持っている場合、StarRocks はまず既存のテーブルのスキーマが復元するテーブルのスキーマと一致するかどうかを確認します。スキーマが一致する場合、StarRocks はスナップショットのデータで既存のテーブルを上書きします。スキーマが一致しない場合、RESTORE ジョブは失敗します。
AS
キーワードを使用して復元するテーブルの名前を変更するか、データを復元する前に既存のテーブルを削除することができます。 - RESTORE ジョブが既存のデータベース、テーブル、またはパーティションを上書きする場合、ジョブが COMMIT フェーズに入った後に上書きされたデータは復元できません。この時点で RESTORE ジョブが失敗またはキャンセルされた場合、データが破損してアクセスできなくなる可能性があります。この場合、RESTORE 操作を再度実行し、ジョブが完了するのを待つしかありません。したがって、現在のデータがもう使用されていないことが確実でない限り、上書きによるデータの復元はお勧めしません。上書き操作は、スナップショットと既存のデータベース、テーブル、またはパーティションの間のメタデータの一貫性を最初にチェックします。一貫性が検出されない場合、RESTORE 操作は実行できません。
- 現在、StarRocks はビューのバックアップと復元をサポートしていません。
- 現在、StarRocks はユーザーアカウント、権限、およびリソースグループに関連する設定データのバックアップと復元をサポートしていません。
- 現在、StarRocks はテーブル間の Colocate Join 関係のバックアップと復元をサポートしていません。