Descripción general de importación y exportación

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 Memorystore para Redis, 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.

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 conecta, pero los datos se pueden vaciar por completo. Puedes reintentar 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 deberías tener en cuenta que la cancelación hace que la instancia se recupere con una caché vacía por completo. 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 o 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 Google Cloud Console. 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. Con el fin de 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 Google Cloud's operations suite.

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

Esto significa que la bifurcación inicial asigna una memoria adicional mínima, pero las páginas que cambia el tráfico de escritura del servidor de Redis están duplicadas. Por lo tanto, en los 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 mediante el Explorador de métricas, haz lo siguiente:

  1. En Google Cloud Console, ve a Monitoring o usa el siguiente botón:
    Ir a Monitoring
  2. En el panel de navegación de Monitoring, haz clic en Explorador de métricas.
  3. En la barra de herramientas, selecciona la pestaña Explorador.
  4. Selecciona la pestaña Configuración.
  5. Expande el menú Selecciona una métrica y, luego, usa los submenús para seleccionar un tipo de recurso y una 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.

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 las funciones de IAM Administrador de Redis de Cloud Storage y Administrador de almacenamiento a la cuenta de usuario. Sin embargo, esta configuración puede ser inapropiada para algunas cuentas de usuario porque le otorga permisos para crear, editar o borrar recursos a los que no debería tener acceso. Si deseas obtener instrucciones para configurar permisos mínimamente 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 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

El tiempo estimado de finalización no está disponible durante la importación y 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 de 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]

Donde:

  • [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 una falta 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 alojar la sobrecarga de la copia en escritura si se tocan muchas páginas durante el proceso de exportación.

Para comprender el uso actual de la memoria de tu instancia, configura una alerta de Google Cloud's operations suite a fin de recibir una notificación cuando el uso de memoria alcance un límite personalizable. Además, debes configurar un panel de supervisión de memoria con Google Cloud's operations suite. 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 en intervalos regulares.

Importa y exporta a instancias con réplicas de lectura

Para todas las instancias de Redis, incluidas las instancias habilitadas de 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 la huella de memoria en el nodo principal.

Cuando importas datos en 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 se carguen por completo en la base de datos.

¿Qué sigue?