Ir para o conteúdo

Migração de Data

Visão Geral

O recurso de migração de datas do Vinyl fornece suporte para migração de datas de um fuso horário para outro.

Aviso

A migração de datas é uma ferramenta muito poderosa, mas também potencialmente perigosa, pois afetará todos os selecionados DateTime colunas na sua fonte de dados. Cuidado e testes adequados são fortemente recomendados.

Recomendações

A migração de data é recomendada para desenvolvedores que desejam converter DateTime colunas de um fuso horário para outro.

O fuso horário ideal para sua fonte de dados é talvez discutível, mas a prática recomendada é configurar seus servidores e fontes de dados para usarem o mesmo fuso horário. UTC é provavelmente a melhor escolha, pois qualquer outro fuso horário pode mudar se a localização do servidor mudar. Observe também que as instâncias da Amazon são configuradas por padrão para usar UTC.

Outra coisa a ter em mente é que configurar o fuso horário do servidor de banco de dados para ser igual ao fuso horário da fonte de dados garantirá que as chamadas para 'Now()' retornará o valor esperado. Now() retorna a hora atual de acordo com o fuso horário do banco de dados.

Ao manter todos os fusos horários da sua fonte de dados sincronizados, você pode evitar a dor de cabeça da conversão DateTime dados de um fuso horário para outro. Hoje, isso não é feito automaticamente, embora possa ser implementado em uma versão futura.

Limitações e Advertências

Embora DateTime Se as colunas forem migradas, há outros aspectos da sua aplicação de Vinyl que podem exigir modificação, incluindo:

  • Codificado DateTime os valores nas regras não são ajustados. Se suas regras incluem where ou select cláusulas com datas codificadas, você precisará ajustá-las manualmente para o novo fuso horário esperado.
  • Quaisquer colunas que usem DateAdd ou funções semelhantes para ajustar fusos horários manualmente também serão deixadas como estão. Os desenvolvedores precisarão consertar isso manualmente.
  • Versões do MS SQL Server anteriores a 2016 não suportam o AT TIME ZONE função. Como resultado, a migração de data será realizada usando um deslocamento de fuso horário calculado a partir dos fusos horários de origem e de destino no momento atual. Isso pode causar problemas com fusos horários que utilizam o horário de verão.
  • As migrações de data são executadas em uma única transação quando seu aplicativo/fonte de dados está sendo atualizado por meio de um LP. A transação pode atingir o tempo limite dependendo da quantidade de dados a serem migrados. Se isso acontecer, definir um tempo mais longo CommandTimeOut no seu arquivo de conexão ajudará a atenuar o tempo limite.

Configurar Migração de Data

Para realizar uma migração de data execute as seguintes etapas:

  • Navegue até IDE > Configurações adicionais > Migração de data
  • Clique em + Migração no painel Migrações de Data
  • Selecione uma Fonte de dados
  • Selecione um Fuso horário de origem. Esta configuração já será preenchida para fontes de dados que possuem um valor não nulo Time Zone.
  • Selecione um Fuso horário de destino
  • Clique em Salvar

Neste ponto, o painel lateral direito deve preencher todos os DateTime colunas na Fonte de dados selecionada. A partir daqui você pode definir as configurações de migração de data para colunas individuais.

Se sua Fonte de Dados não tiver um fuso horário definido, você notará que a Auditoria DateTime colunas usarão o fuso horário do servidor de aplicativos Vinyl como o Source Time Zone. Os dados de auditoria são gravados usando o fuso horário do servidor de aplicativos quando a Fonte de Dados não tem um fuso horário configurado. Observe também que o Vinyl usa o AddedOn e ChangedOn coluna Tipos de uso para determinar se uma coluna é considerada dados de auditoria.

Depois de terminar de ajustar as colunas individuais, você pode prosseguir com as seguintes etapas:

  • Na mesma tela acima, clique no botão Migrar no painel Migração de Data.

Isso executará um trabalho em segundo plano para migrar todas as colunas configuradas. A migração de data é executada em uma única transação e bloqueará tabelas no processo. Você deve garantir que o tráfego em seu servidor seja mínimo ou nenhum para evitar travamentos.

As etapas de gerenciamento de alterações também serão adicionadas para cada tabela que estiver sendo migrada.

Depois que as datas forem migradas, o status da migração de data mudará para Complete.

Se ocorrer uma falha, a transação de migração de data será revertida e registros adicionais poderão ser encontrados no histórico da tarefa em segundo plano.