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 importar datos a Memorystore para Redis, se copia el 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.

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 es posible que los datos se borren por completo. Puedes volver a intentar la importación con el mismo archivo RDB o con 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 tu instancia se recupere con una caché completamente borrada. Este es el caso de las instancias de nivel básico y 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 extras cuando se usa la consola de Google Cloud. Para exportar a 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, puedescrear un panel para supervisar el uso de la 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 crea un nuevo proceso secundario para tomar la instantánea. Redis utiliza la creación de copias durante la escritura durante este proceso.

Esto significa que la bifurcación inicial asigna una memoria adicional mínima, pero se duplican las páginas que cambia el tráfico de escritura del servidor Redis. Por lo tanto, en períodos de operaciones de escritura altas, en el peor de los casos, la huella de memoria de Redis se duplica, lo que hace que falle la operación de exportación.

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 uno 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 sencilla es aplicar los roles de IAM Administrador de Redis para Cloud Memorystore y Administrador de almacenamiento a la cuenta de usuario. Sin embargo, esta configuración puede no ser adecuada para algunas cuentas de usuario, ya que les otorga permisos para crear, editar o borrar recursos a los que no deberían tener acceso. Para obtener instrucciones sobre cómo establecer permisos mínimos restringidos, consulta Otorga permisos restringidos para importación y 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 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 de finalización no está disponible durante la importación y exportación. Para verificar si la operación está en curso, consulta la página de detalles de la instancia. Para ver la página de detalles de la instancia, haz clic en el ID de la instancia en la página de 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 muestra 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 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 admitir la sobrecarga de copia en escritura, si se tocan muchas páginas durante el proceso de exportación.

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

Exportación e importación a instancias con réplicas de lectura

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

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

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

¿Qué sigue?