Importación o exportación de una base de datos de Azure SQL Database sin permitir que los servicios de Azure accedan al servidor
Se aplica a: Base de datos de Azure SQL
En este artículo se muestra cómo importar o exportar una base de datos de Azure SQL cuando Permitir que los servicios y recursos de Azure accedan a este servidor esté establecido en DESACTIVADO. El artículo de instrucciones usa una máquina virtual de Azure para ejecutar SqlPackage y realizar la operación de importación o exportación.
La configuración Permitir que los servicios y recursos de Azure accedan a este servidor está visible en el Azure Portal en el menú Seguridad del menú de recursos, Redes, en la sección Excepciones. Para obtener más información sobre esta configuración, consulte Controles de acceso a la red y la base de datos de Azure SQL.
Inicio de sesión en Azure Portal
Inicie sesión en Azure Portal.
Creación de la máquina virtual de Azure
Seleccione el botón Implementar en Azure para crear una máquina virtual de Azure.
Esta plantilla le permite implementar una máquina virtual de Windows simple mediante diversas opciones de versión de Windows con el parche más reciente. Esto implementa una máquina virtual de tamaño A2 en la ubicación del grupo de recursos y devuelve el nombre de dominio completo de la máquina virtual.
Para obtener más información, incluida una plantilla de inicio rápido de Azure, consulte Implementar una VM de Windows sencilla.
Conexión a la máquina virtual
En los pasos siguientes se muestra cómo conectarse a la máquina virtual mediante una conexión de escritorio remoto.
Una vez finalizada la implementación, vaya al recurso de máquina virtual.
Seleccione Conectar.
Aparece un formulario de archivo de Protocolo de escritorio remoto (archivo .rdp) con la dirección IP pública y el número de puerto de la máquina virtual.
Nota:
Hay varias formas de conectarse a una VM. En este tutorial se usa el Protocolo de escritorio remoto (RDP) para conectarse a la VM, pero una solución más reciente para usar Azure Bastion es una alternativa que funcionaría bien, si ha implementado Bastion en su entorno. También puede usar SSH para conectarse a la máquina virtual.
Seleccione Descargar archivo RDP.
Cierre el formulario Conexión a la máquina virtual.
Para conectarse a la máquina virtual, abra el archivo RDP descargado.
Cuando se le pida, seleccione Connect (Conectar).
- En un equipo Mac, necesita un cliente RDP como este Cliente de Escritorio remoto de Mac App Store.
Escriba el nombre de usuario y la contraseña que especificó al crear la máquina virtual y, a continuación, elija Aceptar.
Puede recibir una advertencia de certificado durante el proceso de inicio de sesión. Elija Sí o en Continuar para continuar con la conexión.
Instalación de SqlPackage
Descargue e instale la versión más reciente de SqlPackage. Para obtener más información, consulte SqlPackage.
Creación de una regla de firewall para permitir que la máquina virtual acceda al servidor
En primer lugar, agregue la dirección IP pública de la máquina virtual al firewall del servidor. En los pasos siguientes se crea una regla de Firewall de IP de nivel de servidor para la dirección IP pública de la máquina virtual y se habilita la conectividad de la máquina virtual.
Seleccione SQL Database en el menú de la izquierda y seleccione la base de datos en la página SQL Database. Se abre la página de información general de la base de datos, que muestra el nombre completo del servidor (por ejemplo,
sql-svr.database.windows.net
) y proporciona opciones para otras configuraciones.Copie este nombre de servidor completo para conectarse a su servidor y a sus bases de datos.
Seleccione Establecer el firewall del servidor en la barra de herramientas.
En la página Redes, en la pestaña Acceso público, en la sección Configuración del servidor de seguridad, seleccione Agregar la dirección IPv4 de cliente. Esto agrega la dirección IP pública de su máquina virtual a una nueva regla de firewall de IP a nivel de servidor. Esta regla de firewall puede abrir el puerto 1433 para una única dirección IP o un intervalo de direcciones IP.
Seleccione Guardar. Se crea una regla de firewall de IP en el nivel de servidor para el puerto 1433 de la dirección IP pública de la máquina virtual en el servidor.
Exportación de una base de datos mediante SqlPackage
Para exportar una base de datos de Azure SQL Database mediante la utilidad de línea de comandos SqlPackage, consulte Parámetros y propiedades de la exportación. La utilidad SqlPackage incluye las versiones más recientes de SQL Server Management Studio y SQL Server Data Tools. También puede descargar la versión más reciente de SqlPackage.
Para obtener más información y los pasos para crear un archivo BACPAC, vea Exportar a un archivo BACPAC.
Se recomienda usar la utilidad SqlPackage para la escala y el rendimiento en la mayoría de los entornos de producción. Consulte cómo migrar de SQL Server a Azure SQL Database con archivos BACPAC en el blog de Customer Advisory Team de SQL Server.
Este ejemplo muestra cómo exportar una base de datos con SqlPackage con Autenticación universal de Active Directory. Reemplace los valores por otros específicos de su entorno.
SqlPackage /a:Export /tf:testExport.bacpac /scs:"Data Source=<servername>.database.windows.net;Initial Catalog=MyDB;" /ua:True /tid:"apptest.onmicrosoft.com"
Importación de una base de datos mediante SqlPackage
Para importar una base de datos de SQL Server mediante la utilidad de línea de comandos SqlPackage, consulte Parámetros y propiedades de la importación. SqlPackage incluye las versiones más recientes de SQL Server Management Studio y SQL Server Data Tools. También puede descargar la versión más reciente de SqlPackage.
Para el escalado y rendimiento, se recomienda usar SqlPackage en la mayoría de los entornos de producción en lugar de usar Azure Portal. Consulte cómo migrar de SQL Server a Azure SQL Database con archivos BACPAC en el blog de Customer Advisory Team de SQL Server sobre cómo migrar usuarios con archivos BACPAC
.
El comando SqlPackage siguiente importa la base de datos AdventureWorks2022
del almacenamiento local a una base de datos de Azure SQL. Crea una base de datos denominada myMigratedDatabase
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=myMigratedDatabase>;User Id=<userId>;Password=<password>" /sf:AdventureWorks2022.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.
Este ejemplo muestra cómo importar una base de datos con SqlPackage con Autenticación universal de Active Directory.
SqlPackage /a:Import /sf:testExport.bacpac /tdn:NewDacFX /tsn:apptestserver.database.windows.net /ua:True /tid:"apptest.onmicrosoft.com"
Consideraciones de rendimiento
Las velocidades de exportación varían debido a muchos factores (por ejemplo, forma de datos), por lo que es imposible predecir qué velocidad se debe esperar. SqlPackage puede tardar un tiempo considerable, especialmente en el caso de las bases de datos de gran tamaño.
Para obtener el mejor rendimiento, puede probar las estrategias siguientes:
- Asegurarse de que no hay ninguna otra carga de trabajo en ejecución en la base de datos. Crear una copia antes de la exportación puede ser la mejor solución para garantizar que no haya ninguna otra carga de trabajo en ejecución.
- Aumentar el objetivo de nivel de servicio (SLO) de la base de datos para controlar mejor la carga de trabajo de exportación (principalmente E/S de lectura). Si la base de datos actual es GP_Gen5_4, quizás un nivel de Crítico para la empresa sería útil para la carga de trabajo de lectura.
- Asegurarse de que hay índices agrupados, especialmente para las tablas grandes.
- Las máquinas virtuales (VM) deben estar en la misma región que la base de datos para ayudar a evitar restricciones de red.
- Las máquinas virtuales deben tener discos SSD con el tamaño adecuado para generar artefactos temporales antes de cargarlos en el almacenamiento de blobs.
- Las máquinas virtuales deben tener una configuración de memoria y de núcleo adecuada para la base de datos específica.
Almacenamiento del archivo BACPAC importado o exportado
El archivo BACPAC se puede almacenar en blobs de Azure o Azure Files.
Para lograr el mejor rendimiento, utilice Azure Files. SqlPackage funciona con el sistema de archivos para que pueda acceder a Azure Files directamente.
Para reducir el costo, use blobs de Azure, que cuestan menos que un recurso compartido de archivos Premium de Azure. Pero debe copiar el archivo BACPAC entre el blob y el sistema de archivos local antes de la operación de importación o exportación. Como resultado, el proceso tarda más.
Para cargar o descargar los archivos BACPAC, consulte Transferir datos con AzCopy y BLOB Storage y Transferir datos con AzCopy y almacenamiento de archivos.
En función de su entorno, es posible que necesite Configurar firewalls y redes virtuales de Azure Storage.
Contenido relacionado
- Para información sobre cómo conectarse a una base de datos SQL importada y cómo realizar consultas en ella, lea Inicio rápido: Azure SQL Database: uso de SQL Server Management Studio para conectarse a los datos y realizar consultas en ellos.
- Consulte cómo migrar de SQL Server a Azure SQL Database con archivos BACPAC en el blog de Customer Advisory Team de SQL Server.
- Para información sobre el proceso de migración de bases de datos SQL Server completo, incluidas las recomendaciones relacionadas con el rendimiento, consulte Migración de una base de datos de SQL Server a Azure SQL Database.
- Para obtener información sobre cómo administrar y compartir de forma segura claves de almacenamiento y firmas de acceso compartido, vea la Guía de seguridad de Azure Storage.