MySQL Replication
Resumo
- Gerencia a replicação do servidor MySQL, réplica, status primário, obtém e altera o host primário.
Parâmetros
Parâmetro | Tipo | Escolhas | Valores padrão | Comentários |
|---|---|---|---|
channel | string | | Nome do canal de replicação. A replicação de múltiplas fontes é compatível com MySQL 5.7. Mutualmente exclusiva com connection_name. Para obter mais informações, consulte https://dev.mysql.com/doc/refman/8.0/en/replication-multi-source.html. |
check_hostname | boolean | Escolhas:
| Se deve validar o nome do host do servidor quando uma conexão SSL for necessária. Corresponde a MySQL CLIs --ssl switch. Definir como 'no' desabilita a verificação do nome do host. Use com cuidado. Esta opção não tem efeito no MySQLdb. |
connection_name | string | | Nome da conexão principal. Compatível com MariaDB 10.0.1. Mutuamente exclusivo com o channel. Para obter mais informações, consulte https://mariadb.com/kb/en/library/multi-source-replication/. |
fail_on_error | boolean | Escolhas:
| Falha em erro ao chamar o mysql. |
mode | string | Escolhas:
| Modo de operação do módulo. Pode ser changeprimary | changemaster (CHANGE PRIMARY | MASTER TO), getprimary | getmaster (SHOW PRIMARY | MASTER STATUS), getreplica | getslave (SHOW REPLICA | SLAVE STATUS), startreplica | startslave (START REPLICA | SLAVE), stopreplica | stopslave (STOP REPLICA | SLAVE), resetprimary | resetmaster (RESET PRIMARY | MASTER) - supported since community.mysql 0.1.0, resetreplica, resetslave (RESET REPLICA | SLAVE), resetreplicaall, resetslave (RESET REPLICA | SLAVE ALL). |
primary_auto_position | boolean | Escolhas:
| Se o host usa replicação baseada em GTID ou não. Mesmo como a variável MASTER_AUTO_POSITION mysql. aliases: master_auto_position |
primary_connect_retry | integer | | O mesmo que a variável MASTER_CONNECT_RETRY mysql. aliases: master_connect_retry |
primary_delay | integer | | Atraso de tempo em relação ao estado primário (em segundos). Igual à variável MASTER_DELAY mysql. Disponível no MySQL 5.6. Para obter mais informações, consulte https://dev.mysql.com/doc/refman/8.0/en/replication-delayed.html. aliases: master_delay |
primary_host | string | | Igual à variável MASTER_HOST do mysql. aliases: master_host |
primary_log_file | string | | O mesmo que a variável MASTER_LOG_FILE mysql. aliases: master_log_file |
primary_log_pos | integer | | O mesmo que a variável MASTER_LOG_POS mysql. aliases: master_log_pos |
primary_password | string | | Igual à variável MASTER_PASSWORD mysql. aliases: master_password |
primary_port | integer | | Igual à variável MASTER_PORT do mysql. aliases: master_port |
primary_ssl | boolean | Escolhas:
| Igual à variável MASTER_SSL mysql. Ao definir como yes, a tentativa de conexão só terá sucesso se uma conexão criptografada puder ser estabelecida. Para obter detalhes, consulte a documentação de replicação criptografada do MySQL. aliases: master_ssl |
primary_ssl_ca | string | | Igual à variável MASTER_SSL_CA mysql. Para obter detalhes, consulte a documentação de replicação criptografada do MySQL. aliases: master_ssl_ca |
primary_ssl_capath | string | | Igual à variável MASTER_SSL_CAPATH mysql. Para obter detalhes, consulte a documentação de replicação criptografada do MySQL. aliases: master_ssl_capath |
primary_ssl_cert | string | | Igual à variável MASTER_SSL_CERT mysql. Para obter detalhes, consulte a documentação de replicação criptografada do MySQL. aliases: master_ssl_cert |
primary_ssl_cipher | string | | O mesmo que a variável MASTER_SSL_CIPHER mysql. Especifica uma lista separada por dois pontos de uma ou mais cifras permitidas pela réplica para a conexão de replicação. Para obter detalhes, consulte a documentação de replicação criptografada do MySQL. aliases: master_ssl_cipher |
primary_ssl_key | string | | Igual à variável MASTER_SSL_KEY mysql. Para obter detalhes, consulte a documentação de replicação criptografada do MySQL. aliases: master_ssl_key |
primary_use_gtid | string | Escolhas:
| Configura a réplica para usar o MariaDB Global Transaction ID. disabled é igual a MASTER_USE_GTID=no command. Para encontrar informações sobre os valores disponíveis, consulte https://mariadb.com/kb/en/library/change-master-to/#master_use_gtid. Disponível desde MariaDB 10.0.2. replica_pos foi introduzido no MariaDB 10.5.1 e é um apelido para slave_pos. aliases: master_use_gtid |
primary_user | string | | Igual à variável MASTER_USER mysql. aliases: master_user |
relay_log_file | string | | Igual à variável mysql. |
relay_log_pos | integer | | Igual à variável mysql. |
Extende fragmentos da documentação do módulo MySQL Base.
Notas
- Se um valor vazio para o parâmetro do tipo de string for necessário, use uma string vazia.
- Ambos login_password e login_user são necessários quando você está passando credenciais, caso nenhum estiver presente, o módulo tentará ler as credenciais presentes em ~/.my.cnf e, finalmente, voltará a usar o login padrão do MySQL de ‘root’ sem senha.
- Se houver problemas com conexões locais, usar login_unix_socket=/path/to/mysqld/socket ao invés de login_host=localhost pode ajudar. Como exemplo, a instalação padrão do MariaDB da versão 10.4 e posterior usa o plugin de autenticação unix_socket por padrão que sem usar login_unix_socket=/var/run/mysqld/mysqld.sock (o caminho padrão) causa o erro Host '127.0.0.1' é não tem permissão para se conectar a este servidor MariaDB.
Examples
- name: Interrompe a thread de réplica do mysql
mysql_replication:
mode: stopreplica
- name: Obtém o nome do arquivo binlog primário e a posição do binlog
mysql_replication:
mode: getprimary
- name: Muda o servidor primário para 192.0.2.1 e use o log binário 'mysql-bin.000009' com a posição 4578
mysql_replication:
mode: changeprimary
primary_host: 192.0.2.1
primary_log_file: mysql-bin.000009
primary_log_pos: 4578
- name: Verifica o status da réplica usando a porta 3308
mysql_replication:
mode: getreplica
login_host: ansible.example.com
login_port: 3308
- name: No MariaDB, altere o primário para usar GTID current_pos
mysql_replication:
mode: changeprimary
primary_use_gtid: current_pos
- nome: Altera o primário para usar o atraso de replicação 3600 segundos
mysql_replication:
mode: changeprimary
primary_host: 192.0.2.1
primary_delay: 3600
- name: Inicia a réplica do MariaDB com o nome da conexão primary-1
mysql_replication:
mode: startreplica
connection_name: primary-1
- name: Interrompe a replicação no canal primário-1
mysql_replication:
mode: stopreplica
channel: primary-1
- name: >
Execute o comando RESET MASTER que irá deletar todos os arquivos de log binários existentes
e redefinir o arquivo de índice de log binário no primário
mysql_replication:
mode: resetprimary
- name: Executa a réplica de inicialização e falha na tarefa em caso de erros
mysql_replication:
mode: startreplica
connection_name: primary-1
fail_on_error: yes
- name: Altera o primário e falha em caso de erro (como quando a thread de réplica está em execução)
mysql_replication:
mode: changeprimary
fail_on_error: yesValores retornados
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
queries | list | sempre | Lista de consultas executadas que modificaram o estado do BD. Exemplo: ["CHANGE MASTER TO MASTER_HOST='primary2.example.com',MASTER_PORT=3306"] |