Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A Migração de esquema do MySQL é um novo recurso que permite aos usuários migrar o esquema para objetos como bancos de dados, tabelas, exibições, gatilhos, eventos, procedimentos armazenados e funções. Esse recurso é útil para automatizar alguns dos trabalhos necessários para preparar o banco de dados de destino antes de iniciar uma migração.
Implementação atual
Na implementação atual, os usuários podem selecionar os objetos do servidor (exibições, gatilhos, eventos, rotinas) que desejam migrar na guia Selecionar bancos de dados na seção Selecionar objetos do servidor ao configurar o projeto de migração do DMS. Além disso, é possível selecionar os bancos de dados na seção Selecionar bancos de dados do qual o esquema deve ser migrado.
Para migrar o esquema para objetos de tabela, navegue até a guia Selecionar tabelas . Antes que a guia seja preenchida, o DMS busca as tabelas dos bancos de dados selecionados na origem e no destino e determina se a tabela existe e contém dados. Se você selecionar uma tabela no banco de dados de origem que não existe no banco de dados de destino, a caixa em Migrar esquema será selecionada por padrão. Para tabelas que existem no banco de dados de destino, uma observação indica que a tabela selecionada já existe e será truncada. Além disso, se o esquema de uma tabela no servidor de destino não corresponder ao esquema na origem, a tabela será removida antes que a migração continue.
Ao continuar para a próxima guia, o DMS validará suas entradas e confirmará se as tabelas selecionadas correspondem, caso tenham sido selecionadas sem a entrada de migração de esquema. Você poderá iniciar o cenário de migração depois que a validação for aprovada.
Após iniciar a migração e durante a progressão dela, cada tabela é criada antes de migrar seus dados da origem para o destino. Com exceção de gatilhos e exibições, que são migrados após a conclusão da migração de dados, outros objetos são criados para tabelas antes da migração de dados.
Como funciona a migração de esquema
A migração de esquema é suportada pela sintaxe do MySQL SHOW CREATE a fim de coletar informações de esquema de objetos da origem. Ao migrar o esquema para os objetos da origem ao destino, o DMS processa a entrada e migra os objetos de maneira individual. O DMS também encapsula a ordenação, o conjunto de caracteres e outras informações relevantes fornecidas pela consulta SHOW CREATE para a consulta create que depois é processada no destino.
Rotinas e eventos são migrados antes de migrar os dados. O esquema de cada tabela individual é migrado imediatamente antes do início da movimentação de dados para a tabela. Gatilhos são migrados após a parte de migração de dados. Para exibições, como o MySQL valida o conteúdo dos modos de exibição e eles podem depender de outras tabelas, o DMS primeiro cria tabelas para exibições antes do início da movimentação de dados do banco de dados, depois descarta a tabela temporária e cria a exibição.
Ao consultar a origem e o destino, o DMS repetirá as consultas, caso ocorra um erro transitório. No entanto, se ocorrer um erro do qual o DMS não pode se recuperar, por exemplo, uma sintaxe inválida ao executar uma migração de atualização de versão, o DMS falhará e relatará essa mensagem de erro após a conclusão. Se a falha ocorrer ao criar uma tabela, os dados dessa tabela não serão migrados, mas haverá a tentativa de migração de dados e esquema para as outras tabelas selecionadas. Se ocorrer um erro fatal em eventos, rotinas ou ao criar a tabela temporária para exibições, a migração falhará antes de ser executada para as tabelas selecionadas e os objetos migrados após a parte de migração de dados.
Como uma tabela temporária é criada para exibições, se houver uma falha ao migrar uma exibição, a tabela temporária será deixada no destino. Depois que o problema subjacente for corrigido e houver nova tentativa de migração, o DMS excluirá essa tabela antes de criar a exibição. Como alternativa, ao optar por não usar a migração de esquema para exibições em uma migração futura, a tabela temporária precisa ser excluída manualmente antes de migrar a exibição manualmente.
Pré-requisitos
Para concluir a migração de esquema com êxito, certifique-se de que os seguintes pré-requisitos estejam em vigor.
O privilégio
READsobre o banco de dados de origem.SELECTprivilégio para a capacidade de selecionar objetos do banco de dadosSe estiver migrando exibições, o usuário deverá ter o
SHOW VIEWprivilégio.Se estiver migrando gatilhos, o usuário deverá ter o
TRIGGERprivilégio.Se estiver migrando rotinas (procedimentos e/ou funções), o usuário deverá ser nomeado na cláusula definidora da rotina. Como alternativa, com base na versão, o usuário deve ter o seguinte privilégio:
Para 5.7, tenha acesso
SELECTà tabelamysql.proc.Para 8.0, tenha o privilégio
SHOW_ROUTINEou os privilégiosCREATE ROUTINE,ALTER ROUTINEouEXECUTEconcedidos em um escopo que inclua a rotina.
Se estiver migrando eventos, o usuário deverá ter o
EVENTprivilégio do banco de dados do qual os eventos devem ser mostrados.
Limitações
Ao migrar objetos que não são de tabela, o DMS não dá suporte à renomeação de bancos de dados.
Ao migrar para um servidor de destino que tem bin_log habilitado, log_bin_trust_function_creators deve ser habilitado para permitir a criação de rotinas e gatilhos.
Atualmente, não há suporte para migrar a cláusula DEFINER para objetos. Todos os tipos de objeto com definidores na origem são removidos e, após a migração, o definidor padrão para tabelas é definido como o logon usado para executar a migração.
Não há suporte para algumas atualizações de versão, caso existam alterações significativas na compatibilidade de versão. Consulte os documentos do MySQL para obter mais informações sobre atualizações de versão.
Atualmente, podemos migrar o esquema somente como parte da movimentação de dados. Se nada for selecionado para movimentação de dados, nenhuma migração de esquema ocorrerá. Se uma tabela estiver selecionada para migração de esquema, ela será selecionada para a movimentação de dados.