Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como copio o banco de dados SQL Azure para meu servidor de desenvolvimento local?


Existem várias maneiras de fazer isso:
  1. Usando SSIS (SQL Server Integration Services) . Importa apenas data na sua mesa. Propriedades de coluna, restrições, chaves, índices, procedimentos armazenados, gatilhos, configurações de segurança, usuários, logons etc. não são transferidos. No entanto, é um processo muito simples e pode ser feito simplesmente passando pelo assistente no SQL Server Management Studio.
  2. Usando combinação de scripts de criação de banco de dados e SSIS . Isso fornecerá dados e todos os metadados ausentes que não são transferidos pelo SSIS. Isso também é muito simples. Primeiro, transfira os dados usando o SSIS (consulte as instruções abaixo), crie o script DB Create do banco de dados SQL Azure e reproduza-o novamente em seu banco de dados local.
  3. Finalmente, você pode usar o serviço de importação/exportação no SQL Azure . Isso transfere dados (com objetos de esquema) para o Armazenamento de Blobs do Azure como um BACPAC. Você precisará de uma conta de armazenamento do Azure e faça isso no portal da Web do Azure. É tão simples quanto pressionar um botão "Exportar" no portal da Web do Azure ao selecionar o banco de dados que deseja exportar. A desvantagem é que é apenas um procedimento manual, não conheço uma maneira de automatizar isso por meio de ferramentas ou scripts - pelo menos a primeira parte que requer um clique na página da web.

Procedimento manual para o método nº 1 (usando SSIS) é o seguinte:
  • No Sql Server Management Studio (SSMS), crie um novo banco de dados vazio em sua instância SQL local.
  • Escolha Importar dados no menu de contexto (clique com o botão direito do mouse no banco de dados -> Tarefas -> Importar dados...)
  • Digite os parâmetros de conexão para a origem (SQL Azure). Selecione ".Net Framework Data Provider for SqlServer" como provedor.
  • Escolha o banco de dados local vazio existente como destino.
  • Siga o assistente -- você poderá selecionar os dados das tabelas que deseja copiar. Você pode optar por pular qualquer uma das tabelas que não precisa. Por exemplo. se você mantiver logs de aplicativos no banco de dados, provavelmente não precisará deles em seu backup.

Você pode automatizá-lo criando o pacote SSIS e reexecutando-o sempre que quiser reimportar os dados. Observe que você só pode importar usando o SSIS para um banco de dados limpo, não pode fazer atualizações incrementais em seu banco de dados local depois de já ter feito isso uma vez.

Método nº 2 (dados SSID mais objetos de esquema) é muito simples. Primeiro, siga as etapas descritas acima e crie o script de criação de banco de dados (clique com o botão direito do mouse no banco de dados no SSMS, escolha Generate Scripts -> Database Create). Em seguida, reproduza este script em seu banco de dados local.

Método nº 3 é descrito no Blog aqui:http://dacguy.wordpress.com/2012/01/24/sql-azure-importexport-service-has-hit-production/. Há um videoclipe com o processo de transferência de conteúdo do banco de dados para o armazenamento de BLOBs do Azure como BACPAC. Depois disso, você pode copiar o arquivo localmente e importá-lo para sua instância SQL. O processo de importação do BACPAC para o aplicativo Data-Tier é descrito aqui:http://msdn.microsoft.com/en-us/library/hh710052.aspx.