Copias de seguridad

Backups programados Multisite que reducen RTO y costes

backups programados multisite

¿Cuánto tiempo y cuánto coste asume una organización cuando un sub‑sitio crítico de WordPress Multisite queda inaccesible? Fallos en backups monolíticos o programaciones mal calibradas multiplican RTO y consumo de recursos, afectando rendimiento de la red y la factura del hosting.

Backups programados para Multisite: mejor opción en la mayoría de casos. Para redes Multisite con cambios frecuentes, la opción preferible suele ser la de backups programados automáticos que combinen copias incrementales, backup offsite cifrado y restauración granular por sub‑sitio; no obstante, si el proveedor de hosting ofrece snapshots offsite con RPO/RTO garantizados y pruebas de restauración documentadas, esas snapshots pueden ser una alternativa o complemento válido. Evaluar cada caso según RPO/RTO, rendimiento y costes antes de decidir.

Se recomienda programar según la frecuencia de cambios (diario o varias veces al día), monitorizar fallos y probar restauraciones periódicas para garantizar recuperación rápida. Siguiendo las plantillas y los comandos cron/WP‑CLI se despliega y valida la solución.

Índice

Anuncio

Resumen del proceso: pasos y objetivos

  1. Planificar política de retención y RPO/RTO: definir frecuencias y destino.
  2. Preparar baseline full: crear copia completa inicial y verificar checksums.
  3. Implantar incrementales y throttling: programar cron/WP‑CLI y limitar I/O.
  4. Enviar offsite cifrado: AWS/GCP/Azure o proveedor con SLA.
  5. Probar restauraciones granulares: restaurar sub‑sitio en staging y documentar.

backups programados multisite

Paso 1: planificar política de retención y objetivos

La política de retención define cuánto histórico se guarda y cómo se recupera.
La política enlaza RPO (pérdida aceptable) y RTO (tiempo para volver a funcionar).
Definir estos números evita backups innecesarios y reduce costes operativos.

¿Qué RPO y RTO elegir según tamaño?

Pequeñas redes (<50 sitios) suelen aplicar RPO 24 h y RTO <12 h.
Redes medianas (50–500) usan RPO 4–12 h y RTO <6 h.
Grandes redes (>500) piden RPO <1 h y RTO <2 h en servicios críticos.

¿Cómo calcular almacenamiento y costes?

Estimar tamaño medio por sitio y multiplicar por número de sitios para dimensionar S3/GCS.
Configurar lifecycle rules para pasar a almacenamiento frío tras 30–90 días.
Controlar llamadas API y egress que encarecen la cuenta en AWS o GCP.

Proporcionar plantillas de retención ajustadas al tamaño de la red facilita gobernanza y control de costes.

Indicar siempre RPO y RTO asociados a cada tier y reflejarlos en la regla de ciclo de vida del bucket (almacenamiento S3) para automatizar movimiento a clases más económicas.

Anuncio

Paso 2: preparar baseline full y copias incrementales

La copia full inicial es imprescindible para que los incrementales funcionen.
Sin baseline completo, los incrementales no se pueden reconstruir correctamente.
Verificar checksum y metadatos de cada backup tras la creación.

¿Qué incluir en el full inicial?

Incluir base de datos completa, mu‑plugins, themes activos y uploads por sitio.
Marcar y guardar metadatos: fecha, tamaño, checksum, lista de tablas incluidas.
Guardar un manifiesto JSON por backup con mapping de tablas por blog_id.

¿Cómo funcionan los incrementales en multisite?

Los incrementales guardan cambios en archivos y bloques de base de datos desde el último full.
Deben referenciar el ID del baseline para su aplicación correcta.
Controlar que las operaciones de la base de datos usen single‑transaction para consistencia.

Paso 3: implementar backups programados con cron y WP‑CLI

Usar cron y scripts evita depender de WP‑Cron en redes grandes y reduce fallos.
WP‑CLI aporta exportaciones y operaciones deserializadas que facilitan restauraciones.
Programar en ventanas de baja carga y usar bloqueo para evitar solapamientos.

¿Ejemplo práctico de crontab y script?

Crontab sugerido: ejecutar script a las 03:00 con logging rotado.
Ejemplo de entrada: 0 3 * * * /usr/local/bin/backup_multisite.sh >> /var/log/backup_multisite.log 2>&1
Usar flock o mecanismos similares para impedir ejecuciones concurrentes.

Bash LOCKFILE=/var/lock/backup_multisite.lock exec 200>$LOCKFILE flock -n 200 || exit 1 DATE=$(date +%F) mysqldump --single-transaction -h DB_HOST -u DB_USER -p'PASS' DB_NAME > /backups/full/db-$DATE.sql gzip /backups/full/db-$DATE.sql tar -czf /backups/full/files-$DATE.tar.gz wp-content mu-plugins themes --exclude='wp-content/cache' aws s3 cp /backups/full/ s3://mi-bucket/ --recursive --storage-class STANDARD_IA sha256sum /backups/full/* > /backups/metadata/checksums-$DATE.txt

¿Cómo usar WP‑CLI para tareas granulares?

WP‑CLI exporta contenidos por site y ejecuta search‑replace con soporte deserializado.
Comando útil: wp --url=sub.example.com export --dir=/tmp/exports --filename_format=subsite-{site_id}-%Y%m%d.xml
Para search/replace deserializado: wp search-replace 'old' 'new' --recurse-objects --all-tables

Para redes grandes es imprescindible cuantificar el impacto que generan los backups programados: calcular el tamaño total a respaldar como tamaño_medio_por_sitio × número_de_sitios y planificar I/O y egress en función de ese número. Por ejemplo, si el tamaño medio por sitio es 200 MB y la red tiene 500 sitios, el baseline full inicial puede ocupar ~100 GB; un mysqldump y un tar de archivos generarán picos de I/O y uso de CPU que pueden afectar a la latencia de las peticiones. Para minimizar el impacto conviene usar backups incrementales Multisite, aplicar throttling con ionice/pv/rsync --bwlimit, limitar concurrencia de multipart uploads a S3 y escalonar jobs por bloques de sitios.

Monitorizar con iostat, vmstat y métricas de la base de datos, y calcular el coste de egress a partir del volumen transferido hacia almacenamiento S3/GCS para estimar la reducción de costes de hosting si se reduce la frecuencia de fulls y se optimizan incrementales. Documentar estos números (IOPS promedio, MB/s transferidos, CPU % durante el backup) permite decidir ventanas y RTO aceptables.

Paso 4: restauración granular y pruebas documentadas

Restaurar solo un sub‑sitio exige extraer tablas wp_{blogid}_* y uploads del blog_id.
También exige reconciliar usuarios globales y deserializar opciones con cambios de dominio.
Probar la restauración en un entorno staging idéntico y medir tiempos reales.

¿Pasos básicos para restaurar un sub‑sitio?

Identificar blog_id y enumerar tablas asociadas antes de extraer.
Dump específico: mysqldump DB_NAME wp_3_posts wp_3_postmeta wp_3_options > subsite-3.sql
Copiar uploads: rsync -av /backups/uploads/sites/3/ /var/www/html/wp-content/uploads/sites/3/

¿Cómo tratar usuarios y colisiones?

Los usuarios son globales en Multisite; mapear IDs evita sobrescribir cuentas.
Si hay colisiones, exportar solo wp_usermeta relevante y usar scripts de reconciliación.
Registrar la relación de user_id original vs nuevo en el informe de restauración.

Una prueba de restauración granular debe ser reproducible y medible. Procedimiento resumido:

  1. Elegir un sub‑sitio de prueba y anotar blog_id, tamaño de DB y uploads
  2. En staging, restaurar dump específico: mysqldump DB_NAME wp_3_posts wp_3_postmeta wp_3_options > subsite-3.sql && mysql DB_STAGING < subsite-3.sql
  3. Restaurar archivos: rsync -av --checksum /backups/uploads/sites/3/ /var/www/html/wp-content/uploads/sites/3/
  4. Ejecutar WP‑CLI para ajustar URLs y serialized data: wp search-replace 'https://prod.example' 'https://staging.example' --url=sub.example.com --recurse-objects --all-tables
  5. Verificar checklist: login admin, conteo de posts coincidente, integridad de media por checksum, formas y endpoints críticos con curl, pruebas funcionales básicas (crear post, subir media), tiempos medidos de inicio a servicio funcional para calcular RTO. Registrar resultados en un informe (timestamp, pasos, errores, checksum, duración) y repetir la prueba tras cambios en cron backups o en la configuración de offsite para validar la consistencia de las copias incrementales y la eficacia de las pruebas de restauración

Anuncio

Comparativa práctica: plugins, cron, S3 y hosting

La tabla compara criterios decisivos para elegir solución: programación, incrementales, restauración granular, límite de red, destino offsite, cifrado y coste estimado.

Solución Scheduling Incremental Restore por sub‑sitio Máx recomendado (estimación orientativa; los valores son orientativos y dependen de tamaño medio por sitio, IOPS, ventana de backup y resultados de pruebas de rendimiento; validar con pruebas de escalado antes de imponer un límite rígido) Destino offsite Coste aprox.
UpdraftPlus (plugin) Cron/plugin (daily–hourly) Sí (files + DB) Parcial; depende de export/import <50 sitios S3/GCS/FTP €50–€300/año
BlogVault (SaaS) Scheduler propio (hourly) Sí, deduplication Sí, automatizado <500 sitios En su nube + S3 €200–€1.500/año
ManageWP (SaaS) Scheduler propio (custom) Limitado; restauración site‑by‑site con addons <300 sitios S3/Drive/FTP €100–€800/año
Hosting (snapshots a nivel bloque) Snapshots programados Sí (bloque) Restauración host; mapeado manual >500 sitios Replicación entre regiones Variable alta (GB y egress)
WP‑CLI + scripts (DIY) Cron personalizado Depende del diseño Sí, si script lo soporta Escalable con ingeniería S3/GCS/Azure Coste bajo en licencias; operativo alto
Verificar la capacidad de restauración por sub‑sitio y el método técnico es obligatorio: muchos proveedores declaran soporte Multisite sin detallar si usan mapping de tablas DB + archivos. Guardar metadatos JSON con checksum acelera auditorías y pruebas.

Flujo rápido de backups programados

1. Planificación
RPO/RTO, frecuencia, destino
2. Baseline Full
DB + archivos + manifiesto
3. Incrementales
Throttling y dedup
4. Offsite
S3/GCS/Azure, cifrado KMS
5. Prueba
Restore sub‑sitio y reporte

Errores que arruinan el resultado

Confiar solo en backups alojados en el mismo servidor deja la red expuesta a fallo total de host.
Programar fulls frecuentes sin estrategia de retención dispara I/O y costes.
Asumir que "soporta Multisite" implica restauración por sub‑sitio suele ser incorrecto.

¿Qué pasa si falta el baseline full?

Los incrementales no se pueden aplicar y la restauración será incompleta.
La única solución suele ser recuperar el full desde copia antigua o generar un full nuevo.
Eso aumenta RTO y complica auditorías de cumplimiento.

¿Errores en tablas compartidas y serialización?

Ignorar tablas wp_sitemeta, wp_blogs y wp_##_options rompe la red al restaurar.
Cambios de dominio sin deserializar opciones provocan arrays corruptos.
Mapear tablas y usar wp‑cli search-replace con --recurse-objects evita estos fallos.

Anuncio

Cuándo no funciona este método y alternativas

Este enfoque no aplica si se gestiona un WordPress single‑site o sitios estáticos sin cambios frecuentes, o cuando el proveedor de hosting ofrece snapshots offsite con RPO/RTO garantizados que cumplen requisitos. En esos casos conviene confiar en snapshots de hosting y complementar con exportaciones periódicas.

Síntesis y recomendación accionable antes de desplegar

La recomendación es clara: implantar backups programados que combinen un full inicial, incrementales con checksum, almacenamiento offsite cifrado y pruebas periódicas de restauración por sub‑sitio.
Dimensionar ventanas de backup para minimizar I/O y aplicar throttling en redes grandes.
Formalizar una política de retención alineada con RPO/RTO y normativa (GDPR/LOPDGDD).

Para avanzar con una puesta en marcha segura, se ofrece diagnóstico técnico y plan de retención adaptado.

Preguntas frecuentes

¿Puedo usar un plugin para todo el proceso?

Sí, algunos plugins cubren cron, incrementales y destino offsite, pero hay que verificar la restauración por sub‑sitio.
No todos documentan el mapping de tablas por blog_id; confirmar antes de comprar.

¿Con qué frecuencia hacer backups en una red de sitios?

La opción práctica es incrementales cada 4 horas y full semanal.
Esto ofrece RPO aceptable sin costes extremos en I/O.

¿Cómo se prueba que un backup es válido?

Restaurando el backup en un entorno staging y validando login, posts y media.
Registrar RTO real y errores para la auditoría.

¿Es suficiente almacenar en el mismo datacenter?

No es suficiente.
El almacenamiento offsite evita pérdida por fallo físico del host o del datacenter.

¿Qué requisitos de cumplimiento hay en españa?

GDPR aplica y exige protección y trazabilidad de datos personales.
La LOPDGDD adapta el RGPD en España; conservar backups sin control puede vulnerar obligaciones.

¿Cuánto cuesta mantener backups para 100 sitios?

Coste variable; una estimación práctica: €500–€2.000/año según frecuencia y uso de snapshot vs S3.
El mayor coste suele ser egress y llamadas API en proveedores cloud.

¿Qué herramientas ayudan a automatizar

Algunas soluciones SaaS automatizan este flujo; otras requieren scripts WP‑CLI y dump/rsync.
Verificar que el proveedor documenta y prueba el proceso.

Anuncio

Cierre con pasos prácticos finales

Comprobar ahora el último backup: revisar timestamp, checksum y metadatos.
Programar una prueba de restauración de un sub‑sitio en staging y documentar el resultado.
Si se necesita respaldo técnico para diseñar el plan, la revisión técnica puede incluir scripts cron/WP‑CLI, policy templates y pruebas reproducibles.

Plantilla rápida de retención (copiar): - Frecuencia: incrementales 1/día, full semanal. - Retención: diarios 14 días, semanales 8 semanas, mensuales 6 meses. - Destino: S3 Standard‑IA con lifecycle a Glacier tras 90 días. - Pruebas: restauración sub‑sitio mensual; informe con RTO y errores.

Los datos muestran el contexto:

La evidencia obliga a diseñar backups que cumplan normativas y ofrezcan restauración comprobada.

RESUMIR CON IA: Extrae lo importante

Comparte este artículo:

Josu Barrios

Josu Barrios

Somos especialistas en mantenimiento WordPress para empresas, profesionales y tiendas online. Contamos con experiencia en seguridad web, optimización de rendimiento, actualizaciones, copias de seguridad y resolución de incidencias técnicas, ayudando a que cada sitio funcione de forma rápida, estable y protegida. Nuestro enfoque combina soporte técnico profesional, buenas prácticas de seguridad y seguimiento continuo para ofrecer un servicio fiable, transparente y orientado a resultados reales.