Converter bancos de dados MySQL (MySQLToSQL)
Depois de se conectar ao MySQL, conectar-se ao SQL Server ou SQL do Azure e definir opções de mapeamento de dados e projeto, você pode converter objetos de banco de dados MySQL em objetos do SQL Server ou do Banco de Dados SQL do Azure, usando o SSMA (Assistente de Migração do SQL Server) para MySQL.
O processo de conversão
A conversão de objetos de banco de dados usa as definições de objeto do MySQL, converte-as em objetos SQL Server ou do SQL do Azure semelhantes e, em seguida, carrega essas informações para os metadados do SSMA. Ela não carrega as informações na instância do SQL Server. Em seguida, você pode exibir os objetos e as propriedades deles usando o Explorador de Metadados do SQL Server ou do SQL do Azure.
Durante a conversão, o SSMA imprime as mensagens de saída no painel Saída e as mensagens de erro no painel Lista de Erros. Use as informações de saída e erro para determinar se você precisa modificar seus bancos de dados do MySQL ou seu processo de conversão para obter os resultados de conversão desejados.
Definir opções de conversão
Antes de converter objetos, revise as opções de conversão do projeto na caixa de diálogo Configurações do projeto. Ao usar essa caixa de diálogo, você pode definir como o SSMA converte tabelas e índices. Para obter mais informações, confira Configurações do projeto (Conversão).
Resultados da conversão
A seguinte tabela mostra quais objetos MySQL são convertidos e os objetos SQL Server resultantes:
Objetos MySQL | Objetos do SQL Server resultantes |
---|---|
Tabelas com objetos dependentes como índices | O SSMA cria tabelas com objetos dependentes. A tabela é convertida com todos os índices e as restrições. Os índices são convertidos em objetos separados do SQL Server. O Mapeamento de tipo de dados espaciais pode ser executado apenas no nível do nó da tabela. Para obter mais informações sobre as Configurações de Conversão de Tabela, confira Configurações de conversão |
Funções | Se a função puder ser convertida diretamente em Transact-SQL, o SSMA criará uma função. Em alguns casos, a função deve ser convertida em um procedimento armazenado. Isso pode ser feito usando a Conversão de Função em Configurações do Projeto. Nesse caso, o SSMA cria um procedimento armazenado e uma função que o chama. Opções dadas: - Converter de acordo com as configurações do projeto - Converter em função - Converter no procedimento armazenado Para obter mais informações sobre as Configurações de Conversão de Função, confira Configurações de conversão |
Procedimentos | Se o procedimento puder ser convertido diretamente em Transact-SQL, o SSMA criará um procedimento armazenado. Em alguns casos, um procedimento armazenado deve ser chamado em uma transação autônoma. Nesse caso, o SSMA cria dois procedimentos armazenados: um que implementa o procedimento e outro usado para chamar o procedimento armazenado de implementação. |
Conversão de banco de dados | Bancos de dados como objetos MySQL não são convertidos diretamente pelo SSMA para MySQL. Os bancos de dados MySQL são tratados mais como um nome de esquema e todos os parâmetros físicos se perdem na conversão. O SSMA para MySQL usa o mapeamento de bancos de dados MySQL para esquemas do SQL Server para mapear objetos do banco de dados MySQL para o par de banco de dados/esquema apropriado do SQL Server. |
Conversão de gatilho | O SSMA cria gatilhos com base nas seguintes regras: - Os gatilhos BEFORE são convertidos em gatilhos INSTEAD OF T-SQL - Os gatilhos AFTER são convertidos em gatilhos T-SQL AFTER com ou sem iterações por linhas. |
Ver Conversão | O SSMA cria exibições com objetos dependentes |
Conversão de instrução | - Cada objeto de instrução SQL pode conter uma única instrução MySQL (como DDL, DML e outros tipos de instruções) ou BEGIN ... END bloco. - Em uma conversão de várias instruções: BEGIN ... END, a instrução SQL também pode conter um erro BEGIN ... END como um em definição de procedimento, função ou gatilho. Esses blocos devem ser convertidos da mesma forma que estão sendo convertidos para os objetos de instrução MySQL únicos. |
Converter objetos de banco de dados MySQL
Para converter objetos de banco de dados MySQL, primeiro selecione os objetos que deseja converter e, em seguida, peça ao SSMA que execute a conversão. Para exibir as mensagens de saída durante a conversão, no menu Exibir, selecione Saída.
Converter objetos MySQL em sintaxe do SQL Server ou do SQL do Azure
No explorador de metadados do MySQL, expanda o servidor MySQL e, em seguida, expanda Bancos de dados.
Selecione os objetos a serem convertidos:
Para converter todos os esquemas, marque a caixa de seleção ao lado de Bancos de dados.
Para converter ou omitir um banco de dados, marque ou desmarque a caixa de seleção ao lado do nome do banco de dados.
Para converter ou omitir uma categoria de objetos, expanda um esquema e marque ou desmarque a caixa de seleção ao lado da categoria.
Para converter ou omitir objetos individuais, expanda a pasta de categoria e marque ou desmarque a caixa de seleção ao lado do objeto.
Para converter todos os objetos selecionados, clique com o botão direito do mouse em Bancos de Dados e selecione Converter esquema.
Você também pode converter objetos individuais ou categorias de objetos clicando com o botão direito do mouse no objeto ou em sua pasta pai e selecionando Converter Esquema.
Exibir problemas de conversão
Alguns objetos MySQL podem não ser convertidos. Você pode determinar as taxas de sucesso de conversão exibindo o relatório de conversão resumido.
Exibir um relatório de resumo
No Gerenciador de Metadados do MySQL, selecione Bancos de Dados.
No painel à direita, selecione a guia Relatório.
Este relatório mostra o relatório de avaliação resumida para todos os objetos de banco de dados que foram avaliados ou convertidos. Você também pode exibir um relatório de resumo para objetos individuais:
Para exibir o relatório de um esquema individual, selecione o banco de dados no Explorador de Metadados do MySQL.
Para exibir o relatório de um objeto individual, selecione o objeto no Explorador de Metadados do MySQL. Os objetos com problemas de conversão têm um ícone de erro vermelho.
Para objetos que falharam na conversão, você pode exibir a sintaxe que resultou na falha de conversão.
Exibir problemas de conversão individuais
No explorador de metadados do MySQL, expanda Bancos de Dados.
Expanda o banco de dados que mostra um ícone de erro vermelho.
Sob o banco de dados, expanda uma pasta que tenha um ícone de erro vermelho.
Selecione o objeto que tem um ícone de erro vermelho.
No painel à direita, selecione a guia Relatório.
Na parte superior da guia Relatório , há uma lista suspensa. Se a lista mostrar Estatísticas, altere a seleção para Origem.
O SSMA exibe o código-fonte e vários botões imediatamente acima do código.
Selecione o botão Próximo problema. Este é um ícone de erro vermelho com uma seta apontando para a direita.
O SSMA destaca o primeiro código-fonte problemático encontrado no objeto atual.
Para cada item que não pôde ser convertido, você precisa determinar o que deseja fazer com esse objeto:
É possível modificar o objeto no banco de dados MySQL para remover ou revisar o código problemático. Para carregar o código atualizado no SSMA, você precisa atualizar os metadados. Para obter mais informações, consulte Conectando-se ao MySQL
Você pode excluir o objeto da migração. No explorador de metadados do SQL Server ou do SQL do Azure e no explorador de metadados do MySQL, desmarque a caixa de seleção ao lado do item antes de carregar os objetos no SQL Server ou no SQL do Azure e migrar os dados do MySQL.