Acerca de la copia de seguridad de SQL Server en máquinas virtuales de AzureAbout SQL Server Backup in Azure VMs

Las bases de datos SQL Server son cargas de trabajo críticas que requieren un bajo objetivo de punto de recuperación (RPO) y retención a largo plazo.SQL Server databases are critical workloads that require a low recovery point objective (RPO) and long-term retention. Puede hacer una copia de seguridad de las bases de datos de SQL Server que se ejecutan en máquinas virtuales de Azure mediante Azure Backup.You can back up SQL Server databases running on Azure VMs using Azure Backup.

Proceso de copia de seguridadBackup process

Esta solución aprovecha las API nativas de SQL para realizar copias de seguridad de las bases de datos SQL.This solution leverages the SQL native APIs to take backups of your SQL databases.

  • Una vez que especifique la máquina virtual con SQL Server que desea proteger y que consulte las bases de datos que hay en ella, el servicio Azure Backup instalará una extensión de copia de seguridad de cargas de trabajo en la máquina virtual con la extensión AzureBackupWindowsWorkload del nombre.Once you specify the SQL Server VM that you want to protect and query for the databases in it, Azure Backup service will install a workload backup extension on the VM by the name AzureBackupWindowsWorkload extension.

  • Esta extensión consta de un coordinador y un complemento SQL.This extension consists of a coordinator and a SQL plugin. Mientras que el coordinador es el responsable de desencadenar los flujos de trabajo de varias operaciones como la configuración de las copias de seguridad o la copia de seguridad y restauración, el complemento es responsable de flujo de datos real.While the coordinator is responsible for triggering workflows for various operations like configure backup, backup and restore, the plugin is responsible for actual data flow.

  • Para poder detectar bases de datos en esta máquina virtual, Azure Backup crea la cuenta NT SERVICE\AzureWLBackupPluginSvc.To be able to discover databases on this VM, Azure Backup creates the account NT SERVICE\AzureWLBackupPluginSvc. Dicha cuenta se usa para realizar operaciones de copia de seguridad y restauración, y requiere permisos de administrador del sistema de SQL.This account is used for backup and restore and requires SQL sysadmin permissions. La cuenta NT SERVICE\AzureWLBackupPluginSvc es una cuenta de servicio virtual y, por lo tanto, no requiere administración de contraseñas.The NT SERVICE\AzureWLBackupPluginSvc account is a Virtual Service Account, and therefore does not require any password management. Azure Backup aprovecha la cuenta NT AUTHORITY\SYSTEM para la detección y la consulta de bases de datos, por lo que debe tener un inicio de sesión público en SQL.Azure Backup leverages the NT AUTHORITY\SYSTEM account for database discovery/inquiry, so this account needs to be a public login on SQL. Si no se creó la VM con SQL Server en Azure Marketplace, podría recibir el error UserErrorSQLNoSysadminMembership.If you didn't create the SQL Server VM from the Azure Marketplace, you might receive an error UserErrorSQLNoSysadminMembership. Si esto sucede, siga estas instrucciones.If this occurs follow these instructions.

  • Una vez que desencadene la protección de la configuración en las bases de datos seleccionadas, el servicio de copia de seguridad configura el coordinador con las programaciones de las copias de seguridad y otros detalles de la directiva, que la extensión almacena en caché localmente en la máquina virtual.Once you trigger configure protection on the selected databases, the backup service sets up the coordinator with the backup schedules and other policy details, which the extension caches locally on the VM.

  • A la hora programada, el coordinador se comunica con el complemento y empieza a transmitir los datos de la copia de seguridad en secuencias desde el servidor con SQL Server mediante VDI.At the scheduled time, the coordinator communicates with the plugin and it starts streaming the backup data from the SQL server using VDI.

  • El complemento envía los datos directamente en el almacén de Recovery Services, lo que elimina la necesidad de una ubicación de almacenamiento provisional.The plugin sends the data directly to the recovery services vault, thus eliminating the need for a staging location. El servicio Azure Backup cifra los datos y los almacena en cuentas de almacenamiento.The data is encrypted and stored by the Azure Backup service in storage accounts.

  • Cuando se completa la transferencia de datos, el coordinador realiza la confirmación con el servicio de copia de seguridad.When the data transfer is complete, coordinator confirms the commit with the backup service.

    Arquitectura de copia de seguridad de SQL

Antes de comenzarBefore you start

Antes de empezar, compruebe lo siguiente:Before you start, verify the below:

  1. Asegúrese de tener una instancia de SQL Server que se ejecuta en Azure.Make sure you have a SQL Server instance running in Azure. Puede crear rápidamente una instancia de SQL Server en Marketplace.You can quickly create a SQL Server instance in the marketplace.
  2. Revise los apartados en que se realizan consideraciones acerca de las características y se indica la compatibilidad con los escenarios.Review the feature consideration and scenario support.
  3. Revise las preguntas más frecuentes sobre este escenario.Review common questions about this scenario.

Compatibilidad con los escenariosScenario support

Soporte técnicoSupport DetallesDetails
Implementaciones admitidasSupported deployments Se admiten máquinas virtuales de Azure de SQL Marketplace y que no son de Marketplace (SQL Server instalado manualmente).SQL Marketplace Azure VMs and non-Marketplace (SQL Server manually installed) VMs are supported.
Zonas geográficas admitidasSupported geos Sudeste de Australia (ASE), Este de Australia (AE), Centro de Australia (AC) y Centro de Australia 2 (AC)Australia South East (ASE), East Australia (AE), Australia Central (AC), Australia Central 2 (AC)
Sur de Brasil (BRS)Brazil South (BRS)
Centro de Canadá (CNC) y Este de Canadá (CE)Canada Central (CNC), Canada East (CE)
Asia Suroriental (SEA) y Asia Oriental (EA)South East Asia (SEA), East Asia (EA)
Este de EE. UU. (EUS), Este de EE. UU. 2 (EUS2), Centro-oeste de EE. UU. (WCUS), Oeste de EE. UU. (WUS); Oeste de EE. UU. 2 (WUS 2) Centro-norte de EE. UU. (NCUS) Centro de EE. UU. (CUS) Centro-sur de EE. UU. (SCUS)East US (EUS), East US 2 (EUS2), West Central US (WCUS), West US (WUS); West US 2 (WUS 2) North Central US (NCUS) Central US (CUS) South Central US (SCUS)
Centro de la India (INC), India del Sur (INS), Oeste de la IndiaIndia Central (INC), India South (INS), India West
Este de Japón (JPE) y Oeste de Japón (JPW)Japan East (JPE), Japan West (JPW)
Centro de Corea del Sur (KRC), Sur de Corea del Sur (KRS)Korea Central (KRC), Korea South (KRS)
Norte de Europa (NE) y Oeste de EuropaNorth Europe (NE), West Europe
Sur de Reino Unido (UKS) y Oeste de Reino Unido (UKW)UK South (UKS), UK West (UKW)
US Gov Arizona, US Gov Virginia, US Gov Texas, US DoD (centro), US DoD (este)US Gov Arizona, US Gov Virginia, US Gov Texas, US DoD Central, US DoD East
Norte de Alemania, Centro-oeste de AlemaniaGermany North, Germany West Central
Norte de Suiza, Oeste de SuizaSwitzerland North, Switzerland West
Centro de FranciaFrance Central
Este de China, Norte de China, Norte de China 2 y Este de China 2China East, China East 2, China North, China North 2
Sistemas operativos compatiblesSupported operating systems Windows Server 2019, Windows Server 2016, Windows Server 2012, Windows Server 2008 R2 SP1Windows Server 2019, Windows Server 2016, Windows Server 2012, Windows Server 2008 R2 SP1

Linux no se admite actualmente.Linux isn't currently supported.
Versiones admitidas de SQL ServerSupported SQL Server versions SQL Server 2019, SQL Server 2017 tal como se detalla en la página de búsqueda del ciclo de vida del producto, SQL Server 2016 y los SP tal como se detalla en la página de búsqueda del ciclo de vida del producto, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008SQL Server 2019, SQL Server 2017 as detailed on the Search product lifecycle page, SQL Server 2016 and SPs as detailed on the Search product lifecycle page, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008

Enterprise, Standard, Web, Developer, Express.Enterprise, Standard, Web, Developer, Express.
Versiones de .NET compatiblesSupported .NET versions .NET Framework 4.5.2 o posterior instalado en la máquina virtual.NET Framework 4.5.2 or later installed on the VM

Consideraciones y limitaciones de las característicasFeature consideration and limitations

  • La copia de seguridad de SQL Server se puede configurar en Azure Portal o PowerShell.SQL Server backup can be configured in the Azure portal or PowerShell. No se admite la CLI.We do not support CLI.
  • La solución es compatible con ambos tipos de implementaciones: las máquinas virtuales de Azure Resource Manager y las máquinas virtuales clásicas.The solution is supported on both kinds of deployments - Azure Resource Manager VMs and classic VMs.
  • La máquina virtual que ejecuta SQL Server requiere conectividad a Internet para acceder a las direcciones IP públicas de Azure.VM running SQL Server requires internet connectivity to access Azure public IP addresses.
  • La instancia del clúster de conmutación por error (FCI) de SQL Server no se admite.SQL Server Failover Cluster Instance (FCI) is not supported.
  • No se admiten operaciones de copia de seguridad y restauración de bases de datos reflejadas ni de instantáneas de bases de datos.Back up and restore operations for mirror databases and database snapshots aren't supported.
  • Si se usa más de una solución para realizar copias de seguridad de una instancia de SQL Server independiente o de un grupo de disponibilidad Always On de SQL, se pueden producir errores en la copia de seguridad, por lo que es aconsejable evitarlo.Using more than one backup solutions to back up your standalone SQL Server instance or SQL Always on availability group may lead to backup failure; refrain from doing so.
  • La realización de una copia de seguridad de dos nodos de un grupo de disponibilidad individualmente con las mismas soluciones o soluciones diferentes, también puede dar lugar a errores en la copia de seguridad.Backing up two nodes of an availability group individually with same or different solutions, may also lead to backup failure.
  • Azure Backup admite solo los tipos de copia de seguridad Completa y Solo copia completa en las bases de datos de solo lecturaAzure Backup supports only Full and Copy-only Full backup types for Read-only databases
  • Las bases de datos con un gran número de archivos no se pueden proteger.Databases with large number of files can't be protected. El número máximo de archivos admitidos es aproximadamente 1000.The maximum number of files that is supported is ~1000.
  • Puede hacer una copia de seguridad de hasta aproximadamente 2000 bases de datos de SQL Server en un almacén.You can back up to ~2000 SQL Server databases in a vault. Si tiene un número mayor de bases de datos, puede crear varios almacenes.You can create multiple vaults in case you have a greater number of databases.
  • Puede configurar la copia de seguridad de hasta 50 bases de datos a la vez; esta restricción ayuda a optimizar la carga de copias de seguridad.You can configure backup for up to 50 databases in one go; this restriction helps optimize backup loads.
  • Se admiten bases de datos de hasta 2 TB de tamaño; si su tamaño es mayor, pueden surgir problemas de rendimiento.We support databases up to 2 TB in size; for sizes greater than that performance issues may come up.
  • Para saber el número aproximado de bases de datos que se pueden proteger por servidor, es preciso tener en cuenta factores tales como el ancho de banda, el tamaño de la máquina virtual, la frecuencia de copia de seguridad, el tamaño de la base de datos, etc. Descargue la herramienta de planeamiento de recursos que proporciona el número aproximado de bases de datos que puede tener por servidor según los recursos de la máquina virtual y la directiva de copia de seguridad.To have a sense of as to how many databases can be protected per server, we need to consider factors such as bandwidth, VM size, backup frequency, database size, etc. Download the resource planner that gives the approximate number of databases you can have per server based on the VM resources and the backup policy.
  • En el caso de los grupos de disponibilidad, las copias de seguridad se realizan de los distintos nodos en función de una serie de factores.In case of availability groups, backups are taken from the different nodes based on a few factors. A continuación, se resume el comportamiento del proceso de copia de seguridad en un grupo de disponibilidad.The backup behavior for an availability group is summarized below.

Comportamiento del proceso de copia de seguridad en el caso de los grupos de disponibilidad Always OnBack up behavior in case of Always on availability groups

Se recomienda que la copia de seguridad se configure en un único nodo de un grupo de disponibilidad.It is recommended that the backup is configured on only one node of an AG. La copia de seguridad siempre debe configurarse en la misma región que el nodo principal.Backup should always be configured in the same region as the primary node. En otras palabras, siempre es necesario que el nodo principal esté presente en la región en la que va a configurar la copia de seguridad.In other words, you always need the primary node to be present in the region in which you are configuring backup. Si todos los nodos del grupo de disponibilidad están en la misma región en la que se configura la copia de seguridad, no hay ningún problema.If all the nodes of the AG are in the same region in which the backup is configured, there isn’t any concern.

Para los grupos de disponibilidad con varias regionesFor cross-region AG

  • Independientemente de la preferencia de copia de seguridad, las copias de seguridad no se harán en los nodos que no estén en la misma región donde se configure la copia de seguridad.Regardless of the backup preference, backups won’t happen from the nodes that are not in the same region where the backup is configured. Esto se debe a que no se admiten las copias de seguridad entre regiones.This is because the cross-region backups are not supported. Si tiene solo dos nodos y el secundario está en la otra región; en este caso, las copias de seguridad seguirán produciéndose desde el nodo principal (a menos que su preferencia de copia de seguridad sea "solo secundaria").If you have only two nodes and the secondary node is in the other region; in this case, the backups will continue to happen from primary node (unless your backup preference is ‘secondary only’).
  • Si se produce una conmutación por error a una región diferente de aquella en la que se configura la copia de seguridad, las copias de seguridad producirían un error en los nodos de la región conmutada por error.If a fail-over happens to a region different than the one in which the backup is configured, backups would fail on the nodes in the failed-over region.

En función de las preferencias relativas a la copia de seguridad y de los tipos de copia de seguridad (completa, diferencial, de registros, y solo copia completa), se toman las copias de seguridad de un nodo concreto (principal o secundario).Depending on the backup preference and backups types (full/differential/log/copy-only full), backups are taken from a particular node (primary/secondary).

  • Preferencias de copia de seguridad: principalBackup preference: Primary
Tipo de copia de seguridadBackup Type NodeNode
CompletoFull PrincipalPrimary
DiferencialDifferential PrincipalPrimary
LogLog PrincipalPrimary
Solo copia completaCopy-Only Full PrincipalPrimary
  • Preferencias de copia de seguridad: solo secundariaBackup preference: Secondary Only
Tipo de copia de seguridadBackup Type NodeNode
CompletoFull PrincipalPrimary
DiferencialDifferential PrincipalPrimary
LogLog SecundarioSecondary
Solo copia completaCopy-Only Full SecundarioSecondary
  • Preferencias de copia de seguridad: secundariaBackup preference: Secondary
Tipo de copia de seguridadBackup Type NodeNode
CompletoFull PrincipalPrimary
DiferencialDifferential PrincipalPrimary
LogLog SecundarioSecondary
Solo copia completaCopy-Only Full SecundarioSecondary
  • Sin preferencias para copia de seguridadNo Backup preference
Tipo de copia de seguridadBackup Type NodeNode
CompletoFull PrincipalPrimary
DiferencialDifferential PrincipalPrimary
LogLog SecundarioSecondary
Solo copia completaCopy-Only Full SecundarioSecondary

Establecer permisos de máquina virtualSet VM permissions

Al ejecutar la detección en un servidor SQL Server, Azure Backup hace lo siguiente:When you run discovery on a SQL Server, Azure Backup does the following:

  • Agrega la extensión AzureBackupWindowsWorkload.Adds the AzureBackupWindowsWorkload extension.
  • Crea una cuenta NT SERVICE\AzureWLBackupPluginSvc para detectar las bases de datos en la máquina virtual.Creates an NT SERVICE\AzureWLBackupPluginSvc account to discover databases on the virtual machine. Dicha cuenta se usa para realizar una operación de copia de seguridad y restauración, y requiere permisos de administrador del sistema de SQL.This account is used for a backup and restore and requires SQL sysadmin permissions.
  • Detecta las bases de datos que se ejecutan en una CM, Azure Backup usa la cuenta NT AUTHORITY\SYSTEM.Discovers databases that are running on a VM, Azure Backup uses the NT AUTHORITY\SYSTEM account. Esta cuenta ofrecer inicio de sesión público en SQL.This account must be a public sign-in on SQL.

Si no creó la VM con SQL Server en Azure Marketplace o si usa SQL 2008 y 2008 R2, es posible que reciba un error UserErrorSQLNoSysadminMembership.If you didn't create the SQL Server VM in the Azure Marketplace or if you are on SQL 2008 and 2008 R2, you might receive a UserErrorSQLNoSysadminMembership error.

Para conceder permisos en el caso de SQL 2008 y 2008 R2 que se ejecutan en Windows 2008 R2, consulte aquí.For giving permissions in case of SQL 2008 and 2008 R2 running on Windows 2008 R2, refer here.

Para las demás versiones, realice los pasos siguientes para corregir los permisos:For all other versions, fix permissions with the following steps:

  1. Use una cuenta con permisos sysadmin de SQL Server para iniciar sesión en SQL Server Management Studio (SSMS).Use an account with SQL Server sysadmin permissions to sign in to SQL Server Management Studio (SSMS). A menos que necesite permisos especiales, debería funcionar la autenticación de Windows.Unless you need special permissions, Windows authentication should work.

  2. En el servidor SQL Server, abra la carpeta Seguridad/Inicios de sesión.On the SQL Server, open the Security/Logins folder.

    Abrir carpeta Security/Logins para ver las cuentas

  3. Haga clic con el botón derecho en la carpeta Logins y seleccione Nuevo inicio de sesión.Right-click the Logins folder and select New Login. En Inicio de sesión: Nuevo, seleccione Buscar.In Login - New, select Search.

    En el cuadro de diálogo Inicio de sesión - Nuevo, seleccionar Buscar

  4. La cuenta de servicio virtual de Windows NT SERVICE\AzureWLBackupPluginSvc se creó durante las fases de registro de la máquina virtual y de detección de SQL.The Windows virtual service account NT SERVICE\AzureWLBackupPluginSvc was created during the virtual machine registration and SQL discovery phase. Escriba el nombre de la cuenta como se muestra en Escriba el nombre del objeto que desea seleccionar.Enter the account name as shown in Enter the object name to select. Seleccione Comprobar nombres para resolver el nombre.Select Check Names to resolve the name. Haga clic en OK.Click OK.

    Seleccionar Comprobar nombres para resolver el nombre de servicio desconocido

  5. En Roles de servidor, asegúrese de que está seleccionado el rol sysadmin.In Server Roles, make sure the sysadmin role is selected. Haga clic en OK.Click OK. Ahora deben existir los permisos necesarios.The required permissions should now exist.

    Asegúrese de que el rol del servidor administrador del sistema está seleccionado

  6. Ahora, asocie la base de datos con el almacén de Recovery Services.Now associate the database with the Recovery Services vault. En Azure Portal, en la lista Servidores protegidos, haga clic con el botón derecho en el servidor que tiene un estado de error > Rediscover DBs (Volver a detectar bases de datos).In the Azure portal, in the Protected Servers list, right-click the server that's in an error state > Rediscover DBs.

    Comprobar que el servidor tiene los permisos adecuados

  7. Compruebe el progreso en el área Notificaciones.Check progress in the Notifications area. Cuando se detectan las bases de datos seleccionadas, aparece un mensaje de operación correcta.When the selected databases are found, a success message appears.

    Mensaje de implementación correcta

Nota

Si su servidor SQL Server tiene varias instancias de SQL Server instaladas, debe agregar permisos de administrador del sistema a la cuenta NT Service\AzureWLBackupPluginSvc en todas las instancias de SQL.If your SQL Server has multiple instances of SQL Server installed, then you must add sysadmin permission for NT Service\AzureWLBackupPluginSvc account to all SQL instances.

Conceder permisos de administrador del sistema para SQL 2008 y SQL 2008 R2Give SQL sysadmin permissions for SQL 2008 and SQL 2008 R2

Agregue los inicios de sesión NT AUTHORITY\SYSTEM y Service\AzureWLBackupPluginSvc NT en la instancia de SQL Server:Add NT AUTHORITY\SYSTEM and NT Service\AzureWLBackupPluginSvc logins to the SQL Server Instance:

  1. Vaya a la instancia de SQL Server en el Explorador de objetos.Go the SQL Server Instance in the Object explorer.

  2. Vaya a Seguridad -> Inicios de sesión.Navigate to Security -> Logins

  3. Haga clic con el botón derecho en Inicios de sesión y seleccione Nuevo inicio de sesión...Right click on the Logins and click New Login…

    Nuevo inicio de sesión mediante SSMS

  4. Vaya a la pestaña General y escriba NT AUTHORITY\SYSTEM como nombre de inicio de sesión.Go to the General tab and enter NT AUTHORITY\SYSTEM as the Login Name.

    nombre de inicio de sesión para SSMS

  5. Vaya a Roles del servidor y elija los roles public y sysadmin.Go to Server Roles and choose public and sysadmin roles.

    elegir de roles en SSMS

  6. Vaya a Estado.Go to Status. En Permiso de conexión al motor de base de datos, seleccione Conceder y en Inicio de sesión, seleccione Habilitado.Grant the Permission to connect to database engine and Login as Enabled.

    Conceder permisos en SSMS

  7. Haga clic en Aceptar.Click OK.

  8. Repita la misma secuencia de pasos (de 1 a 7 arriba) para agregar el inicio de sesión NT Service\AzureWLBackupPluginSvc a la instancia de SQL Server.Repeat the same sequence of steps (1-7 above) to add NT Service\AzureWLBackupPluginSvc login to the SQL Server instance. Si el inicio de sesión ya existe, asegúrese de que tenga el rol de servidor sysadmin y, en Estado, en Permiso de conexión al motor de base de dato, se haya seleccionado Conceder y, en Inicio de sesión, se haya seleccionado Habilitado.If the login already exists, make sure it has the sysadmin server role and under Status it has Grant the Permission to connect to database engine and Login as Enabled.

  9. Después de conceder el permiso, seleccione Re-discover DBs (Volver a detectar bases de datos) en el portal: Almacén -> Infraestructura de Backup -> Workload in Azure VM (Carga de trabajo en la VM de Azure):After granting permission, Rediscover DBs in the portal: Vault -> Backup Infrastructure -> Workload in Azure VM:

    Volver a detectar bases de datos en Azure Portal

Como alternativa, puede automatizar la concesión de los permisos al ejecutar los siguientes comandos de PowerShell en modo de administrador.Alternatively, you can automate giving the permissions by running the following PowerShell commands in admin mode. El nombre de instancia se establece en MSSQLSERVER de manera predeterminada.The instance name is set to MSSQLSERVER by default. Si fuera necesario, cambie el argumento de nombre de instancia en el script:Change the instance name argument in script if need be:

param(
    [Parameter(Mandatory=$false)]
    [string] $InstanceName = "MSSQLSERVER"
)
if ($InstanceName -eq "MSSQLSERVER")
{
    $fullInstance = $env:COMPUTERNAME   # In case it is the default SQL Server Instance
}
else
{
    $fullInstance = $env:COMPUTERNAME + "\" + $InstanceName   # In case of named instance
}
try
{
    sqlcmd.exe -S $fullInstance -Q "sp_addsrvrolemember 'NT Service\AzureWLBackupPluginSvc', 'sysadmin'" # Adds login with sysadmin permission if already not available
}
catch
{
    Write-Host "An error occurred:"
    Write-Host $_.Exception|format-list -force
}
try
{
    sqlcmd.exe -S $fullInstance -Q "sp_addsrvrolemember 'NT AUTHORITY\SYSTEM', 'sysadmin'" # Adds login with sysadmin permission if already not available
}
catch
{
    Write-Host "An error occurred:"
    Write-Host $_.Exception|format-list -force
}

Pasos siguientesNext steps

  • Más información acerca de la copia de seguridad de bases de datos de SQL Server.Learn about backing up SQL Server databases.
  • Más información sobre la restauración de copias de seguridad de bases de datos de SQL Server.Learn about restoring backed up SQL Server databases.
  • Más información sobre la administración de copias de seguridad de bases de datos de SQL Server.Learn about managing backed up SQL Server databases.