
Amazon RDS Aurora (MySQL) proporciona su propia replicación de baja latencia. Sin embargo, hay casos en los que puede ser beneficioso configurar la replicación de Aurora a un servidor MySQL externo, ya que Amazon RDS Aurora se basa en MySQL y admite la replicación nativa de MySQL. Estos son algunos ejemplos de cuándo la replicación de Amazon RDS Aurora a un servidor MySQL externo puede tener sentido:
- Replicación en otra nube o centro de datos (para mayor redundancia)
- Es necesario utilizar un esclavo de informes independiente
- Necesitas tener una copia de seguridad física adicional
- Necesita usar un sabor o bifurcación de MySQL diferente
- Tiene que caer a otra nube y volver
En esta publicación de blog, compartiré instrucciones sencillas paso a paso sobre cómo hacerlo.
Pasos para configurar la replicación de MySQL desde AWS RDS Aurora al servidor MySQL
- Habilite los registros binarios en el grupo de opciones en Aurora (formato Binlog = mixto). Esto tendría que ser reiniciado.
- Cree una instantánea y restáurela (cree una nueva instancia a partir de una instantánea). Esto solo es necesario para hacer una copia consistente con mysqldump. Como Aurora no permite privilegios «super», ejecute
mysqldump –Maestro–datos no es posible. La instantánea es la única forma de obtener una copia de seguridad coherente con la posición específica del registro binario. - Obtenga información de registro binario de la instantánea. En la consola, busque «Alarmas y eventos recientes» para la instancia de instantánea restaurada. Veamos algo como:
La posición de Binlog desde la recuperación de fallas es mysql-bin-changelog.000708 31278857
binlog posiciones sí choque recuperación está mysql–compartimiento–registro de cambios.000708 31278857
- Instale MySQL 5.6 (es decir, Percona Server 5.6) en una instancia EC2 separada (para Aurora 5.6; tenga en cuenta que debe usar MySQL 5.7 para Aurora 5.7). Después de que MySQL esté funcionando, importe las zonas horarias:
# mysql_tzinfo_to_sql/usr/share/zoneinfo/ | mysql
# mysql_tzinfo_to_sql/usr/share/zoneinfo/ | mysql
Ejemplo de configuración:log-bin = log-bin log-slave-updates binlog-format = MIXED server-id = 1000 relay-log = relay-bin innodb_log_file_size = 1G innodb_buffer_pool_size = 2G innodb_flush_method = O_DIRECT innodb_flush_method = O_DFh esto
[mysqld]
Iniciar sesión–compartimiento=Iniciar sesión–compartimiento
Iniciar sesión–esclavo–actualizaciones
binlog–formato=MEZCLADO
servidor–identificación=1000
relé–Iniciar sesión=relé–compartimiento
innodb_log_file_size=1G
innodb_buffer_pool_size=2G
innodb_flush_método=O_DIRECTO
innodb_flush_log_at_trx_commit=0 # ya que este es un esclavo de replicación
- A partir de ahora haremos todas las copias de seguridad de la instantánea restaurada. Primero obtenga todos los usuarios e impórtelos a la nueva instancia:
pt-show-grants -h myhost … amazonaws.com -u percona> grants.sql
punto–espectáculos–concesiones –h Mi anfitrión...amazonaws.com –tu percona > concesiones.sql
# verificar que las concesiones sean válidas y cargadas en MySQL
Realice una copia de seguridad de todos los esquemas excepto las tablas del sistema «mysql» como Aurora usando un formato diferente (asegúrese de conectarse al instante):host = «mi-instantánea… amazonaws.com» mysqldump –single-transaction -h $ host -u percona –triggers –routines –databases `mysql -u percona -h $ host -NBe» select group_concat ( separador schema_name ») from information_schema.schemata donde schema_name no está en (‘mysql’, ‘information_schema’, ‘performance_schema’) «‘> all.sql
anfitrión=«a mo-istantanea… amazonaws.com»
mysqldump –único–transacción –h PSanfitrión –tu percona
–disparadores –rutinas
–base de datos `mysql –tu percona –h PSanfitrión –NBe
«seleccione group_concat (separador de nombre_esquema ») de esquema_información.schemata donde nombre_esquema no está en (‘mysql’, ‘esquema_información’, ‘esquema_rendimiento’)»` > todos.sql
- Restaurar a la base de datos local:
mysql -h localhost
mysql –h anfitrión local < todos.sql
- Restaure los usuarios nuevamente (algunos usuarios pueden fallar al crear donde falta una base de datos):
- Descarga el certificado RDS/Aurora SSL:
# cd / etc / ssl # wget ‘https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem’ # chown mysql.mysql rds-combined-ca-bundle.pem
#cd/etc/ssl
# wget ‘https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem’
# chown mysql.mysql rds-combined-ca-bundle.pem
- Configurar la replicación de MySQL. Tome los valores para el nombre y la posición del registro binario del n. ° 3 anterior. Tenga en cuenta: ahora nos estamos conectando a la instancia actual, no a una instantánea:
# mysql -h localhost … mysql> CAMBIAR MAESTRO A MASTER_HOST = ‘dev01-aws-1 …’, MASTER_USER = ‘awsreplication’, MASTER_PASSWORD = ‘
‘, MASTER_LOG_FILE =’ mysql-bin-changelog.000708 ‘, MASTER_LOG_POS = 31278857, MASTER_SSL_CA =’ /etc/ssl/rds-combined-ca-bundle.pem ‘, MASTER_SSL_CAPATH =’ ‘, MASTER_; mysql> iniciar esclavo; # mysql -h anfitrión local
...
mysql> CAMBIO MAESTRO A
MASTER_HOST=‘dev01-aws-1…’,
MASTER_USER=‘ausreplicación’,
CONTRASEÑA MAESTRA=‘
‘ ,MASTER_LOG_FILE = ‘mysql-bin-changelog.000708’,
MASTER_LOG_POS = 31278857,
MASTER_SSL_CA = ‘/etc/ssl/rds-combined-ca-bundle.pem’,
MASTER_SSL_CAPATH = »,
MASTER_SSL_VERIFY_SERVER_CERT=1;
mysql> comienza esclavo;
- Verifique que el esclavo esté funcionando. Opcionalmente, agregue la opción SQL_Delay a CHANGE MASTER TO (o en cualquier momento) y especifique el retraso del esclavo en segundos.
Espero que estos pasos sean útiles para crear una réplica externa de MySQL.
Tal vez te guste
Para ayudarlo a mantener el control total de sus datos mientras migra a AWS Aurora, consulte nuestro seminario web, Migración a AWS Aurora: una lista de verificación para el éxito. El seminario web cubre cómo garantizar que su clúster de Aurora funcione y funcione como se espera y otra información relevante para garantizar una migración exitosa.
Si su empresa está considerando mudarse a la nube a través de AWS, consulte nuestro seminario web que detalla cómo implementar un plan de migración eficiente utilizando los productos y soluciones de Terraform y Percona.