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

バックアップ

バックアップに関する概念については、Backup and Restoreを参照してください。このガイドでは、Repositoryを作成してデータをバックアップする手順を説明します。

ステップ 1. Repository作成

ストレージの選択に基づいて適切なステートメントを使用してRepositoryを作成してください。詳細な使用方法については、Create Repositoryを参照してください。異なるクラスター間で同じパスのRepositoryを使用してバックアップする場合は、データの混乱を引き起こす可能性がある競合を避けるため、異なるラベルを使用するようにしてください。

Option 1: S3でRepository作成

S3ストレージでRepositoryを作成するには、以下のSQLコマンドを使用してください:

CREATE REPOSITORY `s3_repo`
WITH S3
ON LOCATION "s3://bucket_name/s3_repo"
PROPERTIES
(
"s3.endpoint" = "s3.us-east-1.amazonaws.com",
"s3.region" = "us-east-1",
"s3.access_key" = "ak",
"s3.secret_key" = "sk"
);
  • bucket_nameをあなたのS3バケット名に置き換えてください。
  • S3セットアップに適切なエンドポイント、アクセスキー、シークレットキー、およびリージョンを提供してください。

Option 2: AzureでRepositoryを作成

Azureは3.0.4以降でサポートされています。

Azureストレージ上でRepositoryを作成するには、以下のSQLコマンドを使用してください:

CREATE REPOSITORY `azure_repo`
WITH S3
ON LOCATION "s3://bucket_name/azure_repo"
PROPERTIES
(
"s3.endpoint" = "selectdbcloudtestwestus3.blob.core.windows.net",
"s3.region" = "dummy_region",
"s3.access_key" = "ak",
"s3.secret_key" = "sk",
"provider" = "AZURE"
);
  • bucket_nameをあなたのAzureコンテナ名に置き換えてください。
  • 認証のためにAzureストレージアカウントとキーを提供してください。
  • s3.regionはダミーですが必須のフィールドです。
  • Azureストレージの場合、providerAZUREに設定する必要があります。

オプション3: GCPでRepositoryを作成する

Google Cloud Platform (GCP) ストレージでRepositoryを作成するには、以下のSQLコマンドを使用してください:

CREATE REPOSITORY `gcp_repo`
WITH S3
ON LOCATION "s3://bucket_name/backup/gcp_repo"
PROPERTIES
(
"s3.endpoint" = "storage.googleapis.com",
"s3.region" = "US-WEST2",
"s3.access_key" = "ak",
"s3.secret_key" = "sk"
);
  • bucket_name をあなたのGCPバケット名に置き換えてください。
  • GCPエンドポイント、アクセスキー、およびシークレットキーを提供してください。
  • s3.region はダミーですが必須フィールドです。

オプション4: OSS(Alibaba Cloud Object Storage Service)でRepositoryを作成する

OSSでRepositoryを作成するには、以下のSQLコマンドを使用します:

CREATE REPOSITORY `oss_repo`
WITH S3
ON LOCATION "s3://bucket_name/oss_repo"
PROPERTIES
(
"s3.endpoint" = "oss.aliyuncs.com",
"s3.region" = "cn-hangzhou",
"s3.access_key" = "ak",
"s3.secret_key" = "sk"
);
  • bucket_nameをあなたのOSSバケット名に置き換えてください。
  • OSSエンドポイント、リージョン、アクセスキー、シークレットキーを提供してください。

Option 5: MinIOでRepositoryを作成する

MinIOストレージでRepositoryを作成するには、以下のSQLコマンドを使用してください:

CREATE REPOSITORY `minio_repo`
WITH S3
ON LOCATION "s3://bucket_name/minio_repo"
PROPERTIES
(
"s3.endpoint" = "yourminio.com",
"s3.region" = "dummy-region",
"s3.access_key" = "ak",
"s3.secret_key" = "sk",
"use_path_style" = "true"
);
  • bucket_nameを自分のMinIOバケット名に置き換えてください。
  • MinIOエンドポイント、アクセスキー、シークレットキーを提供してください。
  • s3.regionはダミーですが必須のフィールドです。
  • Virtual Host-styleを有効にしない場合、use_path_styleはtrueである必要があります。

オプション6: HDFSでRepositoryを作成する

HDFSストレージでRepositoryを作成するには、次のSQLコマンドを使用してください:

CREATE REPOSITORY `hdfs_repo`
WITH hdfs
ON LOCATION "/prefix_path/hdfs_repo"
PROPERTIES
(
"fs.defaultFS" = "hdfs://127.0.0.1:9000",
"hadoop.username" = "doris-test"
)
  • prefix_pathを実際のパスに置き換えてください。
  • HDFSエンドポイントとユーザー名を提供してください。

ステップ2. バックアップ

データベース、Table、またはパーティションをバックアップするには、以下のステートメントを参照してください。詳細な使用方法については、Backupを参照してください。

バックアップに含まれるデータベースやTableを含む、意味のあるラベル名を使用することをお勧めします。

オプション1: 現在のデータベースのバックアップ

以下のSQLステートメントは、現在のデータベースをexample_repoという名前のRepositoryにバックアップし、スナップショットラベルexampledb_20241225を使用します。

BACKUP SNAPSHOT exampledb_20241225
TO example_repo;

オプション 2: 指定されたデータベースのバックアップ

以下のSQL文は、destdbという名前のデータベースをexample_repoという名前のRepositoryにバックアップし、スナップショットラベルdestdb_20241225を使用します。

BACKUP SNAPSHOT destdb.`destdb_20241225`
TO example_repo;

オプション3: 指定したTableのバックアップ

以下のSQL文は、スナップショットラベルexampledb_tbl_tbl1_20241225を使用して、2つのTableをexample_repoという名前のRepositoryにバックアップします。

BACKUP SNAPSHOT exampledb_tbl_tbl1_20241225
TO example_repo
ON (example_tbl, example_tbl1);

Option 4: 指定パーティションのバックアップ

以下のSQL文は、example_tbl2という名前のTableとp1およびp2という名前の2つのパーティションをexample_repoという名前のRepositoryにバックアップし、スナップショットラベルexample_tbl_p1_p2_tbl1_20241225を使用します。

BACKUP SNAPSHOT example_tbl_p1_p2_tbl1_20241225
TO example_repo
ON
(
example_tbl PARTITION (p1,p2),
example_tbl2
);

オプション 5: 特定のTableを除外して現在のデータベースをバックアップ

以下のSQL文は、現在のデータベースをexample_repoという名前のRepositoryにバックアップし、スナップショットラベルexampledb_20241225を使用して、example_tblexample_tbl1という名前の2つのTableを除外します。

BACKUP SNAPSHOT exampledb_20241225
TO example_repo
EXCLUDE
(
example_tbl,
example_tbl1
);

ステップ 3. 最近のバックアップジョブの実行状態を確認する

次のSQL文を使用して、最近のバックアップジョブの実行状態を確認できます。

mysql> show BACKUP\G;
*************************** 1. row ***************************
JobId: 17891847
SnapshotName: exampledb_20241225
DbName: example_db
State: FINISHED
BackupObjs: [example_db.example_tbl]
CreateTime: 2022-04-08 15:52:29
SnapshotFinishedTime: 2022-04-08 15:52:32
UploadFinishedTime: 2022-04-08 15:52:38
FinishedTime: 2022-04-08 15:52:44
UnfinishedTasks:
Progress:
TaskErrMsg:
Status: [OK]
Timeout: 86400
1 row in set (0.01 sec)

ステップ 4. Repository内の既存バックアップを表示する

以下のSQL文を使用して、example_repoという名前のRepository内の既存バックアップを表示できます。ここで、Snapshot列はスナップショットラベル、Timestampはタイムスタンプです。

mysql> SHOW SNAPSHOT ON example_repo;
+-----------------+---------------------+--------+
| Snapshot | Timestamp | Status |
+-----------------+---------------------+--------+
| exampledb_20241225 | 2022-04-08-15-52-29 | OK |
+-----------------+---------------------+--------+
1 row in set (0.15 sec)

ステップ5. バックアップのキャンセル(必要な場合)

CANCEL BACKUP FROM db_name;を使用してデータベース内のバックアップタスクをキャンセルできます。より具体的な使用方法については、Cancel Backupを参照してください。