Gerenciar clusters ativos-ativos
Os procedimentos armazenados a seguir configuram e gerenciam clusters ativos-ativos do RDS para MySQL. Para ter mais informações, consulte Configurar clusters ativos-ativos para RDS para MySQL.
Esses procedimentos armazenados só estão disponíveis com as instâncias de banco de dados do RDS para MySQL que executam a versão 8.0.35 e versões secundárias posteriores.
Tópicos
mysql.rds_group_replication_advance_gtid
Cria GTIDs de espaço reservado na instância de banco de dados atual.
Sintaxe
CALL mysql.rds_group_replication_advance_gtid(
begin_id
,end_id
,server_uuid
);
Parâmetros
-
begin_id
-
O ID da transação inicial a ser criado.
-
end_id
-
O ID da transação final a ser criado.
-
begin_id
-
O
group_replication_group_name
da transação final a ser criado. Ogroup_replication_group_name
é especificada como um UUID no grupo de parâmetros de banco de dados associado à instância de banco de dados.
Observações de uso
Em um cluster ativo-ativo, para que uma instância de banco de dados ingresse em um grupo, todas as transações GTID executadas na nova instância de banco de dados devem existir nos outros membros do cluster. Em casos incomuns, uma nova instância de banco de dados pode ter mais transações a serem agrupadas quando as transações são executadas antes de ingressar na instância. Nesse caso, não é possível remover nenhuma transação existente, mas é possível usar esse procedimento para criar os GTIDs de espaço reservado correspondentes nas outras instâncias de banco de dados do grupo. Antes de fazer isso, verifique se as transações não afetam os dados replicados.
Ao chamar esse procedimento, as transações GTID do server_uuid:begin_id-end_id
são criadas com conteúdo vazio. Para evitar problemas de replicação, não use esse procedimento em nenhuma outra condição.
Importante
Evite chamar esse procedimento quando o cluster ativo-ativo estiver funcionando normalmente. Não chame esse procedimento a menos que você entenda as possíveis consequências das transações que está criando. Chamar esse procedimento pode gerar dados inconsistentes.
Exemplo
O seguinte exemplo cria GTIDs de espaço reservado na instância de banco de dados atual:
CALL mysql.rds_group_replication_advance_gtid(
5
,6
, '11111111-2222-3333-4444-555555555555
');
mysql.rds_group_replication_create_user
Cria o usuário de replicação rdsgrprepladmin
para replicação do grupo na instância de banco de dados.
Sintaxe
CALL mysql.rds_group_replication_create_user(
replication_user_password
);
Parâmetros
-
replication_user_password
-
A senha do usuário de replicação
rdsgrprepladmin
.
Observações de uso
-
A senha do usuário de replicação
rdsgrprepladmin
deve ser a mesma em todas as instâncias de banco de dados em um cluster ativo-ativo. -
O nome do usuário
rdsgrprepladmin
é reservado para conexões da replicação do grupo. Nenhum outro usuário, incluindo o usuário principal, pode ter esse nome de usuário.
Exemplo
O seguinte exemplo cria o usuário de replicação rdsgrprepladmin
para replicação do grupo na instância de banco de dados:
CALL mysql.rds_group_replication_create_user('
password
');
mysql.rds_group_replication_set_recovery_channel
Define o canal group_replication_recovery
para um cluster ativo-ativo. O procedimento utiliza o usuário reservado rdsgrprepladmin
para configurar o canal.
Sintaxe
CALL mysql.rds_group_replication_set_recovery_channel(
replication_user_password
);
Parâmetros
-
replication_user_password
-
A senha do usuário de replicação
rdsgrprepladmin
.
Observações de uso
A senha do usuário de replicação rdsgrprepladmin
deve ser a mesma em todas as instâncias de banco de dados em um cluster ativo-ativo. Uma chamada para o mysql.rds_group_replication_create_user
especifica a senha.
Exemplo
O seguinte exemplo define o canal group_replication_recovery
para um cluster ativo-ativo:
CALL mysql.rds_group_replication_set_recovery_channel('
password
');
mysql.rds_group_replication_start
Inicia a replicação do grupo na instância de banco de dados atual.
Sintaxe
CALL mysql.rds_group_replication_start(
bootstrap
);
Parâmetros
-
bootstrap
-
Um valor que especifica se deve inicializar um novo grupo ou ingressar em um grupo existente.
1
inicializa um novo grupo com a instância de banco de dados atual.0
insere a instância de banco de dados atual em um grupo existente conectando-se aos endpoints definidos no parâmetrogroup_replication_group_seeds
no grupo de parâmetros do banco de dados associado à instância de banco de dados.
Exemplo
O seguinte exemplo inicializa um novo grupo com a instância de banco de dados atual:
CALL mysql.rds_group_replication_start(
1
);
mysql.rds_group_replication_stop
Interrompe a replicação do grupo na instância de banco de dados atual.
Sintaxe
CALL mysql.rds_group_replication_stop();
Observações de uso
A interrupção da replicação em uma instância de banco de dados não afeta nenhuma outra instância de banco de dados no cluster ativo-ativo.