Información acerca de la importación y exportación de datos

En esta página, se explica cómo funcionan las importaciones y exportaciones en Memorystore para Redis.

La función de importación y exportación usa la función nativa de instantáneas de RDB de Redis a fin de importar o exportar datos fuera de una instancia de Memorystore para Redis. El uso del formato nativo de RDB evita los compromisos a largo plazo y facilita el traslado de datos dentro de Google Cloud o fuera de Google Cloud. La importación y la exportación usa depósitos de Cloud Storage para almacenar archivos RDB.

El comportamiento de una instancia de Memorystore para Redis durante la exportación es muy similar al comando BGSAVE en Redis de código abierto. Para las importaciones de Memorystore para Redis, copia tu archivo RDB en el directorio de datos de tu instancia.

A fin de obtener instrucciones para importar y exportar archivos RDB, consulta Importa datos a una instancia de Redis y Exporta datos desde una instancia de Redis.

Si quieres obtener instrucciones para programar exportaciones de RDB con Cloud Scheduler, consulta Programa exportaciones de bases de datos de Memorystore para Redis con Cloud Scheduler.

Comportamiento de las funciones de importación

  • Para obtener un rendimiento óptimo, debes importar desde los depósitos de Cloud Storage ubicados en la misma región que tu instancia de Redis.

  • Tu instancia de Redis no está disponible durante una operación de importación. Tu instancia estará disponible después de que finalice la operación de importación.

  • Si una importación se realiza correctamente, los datos existentes en la instancia se reemplazan por los datos del archivo RDB.

  • Si una importación falla por algún motivo, la instancia se pone en línea, pero los datos se pueden limpiar por completo. Puedes volver a intentar la importación con el mismo archivo RDB o puedes usar otro archivo RDB para restablecer los datos.

  • Tu instancia de Memorystore para Redis puede importar archivos RDB desde la misma versión de Redis y desde una versión anterior, pero no puede importar archivos RDB desde una versión más reciente.

  • Una operación de importación se puede cancelar, pero debes tener en cuenta que la cancelación hace que tu instancia se recupere con una caché completamente vacía. Este es el caso de las instancias de nivel Básico y nivel Estándar.

  • Una instancia solo puede importar copias de seguridad de versiones anteriores de Redis. Una instancia que ejecuta Redis 5.0 puede importar un RDB exportado desde Redis 4.0, pero una instancia que ejecuta Redis 4.0 no puede importar un RDB desde Redis 5.0.

Comportamiento de las funciones de exportación

  • Puedes leer y escribir datos en tu instancia de Redis durante una operación de exportación. Sin embargo, no puedes realizar ninguna operación de administrador, como escalar, actualizar o configurar tu instancia.

  • La instancia puede experimentar un aumento de la latencia durante la exportación.

  • Para obtener un rendimiento óptimo, debes exportar tus copias de seguridad de RDB a los depósitos de Cloud Storage ubicados en la misma región que tu instancia de Redis.

  • Durante una exportación, el archivo RDB se guarda en un bucket de Cloud Storage que elijas.

  • Puedes cancelar una operación de exportación en cualquier momento. La cancelación no afecta los datos ni la disponibilidad de una instancia.

    • Cuando se cancela una exportación, se borra el archivo RDB que se escribe en el bucket de Cloud Storage y se libera la memoria que usa el proceso BGSAVE.
  • Una exportación puede reemplazar un archivo existente con el mismo nombre sin permisos adicionales cuando se usa la consola de Google Cloud. Para exportar un archivo existente con gcloud, la cuenta de usuario necesita el permiso storage.objects.delete.

Exporta con una carga de escritura alta

Si ejecutas una exportación durante un período de carga de escritura alta tu instancia puede aumentar hasta 2 veces el uso de memoria, por lo que la operación de exportación fallará. Debes realizar operaciones de exportación durante los períodos de escritura bajos. Para supervisar cuántos datos de Redis se almacenan en tu instancia, puedes crear un panel para supervisar el uso de memoria y supervisar las métricas de uso de memoria de la instancia con Cloud Monitoring.

La exportación de Memorystore para Redis usa la función BGSAVE de Redis a fin de tomar un resumen de los datos de una instancia. Cuando ejecutas BGSAVE, Redis bifurca un nuevo proceso secundario para tomar la instantánea. Redis usa la copia en escritura durante este proceso.

Esto significa que la bifurcación inicial asigna memoria adicional mínima, pero cualquier página a la que cambie el tráfico de escritura del servidor de Redis se duplica. Por lo tanto, en períodos de escritura alta, en el peor de los casos, el espacio en memoria de Redis se duplica, lo que provoca que la operación de exportación falle.

Exporta durante una operación de BGSAVE

No puedes exportar mientras se ejecuta una operación de BGSAVE. Las instancias de nivel estándar de Memorystore para Redis a veces ejecutan operaciones de resincronización completas o "sincronizaciones completas" a fin de mantener la sincronización principal y la réplica. Una sincronización completa usa el comando BGSAVE, que evita que Memorystore realice una exportación.

Para verificar si una operación de BGSAVE está en curso, consulta el extremo de la API redis.googleapis.com/persistence/rdb/bgsave_in_progress con el Explorador de métricas.

Para consultar las métricas de un recurso supervisado usando el Explorador de métricas, haz lo siguiente:

  1. En el panel de navegación de la consola de Google Cloud, elige Monitoring y, luego,  Explorador de métricas:

    Ir al Explorador de métricas

  2. En el elemento Métrica, expande el menú Seleccionar una métrica y, luego, selecciona un tipo de recurso y un tipo de métrica. Por ejemplo, para graficar la utilización de CPU de una máquina virtual, haz lo siguiente:
    1. (Opcional) Para reducir las opciones del menú, ingresa parte del nombre de la métrica en la Barra de filtros. En este ejemplo, ingresa utilization.
    2. En el menú Recursos activos, selecciona Instancia de VM.
    3. En el menú Categorías de métricas activas, selecciona Instancia.
    4. En el menú Métricas activas, selecciona Uso de CPU y, luego, haz clic en Aplicar.
  3. Para filtrar las series temporales que se muestran, usa el elemento Filter.

  4. Para combinar series temporales, usa los menús del elemento Agregación. Por ejemplo, para mostrar el uso de CPU de tus VM, según su zona, configura el primer menú como Mean y el segundo menú como zone.

    Todas las series temporales se muestran cuando el primer menú del elemento Agregación se establece como Sin agregación. La configuración predeterminada del elemento Agregación se determina según el tipo de métrica que seleccionaste.

Como alternativa, puedes usar tus propias herramientas de API de línea de comandos.

Permisos necesarios para importar y exportar

El usuario debe configurar permisos de IAM suficientes para importar o exportar archivos de RDB. La configuración de permisos más simple es aplicar los roles de IAM de Administrador de Cloud Memorystore Redis y Administrador de almacenamiento a la cuenta de usuario. Sin embargo, esta configuración puede ser inapropiada para algunas cuentas de usuario porque les da permisos con el objetivo de crear, editar o borrar recursos a los que no deberían tener acceso. Si quieres obtener instrucciones para configurar permisos mínimamente restringidos, consulta Otorga permisos restringidos para la importación y la exportación.

Duración de las importaciones y exportaciones

La duración de la importación o exportación depende del tamaño de la instancia y del tamaño del conjunto de datos en la instancia. Según el tamaño, las importaciones y exportaciones pueden tardar desde unos minutos hasta unas horas.

Por ejemplo, si importas o exportas una instancia de 10 GB con 8 GB de memoria usada, la operación puede tardar 5 minutos. Si importas o exportas una instancia de 120 GB con 100 GB de memoria usada, la operación puede tardar una hora.

Detén una importación o exportación

Para detener una importación o exportación, consulta las siguientes páginas:

Supervisa el progreso de la operación

La estimación de tiempo para la finalización no está disponible mientras se realiza la importación y la exportación. Puedes verificar si la operación está en curso en la página de detalles de la instancia. Para ver la página de detalles de la instancia, haz clic en tu ID en la página de la lista de instancias de Memorystore para Redis.

También puedes supervisar el progreso de una operación de importación mediante la ejecución del siguiente comando:

gcloud redis instances describe [INSTANCE_ID] --region=[REGION]

Aquí:

  • [INSTANCE_ID] es el ID de tu instancia de Memorystore para Redis.
  • [REGION] es la región en la que se encuentra tu instancia.

El comando genera state: IMPORTING o state: READY como uno de los campos de descripción.

Depósitos de Cloud Storage no compatibles

Los depósitos de Cloud Storage de los pagos del solicitante no son compatibles con las importaciones y exportaciones de Memorystore.

Protege tus depósitos de Cloud Storage

Debes asegurarte de que tu bucket de Cloud Storage tenga las restricciones correctas para evitar el acceso no autorizado a la copia de seguridad de RDB de Redis que contiene. Consulta las Opciones de control de acceso de Cloud Storage para obtener información sobre cómo proteger tus depósitos de Cloud Storage.

Asegúrate de tener memoria suficiente para completar una exportación

Para evitar que la exportación provoque escasez de memoria, debes tener un 50% de memoria libre en la instancia durante el proceso de exportación. Es posible que esto no sea necesario todo el tiempo, según la carga de escritura, pero tener un 50% de memoria libre garantiza que haya suficiente espacio libre para la sobrecarga de copia en escritura si se modifican muchas páginas durante el proceso de exportación.

Para conocer el uso actual de memoria de tu instancia, configura una alerta a fin de que te notifique cuando el uso de memoria alcance un límite personalizable. Además, debes configurar un panel de supervisión de memoria con Cloud Monitoring. Estas medidas te permiten comprender los patrones de uso de memoria de tus instancias. Comprender los patrones de uso de memoria te permite ajustar el tamaño de tu instancia de forma correcta cuando exportas a intervalos regulares.

Importa y exporta a instancias con réplicas de lectura

Para todas las instancias de Redis, incluidas las instancias habilitadas para la réplica de lectura, los datos se exportan desde el nodo principal.

En el caso de las instancias habilitadas para réplicas, la exportación puede aumentar la carga de CPU y el espacio en memoria del nodo principal.

Cuando importas datos a una instancia habilitada para la réplica de lectura, la instancia principal se reinicia durante la operación de importación y la instancia no está disponible hasta que los datos nuevos estén completamente cargados en la base de datos.

¿Qué sigue?