[bing_translator]
Existem algumas ferramentas que ajudam a migrar seu database para o Azure SQL Database e eu já falei de algumas:
Export e Import manualmente
Mais uma vez o SQL Server Management Studio (SSMS) é a ferramenta que pode ser usada através do Export Data-tier Application.
Esse processo tem algumas diferenças quando comparado com o Migration Wizard
- Suporta qualquer database a partir da versão SQL Server 2005
- Excelente para database de tamanho pequeno, médio ou grande
- .bacpad pode ser armazenado no Azure Storage ou localmente
- Processo em múltiplos passos independentes
- Maior controle sobre o export e import
- Downtime é grande
Não esquece de validar se seu database está pronto para o Azure SQL Database através do Data Migration Assistant – Assessment
Para iniciar o seu processo de migração acesse o wizard através do SSMS.
Acesse Object Explorer –> Instance –> Database –> Botão direito –> Task –> Export Data-tier Application. Uma primeira janela de introdução será mostrada, avance para a próxima.
Nesse ponto você pode escolher entre salvar o .bacpac localmente ou no Azure Storage Account
- Connect a sua storage account
- Indique o container onde o arquivo bacpac deverá ficar
- Nome do arquivo
- Um caminho local temporário deve ser indicado para que o processo tenha sucesso
Revise as informações, principalmente o espaço temporário disponível, e inicie a exportação do database. Através da janela de progresso podemos verificar o que o wizard está fazendo.
- Extrai o schema
- Valida o schema
- Exporta os dados (tabela por tabela)
- Upload do arquivo bacpac para o Azure Storage
Uma vez que o wizard terminou com sucesso não existe mais nada para fazer no SSMS e agora você tem o controle de quando e onde realizar o import. Acesse o Azure Portal e navegue até o seu servidor logico do SQL servers.
Acesse o item Overview e a opção Import database
- Indique sua subscription
- Local onde você fez o upload do arquivo bacpac
- Defina o service tier do database
- Escolha um nome para o database
- Collation que deseja utilizar
- Método de autenticação
- Login do administrador do servidor logico
Após revisar as informações e confirmar, o deploy deverá iniciar e uma notificação será apresentada no portal. Uma vez que sua requisição tenha sido completada seu database estará disponível para uso. Você pode verificar através do SSMS ou do Azure Portal.
O tempo total de deploy depende de alguns fatores como tamanho do seu database e service tier escolhido. Outra possibilidade é utilizar powershell para fazer o import do bacpac ao invés de usar o portal do Azure.
O código abaixo é um exemplo estático de como utilizar powershell.
#region connect to Azure Login-AzureRmAccount Get-AzureRmSubscription Select-AzureRmSubscription -SubscriptionName 'MSDN Platforms' #list of commands Get-Command -Module AzureRM.Sql #endregion #region getting information and set variables # Get the resource group name Get-AzureRmResourceGroup $resourcegroupname = "SQL-Database" # Set an admin login and password for your server $adminlogin = "admin" $password = "yourpassword" # Get server name - the logical server name has to be unique in the system Get-AzureRmSqlServer -ResourceGroupName $resourcegroupname #| Select ServerName $servername = "balabuchsqldb" # The sample database name $databasename = "AdventureWorks_Bacpac_PS" # The storage account name and storage container name Get-AzureRmStorageAccount -ResourceGroupName $resourcegroupname #| Select StorageAccountName $storageaccountname = "sqldatabasemigration" Get-AzureRmStorageAccount -ResourceGroupName $resourcegroupname | Get-AzureStorageContainer #| Select Name $storagecontainername = "migration" # BACPAC file name Get-AzureRmStorageAccount -ResourceGroupName $resourcegroupname | Get-AzureStorageBlob -Container $storagecontainername #| Select Name $bacpacfilename = "AdventureWorks.bacpac" #endregion #region importing bacpac # Import bacpac to database with an S3 performance level $importRequest = New-AzureRmSqlDatabaseImport -ResourceGroupName $resourcegroupname ` -ServerName $servername ` -DatabaseName $databasename ` -AdministratorLogin $adminlogin ` -AdministratorLoginPassword (ConvertTo-SecureString -String $password -AsPlainText -Force)` -DatabaseMaxSizeBytes "5000000" ` -StorageKeyType "StorageAccessKey" ` -StorageKey (Get-AzureRmStorageAccountKey -ResourceGroupName $resourcegroupname -StorageAccountName $storageaccountname).Value[0] ` -StorageUri "https://$storageaccountname.blob.core.windows.net/$storagecontainername/$bacpacfilename" ` -Edition "Standard" ` -ServiceObjectiveName "S3" # Check import status and wait for the import to complete $importStatus = Get-AzureRmSqlDatabaseImportExportStatus -OperationStatusLink $importRequest.OperationStatusLink [Console]::Write("Importing") while ($importStatus.Status -eq "InProgress") { $importStatus = Get-AzureRmSqlDatabaseImportExportStatus -OperationStatusLink $importRequest.OperationStatusLink [Console]::Write(".") Start-Sleep -s 10 } [Console]::WriteLine("") $importStatus #endregion #region scale down database # Scale down to Basic after import is completed Set-AzureRmSqlDatabase -ResourceGroupName $resourcegroupname ` -ServerName $servername ` -DatabaseName $databasename ` -Edition "Basic" ` -RequestedServiceObjectiveName "Basic" #endregion
Referências:
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-import