Definir e mostrar a configuração de logs binários
Os procedimentos armazenados a seguir definem e mostram parâmetros de configuração, como para retenção de arquivos de log binários.
mysql.rds_set_configuration
Especifica o número de horas para retenção de logs binários ou o número de segundos para atrasar a replicação.
Sintaxe
CALL mysql.rds_set_configuration(
name
,value
);
Parâmetros
-
name
-
(Opcional) O nome do parâmetro de configuração a definir.
-
value
-
O valor do parâmetro de configuração.
Observações de uso
O procedimento mysql.rds_set_configuration
oferece suporte aos seguintes parâmetros de configuração:
Os parâmetros de configuração são armazenados permanentemente e sobrevivem a qualquer reinicialização ou failover da instância de banco de dados.
horas de retenção do log binário
O parâmetro binlog retention hours
é usado para especificar o número de horas para reter arquivos de log binários. O Amazon RDS normalmente elimina um log binário o mais rápido possível, mas o log binário ainda pode ser necessário para a replicação com um banco de dados MySQL externo ao RDS.
O valor padrão de binlog retention hours
é NULL
. Para o RDS para MySQL, NULL
significa que os logs binários não são retidos (0 horas).
Para especificar o número de horas para reter os logs binários em uma instância de banco de dados, use o procedimento armazenado mysql.rds_set_configuration
e especifique um período com tempo suficiente para que a replicação ocorra, conforme exibido no exemplo a seguir.
call mysql.rds_set_configuration('binlog retention hours', 24);
nota
Não é possível usar o valor 0
para binlog retention hours
.
Para instâncias de banco de dados MySQL, o valor máximo de binlog retention hours
é de 168 (7 dias).
Após configurar o período de retenção, monitore o uso de armazenamento da instância de banco de dados para garantir que os logs binários retidos não consumam muito armazenamento.
Para implantações de cluster de banco de dados multi-AZ, você só pode configurar a retenção de log binário da instância de banco de dados de gravador, e a configuração é propagada para todas as instâncias de banco de dados de leitor de forma assíncrona. Se os logs binários no cluster de banco de dados excederem a metade do espaço total de armazenamento local, o Amazon RDS moverá automaticamente os logs obsoletos para o volume do EBS. No entanto, os logs mais recentes permanecem no armazenamento local e, portanto, poderão ser perdidos se houver uma falha que exija a substituição do host ou se você aumentar ou reduzir a escala do banco de dados verticalmente.
atraso na origem
Use o parâmetro source delay
em uma réplica de leitura para especificar o número de segundos para atrasar a replicação da réplica de leitura para a instância de banco de dados de origem. O Amazon RDS replica as alterações o mais rápido possível, mas talvez você queira que alguns ambientes atrasem a replicação. Por exemplo, quando a replicação é atrasada, você pode efetuar roll forward de uma réplica de leitura atrasada para o momento imediatamente antes de um desastre. Se uma tabela for descartada acidentalmente, use a replicação atrasada para recuperá-la rapidamente. O valor padrão de target delay
é 0
(não atrasar a replicação).
Quando você usa esse parâmetro, ele executa mysql.rds_set_source_delay e aplica CHANGE primary TO MASTER_DELAY = valor de entrada. Se for bem-sucedido, o procedimento salvará o parâmetro source
delay
na tabela mysql.rds_configuration
.
Para especificar o número de segundos em que o Amazon RDS atrasará a replicação de uma instância de banco de dados de origem, use o procedimento armazenado mysql.rds_set_configuration
e especifique o número de segundos de atraso da replicação. No exemplo a seguir, a replicação é atrasada por pelo menos uma hora (3.600 segundos).
call mysql.rds_set_configuration('source delay', 3600);
Depois, o procedimento executa mysql.rds_set_source_delay(3600)
.
O limite do parâmetro source delay
é de um dia (86.400 segundos).
atraso de destino
Use o parâmetro target delay
para especificar o número de segundos para atrasar a replicação entre uma instância de banco de dados e quaisquer réplicas de leitura gerenciadas pelo RDS criadas futuramente com base nessa instância. Esse parâmetro é ignorado para réplicas de leitura não gerenciadas pelo RDS. O Amazon RDS replica as alterações o mais rápido possível, mas talvez você queira que alguns ambientes atrasem a replicação. Por exemplo, quando a replicação é atrasada, você pode efetuar roll forward de uma réplica de leitura atrasada para o momento imediatamente antes de um desastre. Se uma tabela for descartada acidentalmente, use a replicação atrasada para recuperá-la rapidamente. O valor padrão de target delay
é 0
(não atrasar a replicação).
Para a recuperação de desastres, você pode usar esse parâmetro de configuração com o procedimento armazenado mysql.rds_start_replication_until ou o mysql.rds_start_replication_until_gtid. Para efetuar roll forward de alterações para uma réplica de leitura atrasada no momento imediatamente antes de um desastre, é possível executar o procedimento mysql.rds_set_configuration
com esse conjunto de parâmetros. Depois que o procedimento mysql.rds_start_replication_until
ou mysql.rds_start_replication_until_gtid
interromper a replicação, é possível promover a réplica de leitura para ser a nova instância de banco de dados primária usando as instruções em Promoção de uma réplica de leitura a uma instância de banco de dados autônoma.
Para usar o procedimento mysql.rds_rds_start_replication_until_gtid
, a replicação baseada em GTID deve estar habilitada. Para ignorar uma transação específica baseada em GTID que seja conhecida por causar desastres, use o procedimento armazenado mysql.rds_skip_transaction_with_gtid. Para ter mais informações sobre como trabalhar com a replicação baseada em GTID, consulte Usar a replicação baseada em GTID.
Para especificar o número de segundos em que o Amazon RDS atrasará a replicação de uma réplica de leitura, use o procedimento armazenado mysql.rds_set_configuration
e especifique o número de segundos de atraso da replicação. O exemplo a seguir especifica que a replicação é atrasada por pelo menos uma hora (3.600 segundos).
call mysql.rds_set_configuration('target delay', 3600);
O limite do parâmetro target delay
é de um dia (86.400 segundos).
mysql.rds_show_configuration
A quantidade de horas em que os logs binários são mantidos.
Sintaxe
CALL mysql.rds_show_configuration;
Observações de uso
Para verificar o número de horas durante as quais o Amazon RDS vai reter os logs binários, use o procedimento armazenado mysql.rds_show_configuration
.
Exemplos
O exemplo a seguir mostra exibe o período de retenção:
call mysql.rds_show_configuration; name value description binlog retention hours 24 binlog retention hours specifies the duration in hours before binary logs are automatically deleted.