O Data Management (DMS) permite alterar esquemas sem bloquear tabelas. Isso evita que bloqueios de tabela interrompam as operações da sua empresa e reduz a latência do recurso DDL online do MySQL durante a replicação primária-secundária.
Considerações
No exemplo de início rápido, o modo de controle da instância é Security Collaboration. No uso diário deste recurso, os Control modes da instância podem ser Stable Change ou Security Collaboration.
É preciso ative a política de alteração de esquema sem bloqueio do DMS com antecedência para a instância do ApsaraDB RDS for MySQL no ambiente de desenvolvimento simulado.
Procedimento
Neste exemplo, o recurso de alteração de esquema sem bloqueio altera o tipo de dados da coluna long_text_a na tabela big_table do banco de dados poc_dev no modo Security Collaboration, de varchar(1024) para text.
-
Envie um ticket como usuário comum.
Acesse o console do DMS V5.0 como usuário comum.
-
Na barra de navegação superior, escolha .
NotaSe estiver usando o console do DMS no modo simples, passe o ponteiro sobre o ícone
no canto superior esquerdo do console e escolha All functions > Database Development > Data Change > Lockless Change. -
Defina os parâmetros descritos na tabela a seguir e clique em Submit.
Parâmetro
Descrição
Database (Obrigatório)
Obrigatório. O banco de dados no qual os dados serão alterados. Neste exemplo, o banco de dados
poc_devno modo Secure Collaboration está selecionado.Business Background (Obrigatório)
Obrigatório. A finalidade ou o objetivo da alteração dos dados. atualize os dados conforme necessário. Isso reduz comunicações desnecessárias.
Affected Rows (Obrigatório)
Obrigatório. O número estimado de linhas afetadas pela operação em que você exclua os dados. Para obter o número real de linhas afetadas, use a função
COUNTem instruções SQL e execute-as na aba SQLConsole .SQL Statements for Change (Obrigatório)
Obrigatório. A instrução SQL a ser executada para alterar os dados. Neste exemplo, execute a seguinte instrução
ALTER:ALTER TABLE `big_table` MODIFY COLUMN `long_text_a` text NULL AFTER `name`;NotaEsta instrução altera o tipo de dados da coluna
long_text_adevarchar(1024)paratext. -
Na página Ticket Details, confirme os detalhes do ticket.
Notavisualize os detalhes do ticket na página Ticket Details. O DMS pré-verifica a instrução SQL a ser executada. Os itens de pré-verificação incluem a sintaxe da instrução SQL, a correspondência do tipo da instrução com o tipo configurado nas regras de segurança, as permissões do usuário que enviou o ticket e o número estimado de linhas a serem lidas.
-
Após a confirmação dos detalhes do ticket e a conclusão da pré-verificação, clique em Submit for Approval. Na mensagem exibida, clique em OK.
Importantemodifique os detalhes do ticket apenas antes do envio para aprovação.
-
Aprove o ticket como administrador do DMS.
Acesse o console do DMS V5.0 como administrador do DMS.
Na página Home do console do DMS, clique em Pending Tickets na seção My Tickets.
Na página My Tickets, localize o ticket que deseja tratar e clique no número do ticket na coluna Ticket Number.
No painel Ticket Details, confirme as informações de alteração dos dados no ticket e clique em Approve.
Na caixa de diálogo exibida, insira comentários e clique em Submit.
-
Execute o ticket como usuário comum.
Acesse o console do DMS V5.0 como usuário comum.
-
Na seção Execute do painel Ticket Details, clique em Execute Change. Na caixa de diálogo exibida, defina os parâmetros descritos na tabela a seguir e clique em Confirm Execution.
Parâmetro
Descrição
Execute strategy
Define se a tarefa será executada imediatamente ou em horário agendado. Valores válidos:
Running immediately: o DMS executa a tarefa imediatamente após o envio.
Schedule: o DMS executa a tarefa no horário agendado especificado.
Valor padrão: Running immediately.
Transaction Control
Define se o controle de transação será ativado. Valores válidos:
on: Se uma instrução SQL falhar, todas as instruções DML executadas na mesma transação serão revertidas. Instruções DDL não podem ser revertidas.
off: Executa uma instrução SQL por vez. Se uma instrução SQL falhar, a transação é interrompida. As outras instruções SQL executadas na mesma transação não são revertidas.
Valor padrão: off.
Data Backup
Define se haverá backup dos dados. Valores válidos:
on: O DMS gera scripts
INSERTpara fazer backup dos dados afetados pela execução de instruçõesUPDATEouDELETE.off: Nenhum script de backup é gerado para esses dados.
Valor padrão: on.
NotaApós clicar em Confirm Execution, o DMS inicia a execução da tarefa.
Visualize o progresso da tarefa e verifique o esquema
-
Como administrador do DMS, passe o ponteiro sobre o nome do banco de dados a ser alterado na seção Basic Information. No menu exibido, clique em Query.
Você é redirecionado automaticamente para a página do SQL Console.
-
Na aba SQL Console, insira uma instrução de consulta SQL no editor. Em seguida, clique em Execute na parte superior do editor.
Por exemplo, insira a seguinte instrução SQL para consultar as tabelas do banco de dados atual.
SHOW TABLES;NotaQuando o DMS altera o esquema de uma tabela sem bloqueá-la, duas tabelas temporárias são geradas.
-
Na barra de navegação superior, escolha .
NotaSe estiver usando o console do DMS no modo simples, passe o ponteiro sobre o ícone
no canto superior esquerdo do console e escolha . Clique no número da tarefa e gerencie a tarefa. A caixa de diálogo Execution details será exibida.
Clique em Progress na coluna Operation.
Na mensagem de alteração de estrutura sem bloqueio, visualize as informações de progresso da tarefa.
-
Após a conclusão da tarefa, verifique o esquema.
O esquema da tabela
big_tableé alterado e as tabelas temporárias são excluídas.