DBAtlas · Atlas de operações de banco de dados

Fazer o bootstrap do MySQL Router em um InnoDB Cluster

MySQLRouter e proxy

Comando

# Generates config from metadata and creates the router account; --user is required when run as root
mysqlrouter --bootstrap icadmin@db1:3306 --directory /etc/mysqlrouter/prod --account routeruser --account-create if-not-exists --name router01 --conf-bind-address 0.0.0.0 --user mysqlrouter
/etc/mysqlrouter/prod/start.sh
# Ports: 6446 RW, 6447 RO, 6450 RW split (classic); 6448 / 6449 X protocol
mysql -h app-host -P 6446 -u app -p -e "SELECT @@hostname"
mysql -h app-host -P 6447 -u app -p -e "SELECT @@hostname"
mysqlsh icadmin@db1:3306 -- cluster list-routers

O que faz

Registra o Router nos metadados do cluster e gera a conta e a configuração; a aplicação alcança o primário atual pela porta RW e os secundários em round-robin pela porta RO.

Quando usar

Ao colocar uma camada de failover transparente na frente de um InnoDB Cluster / ClusterSet / ReplicaSet; tipicamente um Router por servidor de aplicação.

Atenção

O Router não guarda estado; rodá-lo ao lado da aplicação evita um ponto único de falha, um único Router central não. A conta de bootstrap é usada apenas durante o bootstrap; o Router lê os metadados com sua própria conta (routeruser). Ele descobre as mudanças de topologia pelo metadata cache sem refazer o bootstrap. A porta de split RW (6450) envia leituras dentro de uma transação ao primário e as demais aos secundários; cuidado com aplicações que esperam read-your-writes. A versão do Router não deve ser mais antiga que os servidores MySQL do cluster.

Abrir no DBAtlas →

Relacionados