メインコンテンツまでスキップ

バックアップ

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

Step 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: Create Repository on Azure

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

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

CREATE REPOSITORY `azure_repo`
WITH S3
ON LOCATION "s3://<container_name>/azure_repo"
PROPERTIES
(
"azure.endpoint" = "https://<account_name>.blob.core.windows.net",
"azure.account_name" = "ak",
"azure.account_key" = "sk",
"provider" = "AZURE"
);
  • container_nameをあなたのAzureコンテナ名に置き換えてください。
  • 認証のためにAzureストレージアカウントとキーを提供してください。
  • Azure storageの場合、providerAZUREに設定する必要があります。

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

Google Cloud Platform (GCP) storageで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エンドポイント、リージョン、アクセスキー、シークレットキーを提供してください。

オプション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. バックアップ

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

バックアップに含まれるデータベースとテーブルを含むような、意味のあるラベル名を使用することを推奨します。

オプション 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: 指定したテーブルのバックアップ

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

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

オプション 4: 指定されたパーティションのバックアップ

以下のSQL文は、example_tbl2という名前のテーブルと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: 特定のテーブルを除外して現在のデータベースをバックアップ

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

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. リポジトリ内の既存のバックアップを表示する

以下の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を参照してください。