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. Memorystore para Redis importa si copias 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 una vez 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 por algún motivo una importación falla, la instancia se pone en línea, pero es posible que los datos se limpien por completo. Puedes reintentar la importación con el mismo archivo RDB o 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.

  • Se puede cancelar una operación de importación, pero debes tener en cuenta que la cancelación hace que la instancia se recupere con una caché completamente limpia. Este es el caso de las instancias de nivel Básico y las de 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 a través de 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. Si quieres supervisar la cantidad de datos de Redis almacenados 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 para tomar una instantánea de los datos de una instancia. Cuando se ejecuta BGSAVE, Redis bifurca un proceso secundario nuevo para tomar la instantánea. Redis usa la copia en escritura durante este proceso.

Esto significa que la bifurcación inicial asigna una memoria adicional mínima, pero se duplican las páginas que el tráfico de escritura del servidor de Redis cambie. Por lo tanto, en períodos de escrituras altas, en el peor de los casos, la huella de memoria de Redis se duplica, lo que hace 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 la consola de Google Cloud, ve a la página  Explorador de métricas:

    Ir al Explorador de métricas

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

  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 Filtro.

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

    Todas las series temporales se muestran cuando el primer menú del elemento Agregación se establece en Sin agregar. La configuración predeterminada para el elemento Agregación está determinada por el tipo de métrica que elegiste.

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

Permisos necesarios para importar y exportar

Un usuario debe configurar permisos de IAM suficientes para importar o exportar archivos RDB. La configuración de permisos más simple es aplicar los roles de IAM Administrador de Redis de Cloud Memorystore y Administrador de almacenamiento a la cuenta de usuario. Sin embargo, esta configuración puede ser inapropiada para algunas cuentas de usuario porque les otorga permisos para crear, editar o borrar recursos a los que no deberían tener acceso. Si quieres obtener instrucciones para configurar permisos con restricciones mínimas, consulta Cómo otorgar 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 conjunto de datos en la instancia. Según el tamaño, las importaciones y exportaciones pueden tardar entre unos minutos y algunas 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

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

También puedes supervisar el progreso de una operación de importación si ejecutas el 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 cause falta de memoria, debes tener un 50% de memoria libre en la instancia durante el proceso de exportación. Según la carga de escritura, es posible que esto no sea necesario todo el tiempo, pero tener un 50% de memoria libre garantiza que haya suficiente espacio libre para admitir la sobrecarga de la copia en escritura si se modifican muchas páginas durante el proceso de exportación.

Para comprender el uso de memoria actual de tu instancia, configura una alerta que te notifique cuando el uso de memoria alcance un umbral 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 correctamente cuando exportas en intervalos regulares.

Importa y exporta a instancias con réplicas de lectura

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

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

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

¿Qué sigue?