バックアップ
バックアップに関する概念については、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: Azureでリポジトリを作成する
Azureは3.1.3以降でサポートされています
Azureストレージでリポジトリを作成するには、以下の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の場合、
providerはAZUREに設定する必要があります。
オプション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エンドポイント、リージョン、アクセスキー、およびシークレットキーを提供してください。
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. バックアップ
データベース、テーブル、またはパーティションをバックアップするには、以下のステートメントを参照してください。詳細な使用方法については、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_tbl と example_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を参照してください。