メインコンテンツへスキップ
メインコンテンツへスキップ

コマンドを使用してバックアップの取得および復元を行う

ユーザーは、BACKUP および RESTORE コマンドを使用してバックアップをストレージバケットにエクスポートできます。これは、ユーザーインターフェイス経由でバックアップや復元を行う方法に加えて利用できます。 本ガイドでは、3 つすべての CSP 向けのコマンドを紹介します。

必要条件

ご自身の CSP ストレージバケットにバックアップをエクスポート/復元するには、次の情報が必要です:

  1. AWS S3 エンドポイント。形式:s3://<bucket_name>.s3.amazonaws.com/<optional_directory> 例:s3://testchbackups.s3.amazonaws.com/ ここで:
    • testchbackups はバックアップのエクスポート先となる S3 バケット名です。
    • backups は任意のサブディレクトリです。
  2. AWS アクセスキーとシークレット。AWS ロールベース認証もサポートされており、上記セクションで説明したとおり、AWS アクセスキーとシークレットの代わりに使用できます。

特定のデータベースのバックアップ / リストア

ここでは、単一 のデータベースのバックアップおよびリストアの方法を示します。 完全なバックアップおよびリストアコマンドについては、バックアップコマンドの概要を参照してください。

AWS S3

BACKUP DATABASE test_backups 
TO S3(
  'https://testchbackups.s3.amazonaws.com/<uuid>',
  '<key id>',
  '<key secret>'
)

ここで uuid は、バックアップセットを区別するために使用される一意の識別子です。

注記

このサブディレクトリ内で新しいバックアップを作成するたびに、異なる uuid を使用する必要があります。そうしないと、BACKUP_ALREADY_EXISTS エラーが発生します。 たとえば、毎日バックアップを取得する場合は、毎日新しい uuid を使用する必要があります。

Google Cloud Storage (GCS)

BACKUP DATABASE test_backups 
TO S3(
  'https://storage.googleapis.com/<bucket>/<uuid>',
  '<hmac-key>',
  '<hmac-secret>'
)

ここで uuid は、バックアップを識別するために使用される一意の識別子です。

注記

このサブディレクトリ内で新しいバックアップを作成するたびに、異なる uuid を使用する必要があります。そうしないと、BACKUP_ALREADY_EXISTS エラーが発生します。 たとえば、毎日バックアップを取得する場合は、毎日新しい uuid を使用する必要があります。

Azure Blob Storage

BACKUP DATABASE test_backups 
TO AzureBlobStorage(
  '<AzureBlobStorage endpoint connection string>',
  '<container>',
  '<blob>/<>'
)

ここで uuid は、バックアップを識別するために使用される一意の識別子です。

注記

このサブディレクトリ内で新しいバックアップを作成するたびに、異なる uuid を使用する必要があります。そうしないと、BACKUP_ALREADY_EXISTS エラーが発生します。 たとえば、毎日バックアップを取得する場合は、毎日新しい uuid を使用する必要があります。

サービス全体のバックアップ / リストア

サービス全体をバックアップするには、以下のコマンドを使用します。 このバックアップには、作成されたエンティティ、設定プロファイル、ロールポリシー、クォータ、関数に関するすべてのユーザーデータおよびシステムデータが含まれます。 ここでは AWS S3 向けの例を示します。 上記で説明した構文を利用することで、GCS や Azure Blob Storage に対するバックアップも取得できます。

BACKUP 
    TABLE system.users,
    TABLE system.roles,
    TABLE system.settings_profiles,
    TABLE system.row_policies,
    TABLE system.quotas,
    TABLE system.functions,
    ALL EXCEPT DATABASES INFORMATION_SCHEMA, information_schema, system
TO S3(
    'https://testchbackups.s3.amazonaws.com/<uuid>',
    '<key id>',
    '<key secret>'
)

ここで uuid は、バックアップを識別するために使用される一意の識別子です。

FAQ

クラウドオブジェクトストレージ内のバックアップはどうなりますか?ClickHouse によって自動的にクリーンアップされますか?

バックアップをバケットにエクスポートできる機能を提供していますが、一度書き込まれたバックアップをクリーンアップしたり削除したりすることはありません。バケット内のバックアップのライフサイクル(不要になったバックアップの削除やアーカイブ、全体コスト最適化のためのより安価なストレージへの移動など)は、すべてお客様の責任となります。

既存のバックアップの一部を別の場所に移動した場合、リストア処理はどうなりますか?

バックアップが別の場所に移動された場合は、バックアップが保存されている新しい場所を参照するように、リストアコマンドを更新する必要があります。

オブジェクトストレージへのアクセスに必要な認証情報を変更した場合はどうなりますか?

バックアップが再び正常に実行されるように、変更した認証情報を UI 上で更新する必要があります。

外部バックアップのエクスポート先の場所を変更した場合はどうなりますか?

UI 上でエクスポート先として新しい場所を設定する必要があります。以降のバックアップは新しい場所に保存されます。既存の古いバックアップは元の場所に残ります。

有効化したサービスで外部バックアップを無効化するにはどうすればよいですか?

特定のサービスの外部バックアップを無効化するには、そのサービスの設定画面に移動し、「Change external backup」をクリックします。続く画面で「Remove setup」をクリックすると、そのサービスの外部バックアップが無効化されます。