> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Guía sobre cómo configurar copias de seguridad

# Configurar la programación de copias de seguridad

export const CloudNotSupportedBadge = () => {
  return <a href="https://clickhouse.com/docs/products/cloud/guides/cloud-compatibility#list-of-unsupported-features" className="cloudNotSupportedBadge">
            <div className="cloudNotSupportedIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.5" d="M6.33366 12.6666L12.3739 12.6667C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00003 12.3739 8.00003C12.3739 8.00003 12.3337 7.66659 12.0003 7.33325M10.667 5.33322C8.00033 2.33325 4.45395 4.78537 4.14195 6.68203C2.55728 6.7627 1.29395 8.06203 1.29395 9.6667C1.29395 11.3234 2.66699 12.6666 4.00033 12.6666" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.5" d="M2.66699 14L12.0003 4.66663" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>

        </div>
            No es compatible con ClickHouse Cloud
        </a>;
};

Esta página explica cómo consultar y modificar la programación de backups de un servicio de ClickHouse Cloud desde la línea de comandos con la [ClickHouse CLI](/es/products/cloud/features/cli) (`clickhousectl`). Los comandos no son interactivos; `clickhousectl` devuelve JSON con `--json`.

Los backups configurables están disponibles en los planes Scale y Enterprise.

<h2 id="prerequisites">
  Requisitos previos
</h2>

Instale la CLI de ClickHouse:

```bash theme={null}
curl https://clickhouse.com/cli | sh
```

También necesita `jq`.

Cambiar la configuración de Backup es una operación de escritura y requiere [autenticación mediante API key](/es/products/cloud/features/admin-features/api/openapi); el inicio de sesión con OAuth es de solo lectura:

```bash theme={null}
clickhousectl cloud auth login --api-key <YOUR_KEY> --api-secret <YOUR_SECRET>
```

Como alternativa, defina las variables de entorno `CLICKHOUSE_CLOUD_API_KEY` y `CLICKHOUSE_CLOUD_API_SECRET`. Verifique con `clickhousectl cloud auth status`: compruebe que la credencial **activa** sea la que tiene el ámbito `read/write`. Las credenciales guardadas por un `auth login` anterior tienen prioridad sobre las variables de entorno; en ese caso, la fila `Env vars` puede seguir mostrando el ámbito `read/write`, pero aparece marcada como inactiva (`Configured (inactive, outranked by credentials file)`), y los comandos de escritura que se indican a continuación se ejecutan con las credenciales guardadas. Ejecute primero `clickhousectl cloud auth logout` si desea que se utilicen las variables de entorno.

<h2 id="find-the-service-id">
  Encontrar el ID del servicio
</h2>

La configuración de backup se establece por servicio. Busque el ID del servicio por su nombre:

```bash theme={null}
CH_ID=$(clickhousectl cloud service list --json \
  | jq -r '.[] | select(.name=="<service-name>") | .id')
```

Si pertenece a más de una organización, esta no se puede detectar automáticamente y el comando falla con el mensaje `Multiple organizations found. Specify --org-id to choose one.`. Liste sus organizaciones con `clickhousectl cloud org list` y pase `--org-id <org-id>` tanto a este comando como a todos los comandos `backup-config` que se indican a continuación.

<h2 id="read-the-current-backup-configuration">
  Leer la configuración actual de Backup
</h2>

```bash theme={null}
clickhousectl cloud service backup-config get "$CH_ID" --json
```

Un service que aún utiliza la programación predeterminada informa:

```json theme={null}
{
  "backupPeriodInHours": 24.0,
  "backupRetentionPeriodInHours": 24.0
}
```

`backupStartTime` solo aparece en la salida una vez que se ha definido una hora de inicio.

<h2 id="change-retention-and-frequency">
  Cambiar la retención y la frecuencia
</h2>

`backup-config update` admite los mismos ajustes que el formulario de la consola —retención (`--backup-retention-period-hours`), frecuencia (`--backup-period-hours`) y hora de inicio (`--backup-start-time`)— e imprime la configuración resultante. Los indicadores que omitas conservan sus valores actuales:

```bash theme={null}
clickhousectl cloud service backup-config update "$CH_ID" \
  --backup-period-hours 12 \
  --backup-retention-period-hours 48 \
  --json
```

```json theme={null}
{
  "backupPeriodInHours": 12.0,
  "backupRetentionPeriodInHours": 48.0
}
```

El cambio surte efecto de inmediato; vuelva a leer la configuración para confirmarlo:

```bash theme={null}
clickhousectl cloud service backup-config get "$CH_ID" --json
```

```json theme={null}
{
  "backupPeriodInHours": 12.0,
  "backupRetentionPeriodInHours": 48.0
}
```

<h2 id="set-a-backup-start-time">
  Establecer una hora de inicio del backup
</h2>

`--backup-start-time` recibe una hora de inicio diaria en UTC, en punto (`HH:00`). Una hora de inicio restringe la frecuencia: el período del backup debe ser de `24` o `48` horas, ya sea indicado en el mismo comando o ya almacenado en el service. Desde `clickhousectl 0.4.2`, tanto el format como la regla del período se comprueban en el Client, antes de cualquier llamada a la API. Una hora que no sea en punto —o que no lleve ceros a la izquierda, como `2:00`— es rechazada por el parser de argumentos con el código de salida `2`:

```bash theme={null}
clickhousectl cloud service backup-config update "$CH_ID" --backup-start-time 02:30 --json
```

```text theme={null}
error: invalid value '02:30' for '--backup-start-time <BACKUP_START_TIME>': invalid backup start time '02:30': expected HH:00 with HH from 00 to 23
```

Pasar `--backup-start-time` junto con un `--backup-period-hours` distinto de `24` o `48` también se rechaza antes de enviar la solicitud, con código de salida `1`:

```text theme={null}
Error: --backup-period-hours must be 24 or 48 when --backup-start-time is set
```

`--backup-period-hours` puede omitirse, en cuyo caso el service conserva el período que ya tiene, pero ese período almacenado debe ser `24` o `48`. En un service que todavía usa la programación predeterminada, el período es `24`, por lo que basta con indicar la hora de inicio. El service anterior se estableció en `12` en el paso previo, así que omitir el período falla: `clickhousectl` lee primero la configuración almacenada y rechaza la operación con el código de salida `1`, de nuevo sin llamar a la API:

```bash theme={null}
clickhousectl cloud service backup-config update "$CH_ID" --backup-start-time 03:00 --json
```

```text theme={null}
Error: the stored backup period is 12 hours, but --backup-start-time requires 24 or 48. Pass --backup-period-hours 24 or --backup-period-hours 48 in the same call.
```

Pasar el período de forma explícita es la combinación válida:

```bash theme={null}
clickhousectl cloud service backup-config update "$CH_ID" \
  --backup-start-time 02:00 \
  --backup-period-hours 24 \
  --json
```

```json theme={null}
{
  "backupPeriodInHours": 24.0,
  "backupRetentionPeriodInHours": 48.0,
  "backupStartTime": "02:00"
}
```

El caso inverso no se detecta en el cliente: con una hora de inicio ya almacenada, una actualización que solo cambie `--backup-period-hours` a un valor distinto de `24` o `48` llega hasta la API y falla ahí, con código de salida `1`:

```bash theme={null}
clickhousectl cloud service backup-config update "$CH_ID" --backup-period-hours 12 --json
```

```text theme={null}
Error: BAD_REQUEST: customBackupPeriod must be 24 or 48 hours when customBackupStartTime is set
```

Borrar la hora de inicio en el mismo comando evita este problema, como se muestra a continuación.

<h2 id="clear-the-backup-start-time">
  Borrar la hora de inicio del backup
</h2>

`--clear-backup-start-time` elimina la hora de inicio almacenada y suprime la restricción de `24`/`48` horas sobre el período:

```bash theme={null}
clickhousectl cloud service backup-config update "$CH_ID" \
  --clear-backup-start-time \
  --json
```

```json theme={null}
{
  "backupPeriodInHours": 24.0,
  "backupRetentionPeriodInHours": 48.0
}
```

`backupStartTime` desaparece de la salida en lugar de mostrarse como `null`, y `backup-config get` deja de devolverlo. Borrar una hora de inicio que nunca se estableció es una operación no-op que, aun así, finaliza con código `0`.

Combínalo con `--backup-period-hours` para borrar la hora de inicio y establecer cualquier período en un solo comando: esta es la forma de resolver el error de API descrito arriba:

```bash theme={null}
clickhousectl cloud service backup-config update "$CH_ID" \
  --clear-backup-start-time \
  --backup-period-hours 12 \
  --json
```

```json theme={null}
{
  "backupPeriodInHours": 12.0,
  "backupRetentionPeriodInHours": 48.0
}
```

`--clear-backup-start-time` y `--backup-start-time` no se pueden combinar; el parser rechaza el par con el código de salida `2`:

```text theme={null}
error: the argument '--clear-backup-start-time' cannot be used with '--backup-start-time <BACKUP_START_TIME>'
```

Para cambiar una hora de inicio en lugar de eliminarla, pase el nuevo `--backup-start-time` por sí solo; este sobrescribe el valor almacenado.

<Note>
  Modificar la programación de backups puede generar cargos mensuales más altos por almacenamiento, ya que es posible que algunos de los backups no queden cubiertos por los backups predeterminados del service. Consulte ["Comprender el costo de los backups"](/es/products/cloud/guides/backups/review-and-restore-backups#understanding-backup-cost).
</Note>
