Migrar de MariaDB para SQL Server: o que muda no destino
Se a tabela não existe no SQL Server, o dbSlice para e mostra um CREATE TABLE traduzido para o SQL Server, para o seu DBA revisar e rodar. Por padrão, ele não cria nada nos seus bancos. Estes são os detalhes do SQL Server para olhar:
- Inteiros sem sinal. O SQL Server não tem tipos sem sinal; por isso, o dbSlice lê o tipo declarado e sugere um maior, em que o maior valor caiba:
SMALLINT UNSIGNED→INT,INT UNSIGNEDeMEDIUMINT UNSIGNED→BIGINT,BIGINT UNSIGNED→DECIMAL(20,0). - Flags
TINYINT(1). São sugeridas comoBIT. UmTINYINT(1)usado como número (valores 2, 3…) chegaria como 1: troque essa coluna paraTINYINTouSMALLINTnoCREATE TABLEantes de rodar. - Datas zeradas. O MariaDB aceita
0000-00-00, que o SQL Server rejeita. O dbSlice lê uma data zerada comoNULL, sem mudar nada no MariaDB; por isso, a coluna de destino precisa aceitarNULL. - Texto vira
NVARCHAR. Até 4.000 caracteres ele mantém o tamanho; acima disso e paraLONGTEXT, viraNVARCHAR(MAX).JSONchega como texto emNVARCHAR(MAX); o SQL Server o lê comJSON_VALUEeOPENJSON. ENUM,SETeYEARsão sugeridos como texto. Acrescente uma constraintCHECKse quiser a lista garantida;YEARcostuma ficar melhor comoSMALLINT.- Ids
AUTO_INCREMENTeIDENTITY. O SQL Server só aceita valores explícitos numa colunaIDENTITYcomIDENTITY_INSERT. O dbSlice oferece Keep identity para isso. Exige permissão de ALTER na tabela, e a tela pede confirmação antes. Sem essa opção, o SQL Server gera ids novos; então não use o id como chave da sincronia. - O Upsert roda como
MERGE, e as cargas em massa usamSqlBulkCopycom triggers e constraints verificados, para as regras do destino continuarem valendo.

Como o dbSlice controla a carga
- Lê o MariaDB em lotes pequenos, para o banco em uso continuar atendendo os usuários.
- Casa as linhas por uma chave que você escolhe. Modos: Initial load, depois Upsert, Insert new, Update only ou incremental por coluna (
updated_atou o idAUTO_INCREMENT). - Confere antes de gravar com o Record Diff e as conferências na tela, e prova o resultado com o Compare e a lista completa de chaves divergentes.
- Mascara no caminho as cópias de desenvolvimento e teste, mantendo chaves e chaves estrangeiras intactas.
- Exportar em vez de carregar: quando você só precisa de um arquivo, o mesmo app exporta uma tabela do MariaDB para CSV, JSON, XML ou HTML.
Passo a passo: converter uma tabela de MariaDB para SQL Server
- Conecte no MariaDB e no SQL Server.
- Escolha a tabela de origem (ou um SELECT) e a tabela de destino.
- Escolha a coluna-chave, e ligue Keep identity se os ids precisarem continuar iguais.
- Escolha o modo: Initial load, depois Upsert ou Insert new.
- Rode o Record Diff e depois a cópia, ou salve como job para a CLI e o Agendador de Tarefas.
Mover dados entre SQL Server e MariaDB, com qualquer um dos dois como origem
O mesmo app move dados no outro sentido: veja SQL Server para MariaDB. Com o MySQL como origem, veja MySQL para PostgreSQL; os mesmos detalhes do MariaDB valem. Vindo do MySQL? Veja MySQL para SQL Server.
Perguntas frequentes
Funciona com MySQL também?
Sim. MariaDB e MySQL usam o mesmo conector no dbSlice, e os detalhes acima valem para os dois.
Preciso ativar algo no MariaDB?
Não, a leitura usa consultas comuns. Só a carga em massa para o MariaDB precisa de local_infile.
As execuções incrementais copiam as exclusões?
Não. Rode o Compare ou uma recarga antes da troca.
Existe versão gratuita?
Sim, na Microsoft Store: ela conecta, navega, compara e exporta para CSV. Gravar num destino exige uma licença Desktop ou Server.