ClickHouse Cloud では、ご自身のクラウドサービスプロバイダー (CSP) アカウント (AWS S3、Google Cloud Storage、または Azure Blob Storage) へのバックアップの取得をサポートしています。 ClickHouse Cloud のバックアップの仕組み (「フル」バックアップと「増分」バックアップの違いを含む) について詳しくは、バックアップのドキュメントを参照してください。なお、ご自身のクラウドアカウントへのバックアップは、Cloud 内に保存されるバックアップとは重要な点で動作が異なります。ネイティブコピーを使用できません (以下の注記を参照)。
このガイドでは、AWS、GCP、Azure のオブジェクトストレージにフルバックアップおよび増分バックアップを取得する方法と、それらのバックアップから復元する方法の例を紹介します。
要件
BACKUP コマンドを実行する前に、ClickHouse ユーザーに BACKUP 権限があることを確認してください。ClickHouse Cloud の default_role にはこの権限が含まれていません。バックアップをエクスポートする前に、これをリクエストするには ClickHouse Support にお問い合わせください。
バックアップをお客様自身のCSPのストレージバケットにエクスポートまたは復元するには、以下の情報が必要です。
AWS
- 以下の形式の AWS S3 エンドポイント:
s3://<bucket_name>.s3.amazonaws.com/<directory>例:
s3://testchbackups.s3.amazonaws.com/backups/各項目の意味は次のとおりです。
testchbackupsは、バックアップのエクスポート先となる S3 バケットの名前です。backupsは省略可能なサブディレクトリです。
- AWS アクセスキーとシークレットアクセスキー。AWS ロールベース認証もサポートされており、AWS アクセスキーとシークレットアクセスキーの代わりに使用できます。
Azure
- Azure Storage の接続文字列。
- ストレージ アカウント内の Azure コンテナー名。
- コンテナー内の Azure ブロブ。
Google Cloud Storage (GCS)
-
GCS エンドポイント (形式は以下のとおり) :
https://storage.googleapis.com/<bucket_name>/ -
アクセス用の HMAC キーと HMAC シークレット。
バックアップ / 復元
AWS S3 バケットへのバックアップ / 復元
DB のバックアップを取得する
フルバックアップ
BACKUP DATABASE test_backups
TO S3('https://testchbackups.s3.amazonaws.com/backups/<uuid>', '<key id>', '<key secret>')ここで uuid は一意の識別子で、バックアップのセットを区別するために使用されます。
増分バックアップ
BACKUP DATABASE test_backups
TO S3('https://testchbackups.s3.amazonaws.com/backups/<uuid>', '<key id>', '<key secret>')
SETTINGS base_backup = S3('https://testchbackups.s3.amazonaws.com/backups/<base-backup-uuid>', '<key id>', '<key secret>')バックアップから復元する
RESTORE DATABASE test_backups
AS test_backups_restored
FROM S3('https://testchbackups.s3.amazonaws.com/backups/<uuid>', '<key id>', '<key secret>')詳しくは、BACKUP/RESTORE で S3 エンドポイントを使用するための設定を参照してください。
Azure Blob Storage へのバックアップ / 復元
DB のバックアップを取得する
フルバックアップ
BACKUP DATABASE test_backups
TO AzureBlobStorage('<AzureBlobStorage endpoint connection string>', '<container>', '<blob>/<uuid>');ここで uuid は、バックアップのセットを区別するために使用される一意の識別子です。
増分バックアップ
BACKUP DATABASE test_backups
TO AzureBlobStorage('<AzureBlobStorage endpoint connection string>', '<container>', '<blob>/<uuid>/my_incremental')
SETTINGS base_backup = AzureBlobStorage('<AzureBlobStorage endpoint connection string>', '<container>', '<blob>/<uuid>')バックアップから復元
RESTORE DATABASE test_backups
AS test_backups_restored_azure
FROM AzureBlobStorage('<AzureBlobStorage endpoint connection string>', '<container>', '<blob>/<uuid>')詳しくは、AzureBlobStorage エンドポイントを使用するように BACKUP/RESTORE を設定するをご覧ください。
Google Cloud Storage (GCS) へのバックアップ/復元
DB のバックアップを取得する
フルバックアップ
BACKUP DATABASE test_backups
TO S3('https://storage.googleapis.com/<bucket>/<uuid>', <hmac-key>', <hmac-secret>)ここで uuid は一意の識別子であり、一連のバックアップを区別するために使用されます。
増分バックアップ
BACKUP DATABASE test_backups
TO S3('https://storage.googleapis.com/test_gcs_backups/<uuid>/my_incremental', 'key', 'secret')
SETTINGS base_backup = S3('https://storage.googleapis.com/test_gcs_backups/<uuid>', 'key', 'secret')バックアップから復元
RESTORE DATABASE test_backups
AS test_backups_restored_gcs
FROM S3('https://storage.googleapis.com/test_gcs_backups/<uuid>', 'key', 'secret')