Sobre o Backup do SQL Server nas VMs do AzureAbout SQL Server Backup in Azure VMs

Os bancos de dados SQL Server são cargas de trabalho críticas que exigem um baixo RPO (objetivo de ponto de recuperação) e retenção de longo prazo.SQL Server databases are critical workloads that require a low recovery point objective (RPO) and long-term retention. É possível fazer backup de bancos de dados do SQL Server em execução em VMs do Azure usando o Backup do Azure.You can back up SQL Server databases running on Azure VMs using Azure Backup.

Processo de backupBackup process

Essa solução aproveita as APIs nativas do SQL para fazer backups dos bancos de dados SQL.This solution leverages the SQL native APIs to take backups of your SQL databases.

  • Depois que você especificar a VM do SQL Server que você deseja proteger e na qual consultar os bancos de dados, o serviço de Backup do Azure instalará uma extensão de backup de carga de trabalho na VM pelo nome da extensão AzureBackupWindowsWorkload.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.

  • Essa extensão consiste em um coordenador e um plugin do SQL.This extension consists of a coordinator and a SQL plugin. Ao passo que o coordenador é responsável por disparar fluxos de trabalho para várias operações, como configurar o backup, backup e restauração, o plugin é responsável por fluxo de dados 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 descobrir bancos de dados nesta VM, o Backup do Azure cria a conta NT SERVICE\AzureWLBackupPluginSvc.To be able to discover databases on this VM, Azure Backup creates the account NT SERVICE\AzureWLBackupPluginSvc. Essa conta é usada para backup e restauração e exige permissões de sysadmin do SQL.This account is used for backup and restore and requires SQL sysadmin permissions. O Backup do Azure aproveita a conta NT AUTHORITY\SYSTEM para descoberta/consulta de banco de dados e, portanto, essa conta precisa ser um logon público no SQL.Azure Backup leverages the NT AUTHORITY\SYSTEM account for database discovery/inquiry, so this account need to be a public login on SQL. Se você não criou a VM do SQL Server no Azure Marketplace, talvez você receba um erro UserErrorSQLNoSysadminMembership.If you didn't create the SQL Server VM from the Azure Marketplace, you might receive an error UserErrorSQLNoSysadminMembership. Se isso ocorrer, siga estas instruções.If this occurs follow these instructions.

  • Depois que o gatilho configurar a proteção nos bancos de dados selecionados, o serviço de backup configura o coordenador com as agendas de backup e outros detalhes da política, que aumenta os caches localmente na VM.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.

  • No horário agendado, o coordenador se comunica com o plugin e ele começa a transmissão dos dados de backup do SQL Server usando o VDI.At the scheduled time, the coordinator communicates with the plugin and it starts streaming the backup data from the SQL server using VDI.

  • O plugin envia os dados diretamente para o cofre de serviços de recuperação, eliminando a necessidade de um local de preparo.The plugin sends the data directly to the recovery services vault, thus eliminating the need for a staging location. Os dados são criptografados e armazenados pelo serviço de Backup do Microsoft Azure em contas de armazenamento.The data is encrypted and stored by the Azure Backup service in storage accounts.

  • Quando a transferência de dados for concluída, o coordenador confirma com o serviço de backup.When the data transfer is complete, coordinator confirms the commit with the backup service.

    Arquitetura de backup SQL

Antes de começarBefore you start

Antes de começar, verifique o que está descrito abaixo:Before you start, verify the below:

  1. Garanta que você tenha uma Instância do SQL Server em execução no Azure.Make sure you have a SQL Server instance running in Azure. Você pode criar uma Instância do SQL Server rapidamente no marketplace.You can quickly create a SQL Server instance in the marketplace.
  2. Examine os recurso consideração e suporte a cenários.Review the feature consideration and scenario support.
  3. Examine as perguntas comuns sobre esse cenário.Review common questions about this scenario.

Suporte ao cenárioScenario support

SuporteSupport DetalhesDetails
Implantações com suporteSupported deployments Há suporte para VMs do Azure no Marketplace do SQL e VMs que não são do Marketplace (do SQL Server instaladas manualmente).SQL Marketplace Azure VMs and non-Marketplace (SQL Server manually installed) VMs are supported.
Áreas geográficas com suporteSupported geos Sudeste da Austrália (ASE), Leste da Austrália (AE)Australia South East (ASE), East Australia (AE)
Sul do Brasil (BRS)Brazil South (BRS)
Canadá Central (CNC), Leste do Canadá (CE)Canada Central (CNC), Canada East (CE)
Sudeste Asiático (SEA), Ásia Oriental (EA)South East Asia (SEA), East Asia (EA)
Leste dos EUA (EUS), Leste dos EUA 2 (EUS2), Centro-Oeste dos EUA (WCUS), Oeste dos EUA (WUS); Oeste dos EUA 2 (WUS 2) Centro-Norte dos EUA (NCUS) EUA Central (CUS) Centro-Sul dos EUA (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)
Índia Central (INC), Sul da Índia (INS)India Central (INC), India South (INS)
Oeste do Japão (JPE), Leste do Japão (JPW)Japan East (JPE), Japan West (JPW)
Coreia Central (KRC), Sul da Coreia (KRS)Korea Central (KRC), Korea South (KRS)
Norte da Europa (NE), Oeste da EuropaNorth Europe (NE), West Europe
Sul do Reino Unido (UKS), Oeste do Reino Unido (UKW)UK South (UKS), UK West (UKW)
US Gov – Arizona, US Gov – Virgínia, US Gov – Texas, US DoD Central, US DoD LesteUS Gov Arizona, US Gov Virginia, US Gov Texas, US DoD Central, US DoD East
Sistemas operacionais com suporteSupported operating systems Windows Server 2016, Windows Server 2012 R2 e Windows Server 2012Windows Server 2016, Windows Server 2012 R2, Windows Server 2012

Não há suporte para Linux no momento.Linux isn't currently supported.
Versões do SQL Server com suporteSupported SQL Server versions SQL Server 2017, conforme detalhado aqui, SQL Server 2016 e SPs, conforme detalhado aqui, SQL Server 2014 e SQL Server 2012.SQL Server 2017 as detailed here, SQL Server 2016 and SPs as detailed here, SQL Server 2014, SQL Server 2012.

Enterprise, Standard, Web, Developer e Express.Enterprise, Standard, Web, Developer, Express.
Versões do .NET com suporteSupported .NET versions .NET Framework 4.5.2 e superior instalado na VM.NET Framework 4.5.2 and above installed on the VM

Suporte para SQL Server 2008 e SQL Server 2008 R2Support for SQL Server 2008 and SQL Server 2008 R2

O Backup do Azure anunciou recentemente o suporte para EOS SQL Servers, SQL Server 2008 e SQL Server 2008 R2.Azure Backup has recently announced support for EOS SQL Severs - SQL Server 2008 and SQL Server 2008 R2. A solução está atualmente em versão prévia para o EOS SQL Server e oferece suporte à configuração a seguir:The solution is currently in preview for EOS SQL Server and supports the following configuration:

  1. SQL Server 2008 e SQL Server 2008 R2 em execução no Windows 2008 R2 SP1SQL Server 2008 and SQL Server 2008 R2 running on Windows 2008 R2 SP1
  2. .NET Framework 4.5.2 e superior precisa estar instalado na VM.NET Framework 4.5.2 and above needs to be installed on the VM
  3. Não há suporte para o backup para FCI e bancos de dados espelhadosBackup for FCI and mirrored databases isn’t supported

Os usuários não serão cobrados por esse recurso até a hora em que ele estiver em disponibilidade geral.Users will not be charged for this feature until the time it is generally available. Todas as outras considerações e limitações de recursos aplicam-se também a essas versões.All of the other feature considerations and limitations apply to these versions as well. Confira os pré-requisitos antes de configurar a proteção no SQL Server 2008 e no SQL Server 2008 R2, que incluem a configuração da chave do Registro (essa etapa não será necessária quando o recurso estiver em disponibilidade geral).Kindly refer to the prerequisites before you configure protection on SQL Servers 2008 and 2008 R2, which include setting the registry key (this step would not be required when the feature is generally available).

Considerações e limitações de recursoFeature consideration and limitations

  • O Backup do SQL Server pode ser configurado no portal do Azure ou PowerShell.SQL Server backup can be configured in the Azure portal or PowerShell. Não oferecemos CLI de suporte.We do not support CLI.
  • A solução é compatível em ambos os tipos de implantações – VMs do Azure Resource Manager e VMs clássicas.The solution is supported on both kinds of deployments - Azure Resource Manager VMs and classic VMs.
  • VM que executa o SQL Server exige conectividade com a Internet para acessar os endereços IP públicos do Azure.VM running SQL Server requires internet connectivity to access Azure public IP addresses.
  • Não há suporte para o SQL Server FCI (Instância do Cluster de Failover) e o SQL Server Always On na Instância de Cluster de Failover.SQL Server Failover Cluster Instance (FCI) and SQL Server Always on Failover Cluster Instance are not supported.
  • Não há suporte para as operações de backup e de restauração para bancos de dados de espelho e instantâneos do banco de dados.Back up and restore operations for mirror databases and database snapshots aren't supported.
  • Usar mais de uma solução de backup para fazer backup de sua instância do SQL Server autônoma ou do grupo de disponibilidade SQL Always On pode levar à falha de backup. Evite fazer isso.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.
  • Fazer backup de dois nós de um grupo de disponibilidade individualmente com soluções iguais ou diferentes, também poderá levar à falha de backup.Backing up two nodes of an availability group individually with same or different solutions, may also lead to backup failure.
  • Backup do Azure dá suporte a apenas tipos de backup Completo e Somente Cópia para banco de dados Somente leituraAzure Backup supports only Full and Copy-only Full backup types for Read-only databases
  • Bancos de dados com um grande número de arquivos não podem ser protegidos.Databases with large number of files can't be protected. O número máximo de arquivos com suporte não é ~1000.The maximum number of files that is supported is ~1000.
  • É possível fazer backup de até ~2000 bancos de dados do SQL Server em um cofre.You can back up to ~2000 SQL Server databases in a vault. Caso você tenha um número maior de bancos de dados, poderá criar vários cofres.You can create multiple vaults in case you have a greater number of databases.
  • Você pode configurar o backup de até 50 bancos de dados de uma vez; essa restrição ajuda a otimizar cargas de backup.You can configure backup for up to 50 databases in one go; this restriction helps optimize backup loads.
  • Damos suporte a bancos de dados de até 2 TB em tamanho; para tamanhos maiores do que isso, poderá haver problemas de desempenho.We support databases up to 2 TB in size; for sizes greater than that, performance issues may come up.
  • Para ter uma ideia de sobre quantos bancos de dados podem ser protegidos por servidor, precisamos considerar fatores como a largura de banda, tamanho da VM, frequência de backup, tamanho do banco de dados, etc. Baixe o planejador de recursos que fornece o número aproximado de bancos de dados que você pode ter por servidor com base nos recursos da VM e na política de backup.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.
  • No caso de grupos de disponibilidade, os backups são feitos de nós diferentes com base em alguns fatores.In case of availability groups, backups are taken from the different nodes based on a few factors. O comportamento de backup para um grupo de disponibilidade está resumido abaixo.The backup behavior for an availability group is summarized below.

Faça backup do comportamento no caso de grupos de disponibilidade Always OnBack up behavior in case of Always on availability groups

É recomendável que o backup seja configurado em apenas um nó de um grupo de disponibilidade.It is recommended that the backup is configured on only one node of an AG. O backup sempre deve ser configurado na mesma região que o nó primário.Backup should always be configured in the same region as the primary node. Em outras palavras, você sempre precisa que o nó primário esteja presente na região na qual você está configurando o backup.In other words, you always need the primary node to be present in the region in which you are configuring backup. Se todos os nós do grupo de disponibilidade estiverem na mesma região na qual o backup é configurado, não haverá preocupação.If all the nodes of the AG are in the same region in which the backup is configured, there isn’t any concern.

Para grupos de disponibilidade entre regiõesFor cross-region AG

  • Independentemente da preferência de backup, os backups não acontecerão em nós que não estão na mesma região em que o backup é configurado.Regardless of the backup preference, backups won’t happen from the nodes that are not in the same region where the backup is configured. Isso ocorre porque os backups entre regiões não são compatíveis.This is because the cross-region backups are not supported. Se você tiver apenas dois nós e o nó secundário estiver em outra região; nesse caso, os backups continuarão ocorrendo no nó primário (a menos que sua preferência de backup seja “somente secundária”).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’).
  • Se ocorresse um failover em uma região diferente da região em que o backup está configurado, eles falhariam nos nós na região de failover.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.

Dependendo da preferência de backup e os tipos de backups (completo/diferencial/log/somente cópia completos), os backups serão feitos em um nó específico (primário/secundário).Depending on the backup preference and backups types (full/differential/log/copy-only full), backups are taken from a particular node (primary/secondary).

  • Preferência de Backup: PrimárioBackup preference: Primary
Tipo de backupBackup Type NodeNode
CompletoFull PrimárioPrimary
DiferencialDifferential PrimárioPrimary
RegistroLog PrimárioPrimary
Completo somente de cópiaCopy-Only Full PrimárioPrimary
  • Preferência de Backup: Apenas secundárioBackup preference: Secondary Only
Tipo de backupBackup Type NodeNode
CompletoFull PrimárioPrimary
DiferencialDifferential PrimárioPrimary
RegistroLog SecundárioSecondary
Completo somente de cópiaCopy-Only Full SecundárioSecondary
  • Preferência de Backup: SecundárioBackup preference: Secondary
Tipo de backupBackup Type NodeNode
CompletoFull PrimárioPrimary
DiferencialDifferential PrimárioPrimary
RegistroLog SecundárioSecondary
Completo somente de cópiaCopy-Only Full SecundárioSecondary
  • Nenhuma preferência de BackupNo Backup preference
Tipo de backupBackup Type NodeNode
CompletoFull PrimárioPrimary
DiferencialDifferential PrimárioPrimary
RegistroLog SecundárioSecondary
Completo somente de cópiaCopy-Only Full SecundárioSecondary

Definir permissões da VMSet VM permissions

Ao executar a descoberta em um SQL Server, o Backup do Azure faz o seguinte:When you run discovery on a SQL Server, Azure Backup does the following:

  • Adiciona a extensão AzureBackupWindowsWorkload.Adds the AzureBackupWindowsWorkload extension.
  • Cria uma conta NT SERVICE\AzureWLBackupPluginSvc para descobrir bancos de dados na máquina virtual.Creates an NT SERVICE\AzureWLBackupPluginSvc account to discover databases on the virtual machine. Essa conta é usada para backup e restauração e exige permissões de sysadmin do SQL.This account is used for a backup and restore and requires SQL sysadmin permissions.
  • Descobre os bancos de dados que estão em execução em uma VM, o Backup do Azure usa a conta NT AUTHORITY\SYSTEM.Discovers databases that are running on a VM, Azure Backup uses the NT AUTHORITY\SYSTEM account. Essa conta deve estar conectada publicamente no SQL.This account must be a public sign-in on SQL.

Se você não criou a VM do SQL Server no Azure Marketplace ou se estiver no SQL 2008 e 2008 R2, talvez receba um erro 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 permissões no caso de SQL 2008 e 2008 R2 em execução no Windows 2008 R2, confira aqui.For giving permissions in case of SQL 2008 and 2008 R2 running on Windows 2008 R2, refer here.

Para todas as outras versões, corrija as permissões com as seguintes etapas:For all other versions, fix permissions with the following steps:

  1. Use uma conta com permissões de sysadmin do SQL Server para entrar no SSMS (SQL Server Management Studio).Use an account with SQL Server sysadmin permissions to sign in to SQL Server Management Studio (SSMS). A menos que você precise de permissões de acesso especiais, a autenticação do Windows deverá funcionar.Unless you need special permissions, Windows authentication should work.

  2. No SQL Server, abra a pasta Segurança/Logons.On the SQL Server, open the Security/Logins folder.

    Abra a pasta Segurança/Logons para ver as contas

  3. Clique com o botão direito do mouse na pasta Logons e selecione Novo Logon.Right-click the Logins folder and select New Login. Em Logon – Novo, selecione Pesquisar.In Login - New, select Search.

    Na caixa de diálogo Logon – Novo, selecione Pesquisar

  4. A conta de serviço virtual do Windows NT SERVICE\AzureWLBackupPluginSvc foi criada durante a fase de descoberta do SQL e do registro da máquina virtual.The Windows virtual service account NT SERVICE\AzureWLBackupPluginSvc was created during the virtual machine registration and SQL discovery phase. Insira o nome da conta, conforme mostrado em Inserir o nome do objeto a ser selecionado.Enter the account name as shown in Enter the object name to select. Selecione Verificar Nomes para resolver o nome.Select Check Names to resolve the name. Clique em OK.Click OK.

    Selecione Verificar Nomes para resolver o nome de serviço desconhecido

  5. Em Funções de Servidor, verifique se a função sysadmin está selecionada.In Server Roles, make sure the sysadmin role is selected. Clique em OK.Click OK. As permissões necessárias agora devem existir.The required permissions should now exist.

    Verifique se a função de servidor sysadmin está selecionada

  6. Agora, associe o banco de dados ao cofre dos Serviços de Recuperação.Now associate the database with the Recovery Services vault. No portal do Azure, na lista Servidores Protegidos, clique com o botão direito do mouse no servidor que está em um estado de erro > Redescobrir BDs.In the Azure portal, in the Protected Servers list, right-click the server that's in an error state > Rediscover DBs.

    Verifique se o servidor tem as permissões apropriadas

  7. Verifique o progresso na área Notificações.Check progress in the Notifications area. Quando os bancos de dados selecionados são descobertos, é exibida uma mensagem de êxito.When the selected databases are found, a success message appears.

    Mensagem de êxito na implantação

Observação

Se o SQL Server tiver várias instâncias do SQL Server instaladas, você precisará adicionar a permissão sysadmin para a conta NT Service\AzureWLBackupPluginSvc em todas as instâncias do 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 permissões de sysadmin do SQL para SQL 2008 e SQL 2008 R2Give SQL sysadmin permissions for SQL 2008 and SQL 2008 R2

Adicione logins do NT AUTHORITY\SYSTEM e do NT Service\AzureWLBackupPluginSvc à instância do SQL Server:Add NT AUTHORITY\SYSTEM and NT Service\AzureWLBackupPluginSvc logins to the SQL Server Instance:

  1. Vá até a instância do SQL Server no Pesquisador de Objetos.Go the SQL Server Instance in the Object explorer.

  2. Navegue até Segurança -> LogonsNavigate to Security -> Logins

  3. Clique com o botão direito do mouse em Logons e clique em Novo Logon…Right click on the Logins and click New Login…

    Novo logon usando o SSMS

  4. Vá até a guia Geral e insira NT AUTHORITY\SYSTEM como o nome de logon.Go to the General tab and enter NT AUTHORITY\SYSTEM as the Login Name.

    nome de logon para o SSMS

  5. Vá até Funções de Servidor e escolha as funções public e sysadmin.Go to Server Roles and choose public and sysadmin roles.

    escolhendo funções no SSMS

  6. Vá até Status.Go to Status. Conceda a permissão para conectar ao mecanismo de banco de dados e faça logon como Habilitado.Grant the Permission to connect to database engine and Login as Enabled.

    Conceder permissões no SSMS

  7. Clique em OK.Click OK.

  8. Repita a mesma sequência de etapas (de 1 a 7 acima) para adicionar o logon de NT Service\AzureWLBackupPluginSvc à instância do SQL Server.Repeat the same sequence of steps (1-7 above) to add NT Service\AzureWLBackupPluginSvc login to the SQL Server instance. Se o logon já existe, verifique se tem a função de servidor sysadmin e, em Status, se tem a permissão de concessão para se conectar ao mecanismo de banco de dados e faça logon como 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. Depois de conceder a permissão, redescubra bancos de dados no portal: Cofre -> Fazer Backup da Infraestrutura -> Carga de trabalho na VM do Azure:After granting permission, Rediscover DBs in the portal: Vault -> Backup Infrastructure -> Workload in Azure VM:

    Redescobrir bancos de dados no portal do Azure

Como alternativa, é possível automatizar o fornecimento de permissões executando os seguintes comandos do PowerShell no modo de administrador.Alternatively, you can automate giving the permissions by running the following PowerShell commands in admin mode. Por padrão, o nome da instância é definido como MSSQLSERVER.The instance name is set to MSSQLSERVER by default. Altere o argumento do nome da instância no script se precisar: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
}

Próximas etapasNext steps