Convertendo o SQL servidor em My SQL - AWS Schema Conversion Tool

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Convertendo o SQL servidor em My SQL

Para emular as funções SQL do banco de dados do Microsoft Server em seu Meu SQL código convertido, use o pacote de SQL extensão SQL Server to My em AWS SCT. Para obter mais informações sobre pacotes de extensão, consulte Usando pacotes de extensão com AWS Schema Conversion Tool.

Privilégios do My SQL como banco de dados de destino

Os privilégios necessários para My SQL como alvo são os seguintes:

  • CREATEEM * . *

  • ALTEREM * . *

  • DROPEM * . *

  • INDEXEM * . *

  • REFERENCESEM * . *

  • SELECTEM * . *

  • CREATEVIEWEM * . *

  • SHOWVIEWEM * . *

  • TRIGGEREM * . *

  • CREATEROUTINEEM * . *

  • ALTERROUTINEEM * . *

  • EXECUTEEM * . *

  • INSERT, UPDATE EM AWS _ SQLSERVER _EXT. *

  • INSERT,UPDATE, DELETE EM AWS _ SQLSERVER _ EXT _DATA. *

  • CREATETEMPORARYTABLESEM AWS _ SQLSERVER _ EXT _DATA. *

É possível utilizar o exemplo de código a seguir para criar um usuário do banco de dados e conceder os privilégios.

CREATE USER 'user_name' IDENTIFIED BY 'your_password'; GRANT CREATE ON *.* TO 'user_name'; GRANT ALTER ON *.* TO 'user_name'; GRANT DROP ON *.* TO 'user_name'; GRANT INDEX ON *.* TO 'user_name'; GRANT REFERENCES ON *.* TO 'user_name'; GRANT SELECT ON *.* TO 'user_name'; GRANT CREATE VIEW ON *.* TO 'user_name'; GRANT SHOW VIEW ON *.* TO 'user_name'; GRANT TRIGGER ON *.* TO 'user_name'; GRANT CREATE ROUTINE ON *.* TO 'user_name'; GRANT ALTER ROUTINE ON *.* TO 'user_name'; GRANT EXECUTE ON *.* TO 'user_name'; GRANT INSERT, UPDATE ON AWS_SQLSERVER_EXT.* TO 'user_name'; GRANT INSERT, UPDATE, DELETE ON AWS_SQLSERVER_EXT_DATA.* TO 'user_name'; GRANT CREATE TEMPORARY TABLES ON AWS_SQLSERVER_EXT_DATA.* TO 'user_name';

No exemplo anterior, substitua user_name com o nome do seu usuário. Em seguida, substitua your_password com uma senha segura.

Se você usar o Meu SQL banco de dados versão 5.7 ou inferior como destino, execute o comando a seguir. Para Meus SQL bancos de dados versão 8.0 e superior, esse comando está obsoleto.

GRANT SELECT ON mysql.proc TO 'user_name';

Para usar o Amazon RDS for My SQL ou o Aurora My SQL como destino, defina o lower_case_table_names parâmetro como. 1 Esse valor significa que o Meu SQL servidor manipula identificadores de nomes de objetos, como tabelas, índices, acionadores e bancos de dados, sem distinção entre maiúsculas e minúsculas. Se você ativou o registro binário em sua instância de destino, defina o parâmetro log_bin_trust_function_creators como 1. Nesse caso, você não precisa usar as características DETERMINISTIC, READS SQL DATA ou NO SQL para criar funções armazenadas. Para configurar esses parâmetros, crie um novo grupo de parâmetros de banco de dados ou modifique um grupo de parâmetros de banco de dados existente.

SQLConfigurações de SQL conversão do servidor para Minhas

Para editar SQL Servidor em Minhas configurações SQL de conversão, AWS SCT escolha Configurações e, em seguida, escolha Configurações de conversão. Na lista superior, escolha SQLServidor e, em seguida, escolha SQLServidor — Meu SQL. AWS SCT exibe todas as configurações disponíveis para a SQL conversão de SQL Servidor em Minha.

SQLAs configurações de SQL conversão de Servidor para Minhas AWS SCT incluem opções para o seguinte:

  • Para limitar o número de comentários com itens de ação no código convertido.

    Em Adicionar comentários no código convertido para os itens de ação de severidade selecionada e superior, escolha a severidade dos itens de ação. AWS SCT adiciona comentários no código convertido para itens de ação da severidade selecionada e superior.

    Por exemplo, para minimizar o número de comentários em seu código convertido, escolha Somente erros. Para incluir comentários para todos os itens de ação em seu código convertido, escolha Todas as mensagens.

  • Para permitir que seu banco de dados SQL do servidor de origem armazene a saída de EXEC em uma tabela. AWS SCT cria tabelas temporárias e um procedimento adicional para emular esse recurso. Para usar essa emulação, selecione Criar rotinas adicionais para lidar com conjuntos de dados abertos.

Considerações sobre a migração

Considere o seguinte ao migrar um esquema de SQL servidor para My: SQL

  • A minha SQL não apóia a MERGE declaração. No entanto, AWS SCT pode emular a MERGE declaração durante a conversão usando a INSERT ON DUPLICATE KEY cláusula e as UPDATE FROM and DELETE FROM declarações.

    Para usar a emulação corretaINSERT ON DUPLICATE KEY, certifique-se de que exista uma restrição exclusiva ou chave primária no Meu SQL banco de dados de destino.

  • Uma instrução GOTO e um rótulo podem ser usados para alterar a ordem em que as instruções são executadas. Todas SQL as declarações Transact que seguem uma GOTO declaração são ignoradas e o processamento continua no rótulo. As instruções GOTO e os rótulos podem ser usados em qualquer lugar em um procedimento, lote ou bloco de instruções. Você também pode aninhar instruções GOTO.

    O meu SQL não usa GOTO declarações. Quando AWS SCT converte o código que contém uma GOTO instrução, ele converte a instrução para usar uma instrução BEGIN…END ouLOOP…END LOOP. Você pode encontrar exemplos de como AWS SCT converte GOTO declarações na tabela a seguir.

    SQLDeclaração do servidor Minha SQL declaração
    BEGIN .... statement1; .... GOTO label1; statement2; .... label1: Statement3; .... END
    BEGIN label1: BEGIN .... statement1; .... LEAVE label1; statement2; .... END; Statement3; .... END
    BEGIN .... statement1; .... label1: statement2; .... GOTO label1; statement3; .... statement4; .... END
    BEGIN .... statement1; .... label1: LOOP statement2; .... ITERATE label1; LEAVE label1; END LOOP; statement3; .... statement4; .... END
    BEGIN .... statement1; .... label1: statement2; .... statement3; .... statement4; .... END
    BEGIN .... statement1; .... label1: BEGIN statement2; .... statement3; .... statement4; .... END; END
  • My SQL não suporta funções com valor de tabela de várias instruções. AWS SCT simula funções com valor de tabela durante uma conversão criando tabelas temporárias e reescrevendo instruções para usar essas tabelas temporárias.