Backup データベースエンジンでは、バックアップからテーブル/データベースを読み取り専用モードで即座にアタッチできます。
Backup データベースエンジンは、増分バックアップと非増分バックアップの両方に対応しています。
データベースの作成
CREATE DATABASE backup_database
ENGINE = Backup('database_name_inside_backup', Disk('disk_name', 'backup_name'))バックアップの宛先には、Disk、S3、File など、有効な任意のバックアップdestinationを指定できます。これは関数として渡され、たとえば Disk('disk_name', 'backup_name') のように指定します。
エンジンパラメータ
database_name_inside_backup— バックアップ内のデータベース名。backup_destination— バックアップの宛先。
使用例
Disk バックアップの宛先を使った例を見てみましょう。まず、storage.xml でバックアップ用ディスクを設定します。
<storage_configuration>
<disks>
<backups>
<type>local</type>
<path>/home/ubuntu/ClickHouseWorkDir/backups/</path>
</backups>
</disks>
</storage_configuration>
<backups>
<allowed_disk>backups</allowed_disk>
<allowed_path>/home/ubuntu/ClickHouseWorkDir/backups/</allowed_path>
</backups>使用例です。テスト用のデータベースとテーブルを作成し、データをいくつか挿入してから、バックアップを作成してみましょう:
CREATE DATABASE test_database;
CREATE TABLE test_database.test_table_1 (id UInt64, value String) ENGINE=MergeTree ORDER BY id;
INSERT INTO test_database.test_table_1 VALUES (0, 'test_database.test_table_1');
CREATE TABLE test_database.test_table_2 (id UInt64, value String) ENGINE=MergeTree ORDER BY id;
INSERT INTO test_database.test_table_2 VALUES (0, 'test_database.test_table_2');
CREATE TABLE test_database.test_table_3 (id UInt64, value String) ENGINE=MergeTree ORDER BY id;
INSERT INTO test_database.test_table_3 VALUES (0, 'test_database.test_table_3');
BACKUP DATABASE test_database TO Disk('backups', 'test_database_backup');これで test_database_backup のバックアップができたので、Backup データベースを作成しましょう:
CREATE DATABASE test_database_backup ENGINE = Backup('test_database', Disk('backups', 'test_database_backup'));これで、データベース内の任意のテーブルに対してクエリを実行できます:
SELECT id, value FROM test_database_backup.test_table_1;
┌この Backup データベースも、通常のデータベースと同様に扱えます。たとえば、その中のテーブルに対してクエリを実行できます。
SELECT database, name FROM system.tables WHERE database = 'test_database_backup';┌─database─────────────┬─name─────────┐
│ test_database_backup │ test_table_1 │
│ test_database_backup │ test_table_2 │
│ test_database_backup │ test_table_3 │
└──────────────────────┴──────────────┘