Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Applies to:Azure SQL Database
Azure SQL Managed Instance
Puede importar una base de datos de SQL Server en Azure SQL Database o SQL Managed Instance mediante un archivo .bacpac. Puede importar los datos de un archivo BACPAC almacenado en Azure Blob Storage (solo almacenamiento estándar) o desde el almacenamiento local en una ubicación local. Para maximizar la velocidad de importación al proporcionar más recursos y más rápidos, escale la base de datos a un nivel de servicio más alto y calcule el tamaño de proceso durante la importación. A continuación, puede reducir el tamaño después de que la importación sea exitosa.
Nota:
Importar o exportar una Base de Datos SQL de Azure mediante enlace privado está en versión preliminar.
Uso del portal de Azure
Vea este vídeo para ver cómo importar desde un archivo BACPAC en el portal de Azure o continuar leyendo:
- El portal Azureonly admite la creación de una base de datos única en Azure SQL Database y only desde un archivo BACPAC almacenado en Azure Blob Storage.
- Para migrar una base de datos a Azure SQL Managed Instance desde un archivo BACPAC, use SQL Server Management Studio o la utilidad de línea de comandos
SqlPackage. El portal de Azure y Azure PowerShell no se admiten actualmente.
Advertencia
Los archivos BACPAC de más de 150 GB generados a partir de SqlPackage podrían no importarse desde el portal de Azure o Azure PowerShell con un mensaje de error que indica File contains corrupted data. Este es el resultado de un problema conocido y la solución alternativa es usar la utilidad de línea de comandos para importar el archivo BACPAC. Para obtener más información, consulte SqlPackage y el registro de problemas.
Nota:
Las máquinas que procesan solicitudes de importación y exportación enviadas a través del portal de Azure o PowerShell deben almacenar el archivo BACPAC, así como los archivos temporales generados por el marco de aplicaciones de Data-Tier (DacFX). El espacio en disco necesario varía considerablemente entre las bases de datos del mismo tamaño y puede requerir un espacio en disco de hasta tres veces el tamaño de la base de datos. Los equipos que ejecutan la solicitud de importación o exportación solo tienen 450 GB de espacio en disco local. Como resultado, algunas solicitudes podrían fallar con un error. En este caso, la solución consiste en ejecutar la utilidad de línea de comandos SqlPackage en una máquina con suficiente espacio en disco local. Se recomienda usar la utilidad de línea de comandos SqlPackage para importar o exportar bases de datos de más de 150 GB para evitar este problema.
Para importar desde un archivo BACPAC a una nueva base de datos única mediante el portal de Azure, abra la página del servidor adecuada y, a continuación, en la barra de herramientas, seleccione Importar base de datos.
Seleccione Seleccionar copia de seguridad. Elija la cuenta de almacenamiento que hospeda la base de datos y, a continuación, seleccione el archivo BACPAC desde el que se va a importar.
Especifique el nuevo tamaño de base de datos (normalmente el mismo que el origen) y proporcione las credenciales de destino SQL Server. Para obtener una lista de los valores posibles para una nueva base de datos en Azure SQL Database, vea Create Database.
Seleccione Aceptar.
Para supervisar el progreso de una importación, abra la página del servidor de la base de datos y, en Configuración, seleccione Historial de importación y exportación. Cuando se realiza correctamente, la importación tiene el estado Completada.
Para comprobar que la base de datos está activa en el servidor, seleccione Bases de datos SQL y compruebe que la base de datos nueva está En línea.
Importación con autenticación de identidad administrada (versión preliminar)
Azure SQL Database admite la importación de un archivo BACPAC mediante la autenticación administrada. Esta opción habilita operaciones de importación totalmente sin credenciales y se recomienda para entornos que deshabiliten la autenticación de SQL o apliquen la autenticación solo Microsoft Entra.
Puede importar una base de datos a una base de datos nueva o a una base de datos vacía existente.
Para obtener un tutorial detallado, consulte Uso de identidad administrada con importación y exportación (versión preliminar).
Para importar un archivo BACPAC mediante la autenticación de identidad administrada, se requiere la siguiente configuración:
- Una identidad de usuario asignada administrada (UAMI) asignada al servidor lógico para Azure SQL Database.
- El servidor tiene la identidad administrada configurada como administrador de Microsoft Entra.
- Se asigna una identidad administrada al rol Storage Blob Data Reader en la cuenta de Azure Storage de origen. Esta identidad administrada puede ser la misma que la asignada al servidor o una diferente.
- El servidor lógico, la identidad administrada y la cuenta de almacenamiento se encuentran en el mismo inquilino de Microsoft Entra.
No se admiten los siguientes escenarios:
- Operaciones de importación entre clientes.
- Identidad administrada asignada solo en el nivel de base de datos.
Nota:
La importación con autenticación de identidad administrada se encuentra actualmente en preview y solo está disponible para Azure SQL Database.
Uso de SqlPackage
Para importar una base de datos de SQL Server mediante SqlPackage utilidad de línea de comandos, consulte import parameters and properties. Puede descargar la versión más reciente de SqlPackage para Windows, macOS o Linux.
Para el escalado y el rendimiento, se recomienda usar SqlPackage en la mayoría de los entornos de producción en lugar de usar el portal de Azure. Para obtener un blog del equipo de asesoramiento al cliente de SQL Server acerca de la migración mediante archivos /BACPAC, consulte migrando de SQL Server a Azure SQL Database mediante archivos BACPAC.
El modelo de aprovisionamiento basado en DTU admite la selección de valores de tamaño máximo de base de datos para cada nivel. Al importar una base de datos use uno de estos valores admitidos.
El comando SqlPackage siguiente importa la base de datos desde el almacenamiento local a un servidor SQL lógico denominado . Crea una base de datos denominada con un nivel de servicio Premium y un objetivo de servicio P6. Cambie estos valores según corresponda para su entorno.
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 conectarse a Azure SQL Database desde detrás de un firewall corporativo, el firewall debe tener abierto el puerto 1433. Para conectarse a SQL Managed Instance, debe tener una conexión de punto a sitio o una conexión de ExpressRoute.
Como alternativa al nombre de usuario y la contraseña, puede usar Microsoft Entra ID (formerly Azure Active Directory). Actualmente, el servicio de Importación/Exportación no admite la autenticación de Microsoft Entra ID cuando se requiere el MFA. Sustituya los parámetros de nombre de usuario y contraseña por y . En este ejemplo se muestra cómo importar una base de datos mediante SqlPackage con autenticación de Microsoft Entra:
SqlPackage /a:Import /sf:testExport.bacpac /tdn:NewDacFX /tsn:apptestserver.database.windows.net /ua:True /tid:"apptest.onmicrosoft.com"
Visual Studio Code
La extensión MSSQL para Visual Studio Code es una extensión gratuita y de código abierto disponible para Windows, macOS y Linux. La extensión incluye la experiencia aplicación de capa de datos (versión preliminar) para las operaciones sqlPackage, incluida la exportación e importación. Para obtener más información sobre cómo instalar y usar la extensión, consulte la extensión MSSQL para Visual Studio Code.
Uso de PowerShell
Nota:
Azure SQL Managed Instance actualmente no admite la migración de una base de datos a una base de datos de instancia desde un archivo BACPAC mediante Azure PowerShell. Para importar en una instancia administrada de SQL, use SQL Server Management Studio o SQLPackage.
Nota:
Las máquinas que procesan solicitudes de importación y exportación enviadas a través del portal o PowerShell deben almacenar el archivo BACPAC, así como los archivos temporales generados por Data-Tier Application Framework (DacFX). El espacio en disco necesario varía considerablemente entre las bases de datos del mismo tamaño y puede tardar hasta tres veces el tamaño de la base de datos. Los equipos que ejecutan la solicitud de importación o exportación solo tienen 450 GB de espacio en disco local. Como resultado, es posible que algunas solicitudes produzcan un error: . En este caso, la solución alternativa es ejecutar SqlPackage en un equipo con suficiente espacio en disco local. Al importar o exportar bases de datos superiores a 150 GB, use SqlPackage para evitar este problema.
- PowerShell
- CLI de Azure
Importante
El módulo Azure Resource Manager de PowerShell (AzureRM) ha quedado en desuso el 29 de febrero de 2024. Todo el desarrollo futuro debe usar el módulo Az.Sql. Se recomienda a los usuarios migrar de AzureRM al módulo de Az PowerShell para garantizar la compatibilidad y las actualizaciones continuas. El módulo AzureRM ya no se mantiene ni cuenta con soporte. Los argumentos de los comandos del módulo Az PowerShell y en los módulos AzureRM son sustancialmente idénticos. Para obtener más información sobre su compatibilidad, consulte Introducción al nuevo módulo de Az PowerShell.
Use el cmdlet New-AzSqlDatabaseImport para enviar una solicitud de importación de base de datos a Azure. En función del tamaño de la base de datos, la importación puede tardar en completarse. El modelo de aprovisionamiento basado en DTU admite la selección de valores de tamaño máximo de base de datos para cada nivel. Al importar una base de datos use uno de estos valores admitidos.
$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)
Puede usar el cmdlet Get-AzSqlDatabaseImportExportStatus para comprobar el progreso de la importación. Si el cmdlet se ejecuta inmediatamente después de la solicitud, por lo general devuelve : La importación se completa cuando se muestre el mensaje de finalización.
$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
Sugerencia
Para obtener otro ejemplo de script, consulte Uso de PowerShell para importar un archivo BACPAC en una base de datos de SQL Database.
Cancelación de la solicitud de importación
Utiliza la API de Cancelación de Operaciones de Base de Datos o el comando Stop-AzSqlDatabaseActivity de PowerShell, como en el siguiente ejemplo:
Stop-AzSqlDatabaseActivity -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName -OperationId $Operation.OperationId
Permisos requeridos para cancelar la importación
Para cancelar la operación de importación, deberá tener uno de los siguientes roles:
- Rol Colaborador de base de datos SQL
- Un rol personalizado de control de acceso basado en roles de Azure (RBAC) con
Microsoft.Sql/servers/databases/operationspermiso
Nivel de compatibilidad de la nueva base de datos
El nivel de compatibilidad de la base de datos importada se basa en el nivel de compatibilidad de la base de datos de origen.
Después de importar la base de datos, puede elegir usar la base de datos en el nivel de compatibilidad actual o en un nivel superior. Para obtener más información sobre las implicaciones y opciones de funcionamiento de una base de datos en un nivel de compatibilidad específico, consulte Nivel de compatibilidad de ALTER DATABASE. Para obtener información sobre otras configuraciones de nivel de base de datos relacionadas con los niveles de compatibilidad, vea ALTER DATABASE SCOPED CONFIGURATION.
Limitaciones
- No se admite la importación a una base de datos en un grupo elástico a través del portal de Azure, Azure PowerShell o CLI de Azure. En su lugar, cree una base de datos en el grupo elástico y, a continuación, use la importación de SQLPackage o importe datos mediante cualquier método en una base de datos única y, a continuación, mueva la base de datos a un grupo elástico.
- Import Export Service no funciona cuando Permitir el acceso a servicios de Azure está establecido en DESACTIVADO. Sin embargo, puede solucionar el problema ejecutando manualmente SqlPackage desde una máquina virtual de Azure o realizando la exportación directamente en el código mediante la API de DacFx.
- La importación no admite especificar una redundancia en el almacenamiento de copia de seguridad al crear una nueva base de datos y utiliza la redundancia de almacenamiento de copia de seguridad geo-redundante predeterminada. Para solucionarlo, cree primero una base de datos vacía con la redundancia de almacenamiento de copia de seguridad deseada mediante Azure portal o PowerShell y, a continuación, importe el BACPAC en esta base de datos vacía.
- El almacenamiento detrás de un firewall actualmente no se admite.
- Durante el proceso de importación, no cree una base de datos con el mismo nombre. El proceso de importación crea una nueva base de datos con el nombre especificado.
- Actualmente, el servicio de Importación/Exportación no admite la autenticación de Microsoft Entra ID cuando se requiere MFA.
- Los servicios de importación/exportación solo admiten la autenticación SQL y Microsoft Entra ID. Import\Export no es compatible con el registro de aplicaciones de Microsoft Identity.
Herramientas adicionales
También puede usar estos asistentes.
- Asistente para importar aplicaciones de capa de datos en SQL Server Management Studio.
- SQL Server Asistente para importación y exportación.