すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for ClickHouse:BACKUP および RESTORE コマンドを使用したデータのバックアップと復元

最終更新日:Dec 18, 2025

BACKUP および RESTORE コマンドを使用して、ClickHouse のデータを Object Storage Service (OSS) にバックアップし、低コストで長期アーカイブすることができます。 また、これらのコマンドを使用して、セルフマネージド ClickHouse クラスターを ApsaraDB for ClickHouse に移行することもできます。 これらの組み込み ClickHouse SQL コマンドは、データベースやテーブルなどのオブジェクトをバックアップおよび復元します。 この Topic では、BACKUP および RESTORE コマンドの構文と使用例について説明します。

注意事項

  • Community-compatible EditionEnterprise Edition のデータベースエンジンとテーブルエンジンには互換性がないため、これらのエディション間でデータをバックアップおよび復元することはできません。

  • バックアップと回復のプロセス中、クラスターの CPU 使用率が増加します。backup_threadsrestore_threads などのパラメーターを調整して、リソースの消費を制限できます。メモリ使用量に大きな影響はありません。

前提条件

構文

 BACKUP|RESTORE
  TABLE [db.]table_name [AS [db.]table_name_in_backup]
    [PARTITION[S] partition_expr [,...]] |
  DICTIONARY [db.]dictionary_name [AS [db.]name_in_backup] |
  DATABASE database_name [AS database_name_in_backup]
    [EXCEPT TABLES ...] |
  TEMPORARY TABLE table_name [AS table_name_in_backup] |
  VIEW view_name [AS view_name_in_backup] |
  ALL [EXCEPT {TABLES|DATABASES}...] } [,...]
  [ON CLUSTER 'cluster_name']
  TO|FROM File('<path>/<filename>') | Disk('<disk_name>', '<path>/') | S3('<S3 endpoint>/<path>', '<Access key ID>', '<Access key Secret>')
  [SETTINGS base_backup = File('<path>/<filename>') | Disk(...) | S3('<S3 endpoint>/<path>', '<Access key ID>', '<Access key Secret>')]

Community-compatible Edition

BACKUP コマンドと RESTORE コマンドは、インスタンス、データベース、テーブルのバックアップと回復をサポートします。このセクションでは、テーブルを例にバックアッププロセスを説明します。

OSS へのデータのバックアップ

OSS への直接アップロード

BACKUP TABLE default.data ON CLUSTER default TO S3('https://<yourBucketName>.<yourEndpoint>/data/', 'yourAccessKeyID', 'yourAccessKeySecret')

ローカルディスクへのバックアップと OSS へのアップロード

重要

ApsaraDB for ClickHouse は、ローカルディスクへのデータバックアップをサポートしていません。

  1. バックアップを構成します。

    /etc/clickhouse-server/config.d/backup_disk.xml ファイルを追加して、バックアップ先を指定できます。

    次の例では、<storage_configuration> タグで backups という名前のカスタムディスクを定義し、物理パスとして /backups/ を使用しています。<backups> タグでは、バックアップに backups ディスクのみを使用でき、バックアップファイルは /backups/ フォルダに保存されるように指定しています。

    <clickhouse>
        <storage_configuration>
            <disks>
                <backups>
                    <type>local</type>
                    <path>/backups/</path>
                </backups>
            </disks>
        </storage_configuration>
        <backups>
            <allowed_disk>backups</allowed_disk>
            <allowed_path>/backups/</allowed_path>
        </backups>
    </clickhouse>
  2. ローカルディスクにデータをバックアップします。

    BACKUP TABLE test.table TO Disk('backups', 'data_1.zip')
  3. ossutil を使用してバックアップを OSS にアップロードします。

    ossutil cp data_1.zip oss://<yourBucketName>/data/data_1.zip -i <yourAccessKeyID> -k <yourAccessKeySecret> -e <yourEndpoint>

OSS からのデータの復元

-- ZIP ファイルから単一ノードにデータを復元します。
RESTORE TABLE default.data FROM S3('https://<yourBucketName>.<yourEndpoint>/data/data_1.zip', 'yourAccessKeyID', 'yourAccessKeySecret')
-- ディレクトリからすべてのノードにデータを復元します。
RESTORE TABLE default.data ON CLUSTER default FROM S3('https://<yourBucketName>.<yourEndpoint>/data/', 'yourAccessKeyID', 'yourAccessKeySecret')

Enterprise Edition

OSS へのデータのバックアップ

BACKUP TABLE default.data TO S3('https://<yourBucketName>.<yourEndpoint>/data/data_1.zip', 'yourAccessKeyID', 'yourAccessKeySecret')

OSS からのデータの復元

RESTORE TABLE default.data FROM S3('https://<yourBucketName>.<yourEndpoint>/data/data_1.zip', 'yourAccessKeyID', 'yourAccessKeySecret')

パフォーマンス最適化パラメーター

表示方法

-- ユーザーレベルのパラメーター
SELECT * FROM system.settings WHERE name LIKE '%backup%' OR name LIKE '%restore%';
-- サーバーレベルのパラメーター
SELECT * FROM system.server_settings WHERE name LIKE '%backup%' OR name LIKE '%restore%';

パラメーターの説明

  • backup

    パラメータータイプ

    パラメーター名

    説明

    サーバーレベルのパラメーター

    backup_threads

    再起動が必要です。バックアップのスレッド数を制限します。デフォルトの最大値は 16 です。

    max_backup_bandwidth_for_server

    再起動が必要です。単一サーバー上のすべてのバックアップの合計帯域幅を制限します。

    max_backups_io_thread_pool_size

    再起動が必要です。バックアップ I/O 操作のスレッド数を制限します。

    max_backups_io_thread_pool_free_size

    再起動が必要です。バックアップ I/O 操作のスレッドプール内のアイドルスレッド数を制限します。

    ユーザーレベルのパラメーター

    max_backup_bandwidth

    単一のバックアップジョブの帯域幅を制限します。

  • restore

    パラメータータイプ

    パラメーター名

    説明

    サーバーレベルのパラメーター

    restore_threads

    再起動が必要です。復元のスレッド数を制限します。デフォルトの最大値は 16 です。

よくある質問

"Not found backup engine S3" エラーを解決するにはどうすればよいですか?

このエラーは、インスタンスが OSS へのデータバックアップをサポートしていない古いバージョンで実行されているために発生します。この問題を解決するには、インスタンスをバージョン 23.8 以降にアップグレードします。セルフマネージド ClickHouse クラスターの場合、データをローカルディスクにバックアップしてから、バックアップを OSS にアップロードできます。

"Using archives with backups on clusters is disabled" エラーを解決するにはどうすればよいですか?

マルチノードデプロイメントのクラスターバックアップは、ZIP アーカイブフォーマットをサポートしていません。次の例に示すように、S3 パスにはフォルダを使用してください。

BACKUP TABLE default.data ON CLUSTER default TO S3('https://<yourBucketName>.<yourEndpoint>/data/', 'yourAccessKeyID', 'yourAccessKeySecret')

BACKUP コマンドを実行した後に clickhouse-client と ClickHouse 間の接続が切断された場合はどうすればよいですか?

バックアップタスクはバックグラウンドで実行されるため、接続が切断されても影響はありません。select * from system.backups; コマンドを実行して、バックアップジョブの進捗状況を確認できます。

タスクを非同期で実行するには、ASYNCBACKUP コマンドに追加します。

BACKUP TABLE default.data ON CLUSTER default TO S3('https://<yourBucketName>.<yourEndpoint>/data/data_1.zip', 'yourAccessKeyID', 'yourAccessKeySecret') ASYNC;

BACKUP および RESTORE コマンドの速度はどのくらいですか?

バックアップと回復プロセスの速度は、CPU、ディスクスループット、ネットワークスループット、および OSS の帯域幅に影響されます。ボトルネックとなっているコンポーネントが実際の速度を決定します。

  • ApsaraDB for ClickHouse の場合、クラスターのスペックをアップグレードすることで、CPU、ディスクスループット、ネットワークスループットを向上させることができます。

  • OSS の場合:詳細については、「制限とパフォーマンスメトリック」をご参照ください。

ApsaraDB for ClickHouse でノードを 1 つずつバックアップおよび復元するにはどうすればよいですか?

  1. ノードの IP アドレスをクエリできます。

    SELECT * FROM system.clusters;
  2. clickhouse-client を使用してインスタンスノードに直接接続し、必須の `ON CLUSTER default` 設定を無効にすることができます。

    説明

    このパラメーター設定は Alibaba Cloud ApsaraDB for ClickHouse にのみ適用されます。自社運用の ClickHouse クラスターにはこのパラメーターを設定しないでください。

    set enforce_on_cluster_default_for_ddl = 0;
  3. BACKUP コマンドを実行できます。

    BACKUP TABLE default.data TO S3('https://<yourBucketName>.<yourEndpoint>/data/data_1.zip', 'yourAccessKeyID', 'yourAccessKeySecret')
  4. RESTORE コマンドを実行できます。

    RESTORE TABLE default.data FROM S3('https://<yourBucketName>.<yourEndpoint>/data/data_1.zip', 'yourAccessKeyID', 'yourAccessKeySecret')