clickhouse-backup icon indicating copy to clipboard operation
clickhouse-backup copied to clipboard

Ability to restore schema by running ATTACH TABLE statement for --schema, if data already present

Open Slach opened this issue 1 year ago • 1 comments

Discussed in https://github.com/Altinity/clickhouse-backup/discussions/867

Originally posted by tadus21 March 8, 2024 Hey, We have a use case where we store data in ReplicatedMergeTree table which keeps it in different disks according to the TTL. We noticed that in scenario where: DISK_A stores table metadata and data, DISK_B stores just data and by accident DISK_A is lost we can just manually move sql file with the attach table statement to DISK_A/clickhouse/metadata directory (if we have it backed up). After db restart, the table will be attached to the ClickHouse with all the parts from DISK_B present without manually moving them to detach folder and reattaching. This saves time making replica healthy because then ZK only have to restore data from DISK_A from the another replica. I noticed that in backup metadata folder, table creation query have UUID in it so in theory backup tool could recreate the same scenario by running ATTACH TABLE instead of CREATE TABLE? Would it make sense to provide additional flag to restore command which would define whether ATTACH or CREATE statement should be ran for schema restoration? I seen that something similar is happening when restore_as_attach is set to true, but its only relevant when on data restoration flow. If this make sense I would gladly contribute on this feature.

Slach avatar Mar 08 '24 16:03 Slach

ATTACH TABLE already requires overwrite metatada/db/table.sql

Slach avatar Mar 08 '24 16:03 Slach