Crear una instantánea
BACKUP con experimental_lightweight_snapshot = true. La configuración id es obligatoria: asigna un nombre a la instantánea y se usa para hacer referencia a ella en los comandos de desbloqueo y observabilidad:
id y status, y id puede utilizarse para hacer un seguimiento de la operación en system.backups.
Haga una copia de seguridad de una sola tabla en S3:
Restaurar en el mismo servicio
snapshot_from_current_service = 1. Esto lee los objetos directamente a través del disco de destino en lugar de pasar por un lector remoto de instantáneas:
AS restaura con un nuevo nombre de tabla, dejando intacta la tabla original. Para sobrescribir la tabla original, elimínela primero:
Desbloquear una instantánea
FROM es opcional cuando el destino de la instantánea se almacenó en Keeper al crearse (visible en la columna info de system.snapshot_locks):
system.snapshot_locks y las partes a las que ya no hacen referencia otros snapshots dejan de aparecer en system.snapshot_parts.
Observabilidad
system.backups
system.backups, junto con las operaciones habituales de copia de seguridad y restauración. Consúltela con el id que estableció (o el UUID devuelto por el comando):
system.snapshot_locks
system.snapshot_locks muestra las instantáneas confirmadas que están registradas actualmente en Keeper. Cuando se confirma una instantánea, se crea un nodo de Keeper en /clickhouse/snapshot/committed/{snapshot_id}. Antes de eliminar cualquier parte de datos, el servidor comprueba si alguna instantánea confirmada mantiene un bloqueo sobre esa parte. En ese caso, se omite su eliminación. El bloqueo persiste hasta que desbloquee explícitamente la instantánea.
| Columna | Tipo | Descripción |
|---|---|---|
id | String | ID de la instantánea |
info | String | Destino de la instantánea, p. ej. S3('...') |
ctime | DateTime | Cuándo se creó este bloqueo en Keeper |
lock_path | String | Ruta de Keeper para este bloqueo |
SYSTEM UNLOCK SNAPSHOT para eliminarlos.
Para comprobar si existe un bloqueo de instantánea específico:
system.snapshot_parts
system.snapshot_parts muestra las partes de datos actualmente retenidas por al menos un bloqueo de instantánea. Para cada parte bloqueada, existe un nodo de Keeper en /clickhouse/snapshot/{table_uuid}/{part_name} que contiene el tamaño comprimido y sin comprimir de la parte. Esta tabla lee esos nodos para mostrar qué partes están actualmente protegidas frente a su eliminación.
| Columna | Tipo | Descripción |
|---|---|---|
name | String | Nombre de la parte de datos |
table_id | String | UUID de la tabla a la que pertenece esta parte |
data_compressed_bytes | UInt64 | Tamaño comprimido de esta parte |
data_uncompressed_bytes | UInt64 | Tamaño sin comprimir de esta parte |
snapshots_size | UInt64 | Número de instantáneas que actualmente mantienen bloqueada esta parte |
snapshots_size > 1 tienen varias instantáneas que hacen referencia a ellas y no se eliminarán del almacenamiento de objetos hasta que se desbloqueen todas esas instantáneas.
Para comprobar el almacenamiento total retenido:
Configuración del servidor
| Configuración | Tipo | Predeterminado | Se puede cambiar sin reiniciar | Descripción |
|---|---|---|---|---|
max_held_snapshots | UInt64 | 0 | No | Número máximo de instantáneas ligeras que pueden mantenerse al mismo tiempo. 0 significa ilimitado. Si se alcanza el límite, la creación de una nueva instantánea genera una excepción. |
max_snapshot_commit_thread_pool_size | UInt64 | 64 | Sí | Número de hilos usados para confirmar en Keeper los nodos de bloqueo de las instantáneas. Auméntelo si la creación de instantáneas es lenta en tablas grandes con muchas partes. |
max_snapshot_commit_thread_pool_free_size | UInt64 | 0 | Sí | Si el número de hilos inactivos en el pool de confirmación de instantáneas supera este valor, ClickHouse libera esos hilos y reduce el pool. Los hilos se vuelven a crear cuando es necesario. 0 significa que los hilos inactivos nunca se liberan. |
snapshot_cleaner_period | UInt64 | 120 | No | Frecuencia (en segundos) con la que se ejecuta el limpiador de instantáneas para eliminar partes que ya no están referenciadas por ningún bloqueo de instantánea. Solo en ClickHouse Cloud. |
snapshot_cleaner_pool_size | UInt64 | 128 | No | Número de hilos en el pool de hilos del limpiador de instantáneas. Solo en ClickHouse Cloud. |