Migrar datos de ScaleGrid para Redis™* de un servidor a otro es un requisito común que escuchamos de nuestros clientes. Dos de las razones principales que escuchamos a menudo se deben a la migración de hardware o la necesidad de dividir los datos entre servidores.
Normalmente, desea migrar con un tiempo de inactividad mínimo mientras usa las herramientas estándar de Redis. En esta publicación de blog, lo guiaremos a través del proceso utilizando la herramienta de código abierto Redis-Shake. Desarrollado y mantenido por el equipo de NoSQL en el departamento de base de datos de Alibaba-Cloud, Redis-Shake le permite migrar fácilmente datos de Redis entre clústeres de Redis. Si bien esta guía está más dirigida a las implementaciones de ScaleGrid for Redis™*, esta guía también se puede usar para otros tipos de implementaciones de Redis con algunas modificaciones menores.
Sin más preámbulos, ¡comencemos con la guía de migración!
Requisitos previos
Necesitarás una máquina con Linux o Windows para realizar la migración. (Si es necesario, puede ser la máquina de origen o la de destino).
Algo importante que debe asegurarse antes de continuar es que Redis-Shake no es compatible con los clústeres habilitados para SSL a partir de ahora. Asegúrese de que tanto el clúster de origen como el de destino no estén habilitados para SSL.
Regla de cortafuegos
Asegúrese de haber creado una regla de firewall para permitir que su máquina Linux/Windows se conecte a sus clústeres de origen y de destino. Consulte este enlace para obtener más información sobre cómo configurar esto en ScaleGrid.
Descargar Redis-Shake
Descargue y descomprima Redis-Shake en la máquina Linux/Windows después de elegir la versión más reciente/estable de este enlace. También puede usar los siguientes comandos a continuación para descargar la última versión a partir de hoy (v2.1.1).
wget https://github.com/alibaba/RedisShake/releases/download/release-v2.1.1-20210903/release-v2.1.1-20210903.tar.gz tar -xvzf release-v2.1.1-20210903.tar.gz cd release-v2.1.1-20210903/
A continuación, le mostraremos dos casos de uso diferentes para Redis-Shake.
- Migración de datos desde un Standalone y Master-Slave
- Migración de datos en modo clúster
Migración de datos:independiente y maestro-esclavo
En esta sección, le mostraremos cómo migrar sus datos en estas diferentes configuraciones:
- De autónomo a autónomo
- Maestro-Esclavo a Maestro-Esclavo
- Independiente a Maestro-Esclavo (y viceversa)
1. Recopilar información
Tome nota de la siguiente información de la pestaña Resumen en la página de detalles del clúster tanto de su clúster de origen como de destino:
- Nombre de host :La cadena de conexión tiene el formato [nombre de host:puerto]. Debería verse así:EX-redms-00-redis-master.example.domain.io
- (En el caso de un clúster Maestro-Esclavo, nos conectaremos al maestro).
- Puerto :6379
- Contraseña :Puede encontrar su contraseña y restablecerla desde la consola en Credenciales
2. Editar archivo de configuración
Abra su archivo “redis-shake.conf” en la carpeta principal y edite las siguientes variables:
source.type = standalone
source.address = <source_hostname>:6379
source.password_raw = <source_password>
target.type = standalone
target.address = <target_hostname>:6379
target.password_raw = <target_password>
3. Sincronizar datos
Ejecute el siguiente comando para sincronizar los datos entre el clúster de origen y el de destino:
$ ./redis-shake -type sync -conf redis-shake.conf
4. Esperar registros
Espere hasta que vea la siguiente información en los registros:
sync rdb done.
Esto significa que la sincronización completa se ha completado y comienza la sincronización incremental.
5. Detener sincronización incremental
Si +writeBytes=0
se ve durante mucho tiempo, eso significa que no se incrementan nuevos datos. Puede detener la sincronización incremental presionando Ctrl+C . Debería verse así:
sync: +forwardCommands=0 +filterCommands=0 +writeBytes=0
6. Número de coincidencia de llaves
Ahora siga este enlace a nuestro documento de ayuda que lo ayuda a conectarse a ambos clústeres usando redis-cli y luego haga coincidir la cantidad de claves entre sus clústeres usando el info keyspace
comando en ambos clústeres.
¡Y eso es todo! Ahora ha migrado correctamente los datos de un clúster a otro mediante Redis-Shake. Si tiene clústeres en modo de clúster, es posible que desee consultar la siguiente sección de esta guía para ver qué debe hacer si está ejecutando ese tipo de clúster.
Migración de datos:modo de clúster
En esta sección, le mostraremos cómo migrar datos de una implementación de Redis en modo clúster a otro clúster.
1. Recopilar información
Tome nota de la siguiente información de la pestaña Resumen en la página de detalles del clúster tanto de su clúster de origen como de destino:
- Nombre de host :La cadena de conexión tiene el formato [nombre de host1:puerto], [nombre de host2:puerto], [nombre de host3:puerto]. Debería verse así:EX-redms-03-redis-master.example.domain.io, EX-redms-06-redis-master.example.domain.io, EX-redms-09-redis- maestro.ejemplo.dominio.io
- Puerto :6379
- Contraseña :Puede encontrar su contraseña y restablecerla desde la consola en Credenciales
2. Editar archivo de configuración
Abra su archivo “redis-shake.conf” en la carpeta principal y edite las siguientes variables:
source.type = cluster
source.address = <source_hostname1>:6379;<source_hostname2>:6379;<source_hostname3>:6379
source.password_raw = <source_password>
target.type = standalone
target.address = <target_hostname1>:6379;<target_hostname2>:6379;<target_hostname3>:6379
target.password_raw = <target_password>
3. Sincronizar datos
Ejecute el siguiente comando para sincronizar los datos entre el clúster de origen y el de destino:
$ ./redis-shake -type sync -conf redis-shake.conf
4. Esperar registros
Espere hasta que vea la siguiente información en los registros:
sync rdb done.
Esto significa que la sincronización completa se ha completado y comienza la sincronización incremental.
5. Detener sincronización incremental
Si +writeBytes=0
se ve durante mucho tiempo, eso significa que no se incrementan nuevos datos. Puede detener la sincronización incremental presionando Ctrl+C . Debería verse así:
sync: +forwardCommands=0 +filterCommands=0 +writeBytes=0
6. Número de coincidencia de llaves
Ahora siga este enlace a nuestro documento de ayuda que lo ayuda a conectarse a ambos clústeres usando redis-cli y luego haga coincidir la cantidad de claves entre sus clústeres usando el info keyspace
comando en ambos clústeres.
¡Y eso es todo! Ahora ha migrado correctamente los datos de un clúster en el modo de clúster a otro mediante Redis-Shake. Para obtener más información sobre Redis-Shake y sus capacidades, visite su página de GitHub para obtener más información y obtener la última versión.
|
*Redis es una marca comercial de Redis Labs Ltd. Cualquier derecho sobre la misma está reservado a Redis Labs Ltd. Cualquier uso por parte de ScaleGrid es solo para fines de referencia y no indica ningún patrocinio, respaldo o afiliación entre Redis y ScaleGrid.