Guia de início rápido: importar um arquivo bacpac para um banco de dados no Banco de Dados SQL do Azure ou na Instância Gerenciada SQL do Azure
Aplica-se a:Banco de Dados SQL do Azure Instância Gerenciada SQLdo Azure
Você pode importar um banco de dados do SQL Server para o Banco de Dados SQL do Azure ou para a Instância Gerenciada do SQL usando um arquivo .bacpac . Você pode importar os dados de um arquivo bacpac armazenado no armazenamento de Blob do Azure (somente armazenamento padrão) ou do armazenamento local em um local local. Para maximizar a velocidade de importação ao fornecer mais recursos e mais rápidos, dimensione a base de dados para um escalão de serviço mais elevado e tamanho da computação durante o processo de importação. Em seguida, pode reduzir verticalmente depois de a importação ser bem-sucedida.
Nota
Importar e exportar usando o Private Link está em visualização.
Utilizar o portal do Azure
Assista a este vídeo para ver como importar de um arquivo bacpac no portal do Azure ou continue lendo:
O portaldo Azure suporta apenas a criação de um único banco de dados no Banco de Dados SQL do Azure e somente a partir de um arquivo bacpac armazenado no armazenamento de Blob do Azure.
Para migrar um banco de dados para uma Instância Gerenciada SQL do Azure a partir de um arquivo bacpac, use o SQL Server Management Studio ou SQLPackage, usando o portal do Azure ou o Azure PowerShell não é suportado no momento.
Nota
As máquinas que processam solicitações de importação/exportação enviadas por meio do portal do Azure ou do PowerShell precisam armazenar o arquivo bacpac, bem como arquivos temporários gerados pela Estrutura de Aplicativo da Camada de Dados (DacFX). O espaço em disco necessário varia significativamente entre bancos de dados com o mesmo tamanho e pode exigir espaço em disco até três vezes o tamanho do banco de dados. As máquinas que executam a solicitação de importação/exportação têm apenas 450 GB de espaço em disco local. Como resultado, algumas solicitações podem falhar com o erro There is not enough space on the disk
. Nesse caso, a solução alternativa é executar SqlPackage em uma máquina com espaço em disco local suficiente. Recomendamos o uso do SqlPackage para importar/exportar bancos de dados maiores que 150 GB para evitar esse problema.
Para importar de um arquivo bacpac para um novo banco de dados único usando o portal do Azure, abra a página do servidor apropriada e, na barra de ferramentas, selecione Importar banco de dados.
Selecione Selecionar backup. Escolha a conta de armazenamento que hospeda seu banco de dados e, em seguida, selecione o arquivo bacpac do qual importar.
Especifique o novo tamanho do banco de dados (geralmente o mesmo que a origem) e forneça as credenciais do SQL Server de destino. Para obter uma lista de valores possíveis para um novo banco de dados no Banco de Dados SQL do Azure, consulte Criar banco de dados.
Selecione OK.
Para monitorar o progresso de uma importação, abra a página do servidor do banco de dados e, em Configurações, selecione Histórico de importação/exportação. Quando bem-sucedida, a importação tem o status Concluído .
Para verificar se o banco de dados está ativo no servidor, selecione Bancos de dados SQL e verifique se o novo banco de dados está Online.
Usar SqlPackage
Para importar um banco de dados do SQL Server usando o utilitário de linha de comando SqlPackage , consulte Importar parâmetros e propriedades. Você pode baixar o SqlPackage mais recente para Windows, macOS ou Linux.
Para dimensionamento e desempenho, recomendamos usar SqlPackage na maioria dos ambientes de produção em vez de usar o portal do Azure. Para obter um blog da Equipe de Consultoria ao Cliente do SQL Server sobre como migrar usando arquivos, consulte Migrando do SQL Server para o Banco de Dados SQL do Azure usando BACPAC
Arquivos BACPAC.
O modelo de provisionamento baseado em DTU oferece suporte a valores de tamanho máximo de banco de dados selecionados para cada camada. Ao importar um banco de dados , use um desses valores suportados.
O comando SqlPackage a seguir importa o AdventureWorks2008R2
banco de dados do armazenamento local para um servidor SQL lógico chamado mynewserver20170403
. Ele cria um novo banco de dados chamado myMigratedDatabase
com uma camada de serviço Premium e um Objetivo de Serviço P6 . Altere esses valores conforme apropriado para seu ambiente.
SqlPackage /a:import /tcs:"Data Source=<serverName>.database.windows.net;Initial Catalog=<migratedDatabase>;User Id=<userId>;Password=<password>" /sf:AdventureWorks2008R2.bacpac /p:DatabaseEdition=Premium /p:DatabaseServiceObjective=P6
Importante
Para se conectar ao Banco de Dados SQL do Azure por trás de um firewall corporativo, o firewall deve ter a porta 1433 aberta. Para se conectar à Instância Gerenciada SQL, você deve ter uma conexão ponto a site ou uma conexão de rota expressa.
Como alternativa ao nome de usuário e senha, você pode usar o Microsoft Entra ID (anteriormente Azure Ative Directory). Atualmente, o serviço de Importação/Exportação não suporta a autenticação de ID do Microsoft Entra quando o MFA é necessário. Substitua os parâmetros de nome de usuário e senha por /ua:true
e /tid:"yourdomain.onmicrosoft.com"
. Este exemplo mostra como importar um banco de dados usando SqlPackage com autenticação do Microsoft Entra:
SqlPackage /a:Import /sf:testExport.bacpac /tdn:NewDacFX /tsn:apptestserver.database.windows.net /ua:True /tid:"apptest.onmicrosoft.com"
Azure Data Studio
O Azure Data Studio é uma ferramenta gratuita de código aberto e está disponível para Windows, macOS e Linux. A extensão "SQL Server dacpac" fornece uma interface de assistente para operações SqlPackage, incluindo exportação e importação. Para obter mais informações sobre como instalar e usar a extensão, consulte a documentação da extensão dacpac do SQL Server.
Utilizar o PowerShell
Nota
Atualmente, a Instância Gerenciada SQL do Azure não oferece suporte à migração de um banco de dados para um banco de dados de instância a partir de um arquivo bacpac usando o Azure PowerShell. Para importar para uma instância gerenciada pelo SQL, use o SQL Server Management Studio ou o SQLPackage.
Nota
As máquinas que processam solicitações de importação/exportação enviadas por meio do portal ou PowerShell precisam armazenar o arquivo bacpac, bem como arquivos temporários gerados pelo Data-Tier Application Framework (DacFX). O espaço em disco necessário varia significativamente entre DBs com o mesmo tamanho e pode levar até três vezes o tamanho do banco de dados. As máquinas que executam a solicitação de importação/exportação têm apenas 450 GB de espaço em disco local. Como resultado, algumas solicitações podem falhar com o erro "Não há espaço suficiente no disco". Nesse caso, a solução alternativa é executar SqlPackage em uma máquina com espaço em disco local suficiente. Ao importar/exportar bancos de dados maiores que 150GB, use SqlPackage para evitar esse problema.
Importante
O módulo PowerShell Azure Resource Manager (RM) ainda é suportado, mas todo o desenvolvimento futuro é para o módulo Az.Sql. O módulo AzureRM continuará a receber correções de bugs até, pelo menos, dezembro de 2020. Os argumentos para os comandos no módulo Az e nos módulos AzureRm são substancialmente idênticos. Para obter mais informações sobre sua compatibilidade, consulte Apresentando o novo módulo Az do Azure PowerShell.
Use o cmdlet New-AzSqlDatabaseImport para enviar uma solicitação de banco de dados de importação para o Azure. Dependendo do tamanho do banco de dados, a importação pode levar algum tempo para ser concluída. O modelo de provisionamento baseado em DTU oferece suporte a valores de tamanho máximo de banco de dados selecionados para cada camada. Ao importar um banco de dados , use um desses valores suportados.
$importRequest = New-AzSqlDatabaseImport -ResourceGroupName "<resourceGroupName>" `
-ServerName "<serverName>" -DatabaseName "<databaseName>" `
-DatabaseMaxSizeBytes "<databaseSizeInBytes>" -StorageKeyType "StorageAccessKey" `
-StorageKey $(Get-AzStorageAccountKey `
-ResourceGroupName "<resourceGroupName>" -StorageAccountName "<storageAccountName>").Value[0] `
-StorageUri "https://myStorageAccount.blob.core.windows.net/importsample/sample.bacpac" `
-Edition "Premium" -ServiceObjectiveName "P6" `
-AdministratorLogin "<userId>" `
-AdministratorLoginPassword $(ConvertTo-SecureString -String "<password>" -AsPlainText -Force)
Você pode usar o cmdlet Get-AzSqlDatabaseImportExportStatus para verificar o progresso da importação. A execução do cmdlet imediatamente após a solicitação geralmente retorna Status: InProgress
. A importação é concluída quando você vê Status: Succeeded
.
$importStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $importRequest.OperationStatusLink
[Console]::Write("Importing")
while ($importStatus.Status -eq "InProgress") {
$importStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $importRequest.OperationStatusLink
[Console]::Write(".")
Start-Sleep -s 10
}
[Console]::WriteLine("")
$importStatus
Gorjeta
Para outro exemplo de script, consulte Importar um banco de dados de um arquivo BACPAC.
Cancelar o pedido de importação
Use o comando Database Operations - Cancel API ou Stop-AzSqlDatabaseActivity PowerShell, como no exemplo a seguir:
Stop-AzSqlDatabaseActivity -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName -OperationId $Operation.OperationId
Permissões necessárias para cancelar a importação
Para cancelar a operação de importação, você precisa ser membro de uma das seguintes funções:
- A função de Colaborador do Banco de Dados SQL ou
- Uma função RBAC de controle de acesso baseada em função personalizada do Azure com
Microsoft.Sql/servers/databases/operations
permissão
Nível de compatibilidade da nova base de dados
- O nível de compatibilidade do banco de dados importado é baseado no nível de compatibilidade do banco de dados de origem.
- Depois de importar seu banco de dados, você pode optar por operá-lo em seu nível de compatibilidade atual ou em um nível superior. Para obter mais informações sobre as implicações e as opções para o funcionamento de uma base de dados a um nível de compatibilidade específico, veja ALTERAR Nível de Compatibilidade de BASE DE DADOS. Consulte também ALTER DATABASE SCOPED CONFIGURATION para obter informações sobre outras configurações no nível do banco de dados relacionadas aos níveis de compatibilidade.
Limitações
- A importação para uma base de dados num conjunto elástico não é suportada. Pode importar dados para uma única base de dados e, em seguida, mover a base de dados para um conjunto elástico.
- O Serviço de Exportação/Importação não funciona quando o acesso aos serviços do Azure está definido como DESATIVADO. No entanto, você pode contornar o problema executando manualmente SqlPackage de uma VM do Azure ou executando a exportação diretamente em seu código usando a API DacFx.
- A Importação não suporta a especificação de uma redundância do armazenamento de cópias de segurança enquanto cria uma nova base de dados e cria com a redundância predefinida do armazenamento de cópias de segurança georreplicado. Para contornar o problema, primeiro crie um banco de dados vazio com redundância de armazenamento de backup desejada usando o portal do Azure ou o PowerShell e, em seguida, importe o bacpac para esse banco de dados vazio.
- De momento, o armazenamento por trás de uma firewall não é suportado.
- Durante o processo de importação, não crie um banco de dados com o mesmo nome. O processo de importação cria um novo banco de dados do nome especificado.
- Atualmente, o serviço de Importação/Exportação não suporta a autenticação de ID do Microsoft Entra quando o MFA é necessário.
- Os serviços Import\Export suportam apenas a autenticação SQL e o Microsoft Entra ID. Import\Export não é compatível com o registro do aplicativo Microsoft Identity.
Ferramentas adicionais
Você também pode usar esses assistentes.
- Assistente para Importação de Aplicativo da Camada de Dados no SQL Server Management Studio.
- Assistente de Importação e Exportação do SQL Server.
Conteúdos relacionados
- Para saber como se conectar e consultar o Banco de Dados SQL do Azure a partir do Azure Data Studio, consulte Guia de início rápido: usar o Azure Data Studio para conectar e consultar o Banco de Dados SQL do Azure.
- Para saber como se conectar e consultar um banco de dados no Banco de Dados SQL do Azure, consulte Guia de início rápido: Banco de Dados SQL do Azure: usar o SQL Server Management Studio para se conectar e consultar dados.
- Para obter um blog da Equipe de Consultoria ao Cliente do SQL Server sobre como migrar usando arquivos .bacpac, consulte Migrando do SQL Server para o Banco de Dados SQL do Azure usando arquivos BACPAC.
- Para obter uma discussão sobre todo o processo de migração de banco de dados do SQL Server, incluindo recomendações de desempenho, consulte Migração do banco de dados do SQL Server para o Banco de Dados SQL do Azure.
- Para saber como gerenciar e compartilhar chaves de armazenamento e assinaturas de acesso compartilhado com segurança, consulte o Guia de Segurança do Armazenamento do Azure.