Partilhar via


Procedimentos armazenados internos no Banco de Dados do Azure para MySQL

APLICA-SE A: Banco de Dados do Azure para MySQL - Servidor Flexível

O Banco de Dados do Azure para MySQL fornece vários procedimentos armazenados internos que simplificam e automatizam tarefas avançadas de gerenciamento de banco de dados. Esses procedimentos armazenados ajudam a configurar com eficiência funcionalidades, como a replicação de dados, limpeza do registo de desfazer e gestão de plug-ins.

Este artigo apresenta os procedimentos armazenados internos disponíveis no Banco de Dados do Azure para MySQL, suas funcionalidades e como usá-los.

Procedimentos armazenados internos disponíveis atualmente

1. Gestão de replicação de dados recebidos

O Banco de Dados do Azure para MySQL fornece procedimentos armazenados para gerenciar a Replicação de Dados, incluindo iniciar, parar, verificar o status e redefinir a replicação.

Para obter detalhes sobre esses procedimentos, consulte Como configurar o Azure Database para MySQL - Replicação de dados em Servidor Flexível.

2. Gestão de plugins

O Banco de Dados do Azure para MySQL dá suporte ao Plug-in Validar Senha, que impõe políticas de força de senha. Os usuários podem ativar ou desativar este plug-in usando os seguintes procedimentos armazenados:

Habilite o plug-in de validação de senha

CALL az_install_validate_password_plugin();

Depois de habilitar o plug-in, você pode exibir e configurar parâmetros relacionados na página Parâmetros do Servidor no portal do Azure.

Desative o plug-in de validação de senha

CALL az_uninstall_validate_password_plugin();

Este procedimento armazenado remove o plugin.

Observação

  • Para servidores HA (Alta Disponibilidade), primeiro execute esses procedimentos armazenados no servidor primário . Em seguida, realize um failover forçado e volte a executar os procedimentos armazenados no novo primário.
  • Para servidores de réplica, a execução desses procedimentos armazenados no primário não sincroniza automaticamente com réplicas. Execute-os manualmente em cada réplica depois de executá-los na principal.

3. Limpeza do undo log

Em alguns casos, o seu log de undo pode crescer e você pode querer limpá-lo. O Banco de Dados do Azure para MySQL fornece um procedimento armazenado para ajudá-lo com essa tarefa.

  1. Para verificar o espaço da tabela, primeiro execute o seguinte comando.
    SELECT NAME, FILE_SIZE, STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE SPACE_TYPE = 'Undo' AND STATE = 'active' ORDER BY NAME;
    
  2. Se você achar que seu log de desfazer é grande, chame o seguinte comando para criar um novo espaço de tabela.
    call az_create_undo_tablespace(X)
    
    Atualmente, suportamos até oito espaços de tabela, incluindo dois espaços padrão. O valor X deve estar entre 3 e 8. Após a conclusão do comando, o novo espaço de tabela deve estar em um estado ativo.
  3. Execute o seguinte comando para desativar o innodb_undo_001 (padrão).
    call az_deactivate_undo_tablespace(1)
    
    Em seguida, aguarde até que o estado de innodb_undo_001 esteja vazio (isso significa que o log de reversão está truncado).
    Você pode verificar o truncamento de log de desfazer consultando Espaços de Tabela de Desfazer
  4. Execute o seguinte comando para ativar o innodb_undo_001 (padrão).
    call az_activate_undo_tablespace(1)
    
    Em seguida, aguarde até que o estado de innodb_undo_001 esteja ativo.
  5. Repita os passos 1-4 para o innodb_undo_002.
  6. Execute call az_deactivate_undo_tablespace(3); para desativar o espaço de tabela recém-criado. Aguarde que o estado esteja vazio. Em seguida, execute Call az_drop_undo_tablespace(3); para soltar o espaço de tabela recém-criado. Não é possível descartar os padrão (innodb_undo_001, innodb_undo_002). Você só pode soltar o que você criou, neste exemplo é x_undo_003.Antes de soltar, primeiro desative x_undo_003 para o estado vazio.

Verificação e conferência de espaços de tabela de desfazer

Antes de esvaziar um espaço de tabela de reversão, verifique se não há transações ativas.

SELECT COUNT(1) FROM information_schema.innodb_trx;
  • Se o resultado for 0, não há transações ativas.
  • O espaço de tabela de desfazer só pode ser esvaziado quando essa contagem for zero.

Depois de confirmar que as transações atingiram zero, verifique o estado das tabelas de desfazer.

SELECT NAME, FILE_SIZE, STATE
FROM information_schema.innodb_tablespaces
WHERE SPACE_TYPE = 'Undo'
ORDER BY NAME;

Soltar tabela problemática

Se você encontrar um erro como o seguinte ao acessar uma tabela, isso pode indicar corrupção da tabela:

Incorrect information in file: './DATABASE_NAME/TABLE_NAME.frm'

Para resolver esse problema, você pode usar o procedimento armazenado interno:

mysql.az_drop_broken_table(DBNAME, TABLENAME)

Depois de executar o procedimento, recomenda-se reiniciar o servidor para garantir que as alterações entrem em vigor.

Como alternativa, você pode executar uma restauração point-in-time para reverter o servidor para um estado anterior ao problema.

Conclusão

O Banco de Dados do Azure para MySQL fornece procedimentos armazenados internos que simplificam tarefas avançadas de gerenciamento de banco de dados. Esses procedimentos permitem que você configure a replicação, gerencie o log de Desfazer e habilite plug-ins de forma eficiente. Ao aplicar essas ferramentas, você pode melhorar o desempenho, otimizar o armazenamento e garantir uma sincronização de dados perfeita.