O que estou procurando fazer é agendar uma cópia dos dados do meu banco de dados de produção para meu banco de dados de desenvolvimento/teste.
O banco de dados de desenvolvimento/teste será mais recente que o banco de dados de produção em termos de esquema, mas o banco de dados de produção possui dados atuais. Estou um pouco confuso, pois preciso testar minhas alterações no banco de dados em relação aos dados de tamanho de produção e seria muito útil ter dados atuais.
Estou no SQL Server 2008 R2 Standard para ambientes de produção e desenvolvimento; existe uma maneira de criar um trabalho em meu servidor de desenvolvimento para "sugar" dados do meu banco de dados de produção de maneira somente leitura? Eu gostaria de um script que pudesse copiar os dados da tabela por atacado, ignorando colunas ausentes e quaisquer restrições na tabela de destino. Um script que faz isso para uma tabela é tudo que eu realmente preciso, posso modificá-lo para caber em minhas tabelas e duplicá-lo para executar em todas as minhas tabelas. O problema que estou tendo é encontrar algo remotamente semelhante a isso.
Esta é uma espécie de continuação da minha última pergunta da mesma natureza; Desde então, coloquei meu banco de dados no controle de origem e estou gostando muito mais dele. O problema é que ainda enfrento um problema de dados obsoletos em meu servidor de desenvolvimento, então gostaria de encontrar uma maneira de agendar atualizações.
Estou aberto a maneiras alternativas de conseguir isso, mas precisa ser algo que eu possa executar de acordo com uma programação e algo que eu possa criar com bloco de notas e/ou SSMS ou outra ferramenta disponível com Standard Edition SQL Server.
Aqui está o que eu recomendaria:
Se você ainda não fez isso, crie um processo de backup regular para seu banco de dados de produção. Para simplificar a vida, faça um backup completo e inclua todos os objetos do banco de dados (tabelas/esquema/dados/usuários). O site da Microsoft tem muitas informações sobre como fazer isso.
Quando precisar atualizar seu ambiente de desenvolvimento, restaure o backup de produção no desenvolvimento e, em seguida, implemente a migração (tabelas, procedimentos, dados) que você precisa testar usando o método documentado para a mudança de produção.
Teste, sabendo que você não está apenas testando suas alterações de código, mas também testando sua estratégia de migração para quando implementar sua alteração no ambiente de produção. Você também está testando sua estratégia de backup e restauração (DR) do banco de dados.
Observe que isso pode significar que você tem 2 bancos de dados de desenvolvimento, um para desenvolvimento real e outro para teste de integração/QA/UAT.
O SSIS é provavelmente sua melhor ferramenta para essa situação. Crie um pacote realizando sua cópia e programe-o usando o SQL Agent. Você pode facilmente copiar dados de um ambiente para outro. Você pode configurá-lo para redirecionar ou ignorar erros e inconsistências em suas operações de cópia, dependendo de sua necessidade.
Eu percebo que isso não é bloco de notas e SSMS, mas o SSIS está incluído no SQL 2008 R2 Standard e vale muito a pena (IMO) ter pelo menos uma familiaridade passageira.
O melhor método que eu sinto é: