Configura a replicação baseada em GTID de uma instância do MariaDB executada externamente em relação ao Amazon RDS para uma instância de banco de dados MariaDB. Esse procedimento armazenado é compatível apenas com a versão 10.0.24 ou posteriores da instância externa do MariaDB. Ao configurar a replicação na qual uma ou ambas as instâncias não oferecem suporte a identificadores de transações globais (GTIDs) do MariaDB, use mysql.rds_set_external_master (RDS para MariaDB e RDS para MySQL versões principais 8.0 e anteriores).
O uso de GTIDs para replicação oferece recursos de segurança contra falhas não disponibilizados pela replicação de log binário, por isso recomendamos nos casos em que há o suporte pelas instâncias de replicação.
Sintaxe
CALL mysql.rds_set_external_master_gtid(
host_name
, host_port
, replication_user_name
, replication_user_password
, gtid
, ssl_encryption
);
Parâmetros
- host_name
-
String. O nome de host ou o endereço IP da instância do MariaDB sendo executada externamente ao Amazon RDS que se tornará a instância de origem.
- host_port
-
Inteiro. A porta usada para executar a instância do MariaDB sendo executada externamente ao Amazon RDS a ser configurada como a instância de origem. Se sua configuração de rede inclui replicação de porta SSH que converte o número da porta, especifique o número da porta exposto pelo SSH.
- replication_user_name
-
String. O ID de um usuário com permissões
REPLICATION SLAVE
na instância de banco de dados MariaDB deve ser configurado como a réplica de leitura. - replication_user_password
-
String. A senha do ID de usuário especificada em
replication_user_name
. - gtid
-
String. O ID da transação global na instância de origem a partir da qual a replicação deve iniciar.
É possível usar o
@@gtid_current_pos
para obter o GTID atual se a instância de origem tiver sido bloqueada enquanto você estiver configurando a replicação, de modo que o log binário não mude entre os pontos quando você obtiver o GTID e quando a replicação iniciar.Caso contrário, se você estiver usando o
mysqldump
versão 10.0.13 ou posterior para preencher a instância de réplica antes de iniciar a replicação, será possível obter a posição de GTID na saída usando as opções--master-data
ou--dump-slave
. Se você não estiver usando omysqldump
versão 10.0.13 ou superior, você poderá executar oSHOW MASTER STATUS
ou usar as mesmas opções demysqldump
para obter o nome e a posição do arquivo de log binário, convertê-los em um GTID executandoBINLOG_GTID_POS
na instância externa do MariaDB:SELECT BINLOG_GTID_POS('<binary log file name>', <binary log file position>);
Para obter mais informações sobre a implantação de GTIDs do MariaDB, acesse Global Transaction ID
na documentação do MariaDB. - ssl_encryption
-
Um valor que especifica se a criptografia do Secure Sockets Layer (SSL) será usada na conexão de replicação. 1 especifica para usar criptografia de SSL, 0 especifica para não usar criptografia. O padrão é 0.
nota
A opção
MASTER_SSL_VERIFY_SERVER_CERT
não tem suporte. Essa opção é definida como 0, o que significa que a conexão é criptografada, mas os certificados não são verificados.
Observações de uso
O procedimento mysql.rds_set_external_master_gtid
deve ser executado pelo usuário mestre. Ele deve ser executado na instância de banco de dados MariaDB que você está configurando como a réplica de uma instância do MariaDB, sendo executada externamente ao Amazon RDS. Antes de executar mysql.rds_set_external_master_gtid
, é necessário configurar a instância do MariaDB sendo executada externamente ao Amazon RDS como uma instância de origem. Para obter mais informações, consulte Importar dados para uma instância de banco de dados do Amazon RDS para MariaDB.
Atenção
Não use o mysql.rds_set_external_master_gtid
para gerenciar uma replicação entre duas instâncias de banco de dados do Amazon RDS. Use-o apenas ao replicar com uma instância MariaDB sendo executada externamente ao RDS. Para obter informações sobre como gerenciar a replicação entre instâncias de banco de dados do Amazon RDS, consulte Trabalhar com réplicas de leitura de instância de banco de dados.
Após chamar mysql.rds_set_external_master_gtid
para configurar uma instância de banco de dados do Amazon RDS como uma réplica de leitura, você poderá chamar mysql.rds_start_replication na réplica para iniciar o processo de replicação. É possível chamar mysql.rds_reset_external_master (RDS para MariaDB e RDS para MySQL versões principais 8.0 e anteriores) para remover a configuração da réplica de leitura.
Quando mysql.rds_set_external_master_gtid
é chamado, o Amazon RDS grava a hora, o usuário e uma ação do "mestre do conjunto" nas tabelas mysql.rds_history
e mysql.rds_replication_status
.
Exemplos
Quando executado em uma instância de banco de dados MariaDB, o exemplo a seguir o configura como a réplica de uma instância do MariaDB sendo executada externamente ao Amazon RDS.
call mysql.rds_set_external_master_gtid ('Sourcedb.some.com',3306,'ReplicationUser','SomePassW0rd','0-123-456',0);