Configurar o backup gerenciado do SQL Server para Azure para grupos de disponibilidade
Este tópico é um tutorial sobre como configurar SQL Server Backup Gerenciado no Microsoft Azure para bancos de dados que participam de Grupos de Disponibilidade AlwaysOn.
Configurações de grupo de disponibilidade
SQL Server Backup Gerenciado no Microsoft Azure tem suporte para bancos de dados do Grupo de Disponibilidade, independentemente de todas as réplicas estarem configuradas localmente ou inteiramente no Azure ou em uma implementação híbrida entre o local e em uma ou mais máquinas virtuais do Azure. No entanto, talvez você precise considerar o seguinte para uma ou mais implementações:
Frequência de Backups de Log: a frequência do backup de logs aumenta com o tempo e o log. Por exemplo, o backup de log é feito uma vez a cada 2 horas, a menos que o espaço de log usado nesse período de duas horas seja de 5 MB ou mais. Isso se aplica a todas as implementações, locais, em nuvem ou Híbrida.
Largura de banda de rede: isso se aplica a implementações em que as réplicas estão localizadas em locais físicos diferentes, como em uma nuvem híbrida ou em diferentes regiões do Azure em uma configuração somente de nuvem. A largura de banda de rede pode afetar a latência dos secundários e se os secundários forem definidos como replicação síncrona, então isso poderá causar aumento de log no primário. Se os secundários forem definidos para replicação síncrona, não poderão prosseguir devido à latência de rede, o que poderá resultar em perda de dados no caso de um failover na réplica secundária.
Configurando SQL Server Backup Gerenciado no Microsoft Azure para Bancos de Dados de Disponibilidade.
Permissões:
Requer associação em db_backupoperator função de banco de dados, com permissões ALTER ANY CREDENTIAL e
EXECUTE
permissões em sp_delete_backuphistoryprocedimento armazenado.Requer permissões SELECT na função smart_admin.fn_get_current_xevent_settings.
EXECUTE
Requer permissões no procedimento armazenado smart_admin.sp_get_backup_diagnostics. Além disso, requer permissõesVIEW SERVER STATE
, pois chama internamente outros objetos do sistema que exigem essa permissão.EXECUTE
Requer permissões nossmart_admin.sp_set_instance_backup
procedimentos armazenados esmart_admin.sp_backup_master_switch
.
Veja a seguir as etapas básicas para configurar um Grupo de Disponibilidade AlwaysOn com SQL Server Backup Gerenciado no Microsoft Azure. Um tutorial passo a passo detalhado será descrito mais adiante neste tópico.
Depois que você criar Grupo de Disponibilidade, configure a réplica de backup preferencial. Essa configuração para o Grupo de Disponibilidade também é usada por SQL Server Backup Gerenciado no Microsoft Azure para determinar quais réplica usar para backup. Para obter instruções passo a passo sobre como configurar a preferência de backup, consulte Configurar backup em réplicas de disponibilidade (SQL Server). Se você estiver criando um novo Grupo de Disponibilidade AlwaysOn, consulte Introdução com Grupos de Disponibilidade AlwaysOn (SQL Server).
Configure o acesso de conexão somente leitura às réplicas secundárias. Para obter instruções passo a passo sobre como configurar o acesso somente leitura, consulte Configurar o acesso Read-Only em uma réplica de disponibilidade (SQL Server)
Especifique a réplica de Backup. A configuração de réplica de backup preferencial é usada por SQL Server Backup Gerenciado no Microsoft Azure para determinar de qual banco de dados usar para agendar backups.. Para determinar se o réplica atual é o réplica de backup preferencial, use a função sys.fn_hadr_backup_is_preferred_replica (Transact-SQL).
Em cada réplica executar SQL Server configuração do Backup Gerenciado no Microsoft Azure para o banco de dados usando o procedimento armazenado smart-admin.sp_set_db_backup.
SQL Server o comportamento do Backup Gerenciado no Microsoft Azure após um failover: SQL Server Backup Gerenciado no Microsoft Azure continuará funcionando e mantendo cópias de backup e capacidade de recuperação após um evento de failover. Nenhuma ação específica é necessária depois de um failover.
Considerações e requisitos:
Configurar SQL Server Backup Gerenciado no Microsoft Azure para bancos de dados que participam do Grupo de Disponibilidade AlwaysOn requer considerações e requisitos específicos. Esta é uma lista de considerações e requisitos:
As definições de configuração do Backup Gerenciado do SQL Server para o Microsoft Azure devem ser as mesmas para todos os bancos de dados em todos os nós de SQL Server participando do mesmo Grupo de Disponibilidade. Você pode fazer isso definindo o mesmo SQL Server configurações do Backup Gerenciado para o Microsoft Azure para o primário e todas as réplicas no nível do banco de dados ou definindo o mesmo padrão SQL Server configurações de Backup Gerenciado para o Microsoft Azure em todos os nós que participam dos Grupos de Disponibilidade. É recomendável definir SQL Server Backup Gerenciado para o Microsoft Azure no banco de dados porque a configuração do Backup Gerenciado do SQL Server para o Microsoft Azure no nível do banco de dados permite isolar as configurações dos bancos de dados e as alterações nas configurações padrão afetam todos os outros bancos de dados na instância.
Especifique a réplica de Backup. A configuração de réplica de backup preferencial é usada por SQL Server Backup Gerenciado no Microsoft Azure para agendar os backups. Para determinar se o réplica atual é o réplica de backup preferencial, use a função sys.fn_hadr_backup_is_preferred_replica (Transact-SQL).
Se a réplica secundária estiver configurada como a réplica preferencial, ela deverá ser configurada para ter pelo menos acesso de conexão somente leitura. Não há suporte para grupos de disponibilidade que não têm nenhum acesso de conexão com os bancos de dados secundários. Para obter mais informações, confira Configurar o acesso somente leitura em uma réplica de disponibilidade (SQL Server).
Se você estiver configurando SQL Server Backup Gerenciado para o Microsoft Azure depois de configurar o Grupo de Disponibilidade, SQL Server Backup Gerenciado no Microsoft Azure tentará copiar os backups existentes com base e copiá-los para o contêiner de armazenamento. Se SQL Server Backup Gerenciado no Microsoft Azure não conseguir localizar ou acessar backups existentes, ele agendará um backup completo do banco de dados. Isso é feito especificamente para otimizar as operações de backup de bancos de dados do Grupo de Disponibilidade.
Talvez você queira considerar a desabilitação das configurações de nível de instância se estiver criando um novo banco de dados de disponibilidade e não pretende aplicar as configurações de nível de instância ao banco de dados
Ao usar criptografia, use o mesmo certificado em todas as réplicas. Isso facilita as operações de backup e contínuas ininterruptas no caso de um failover ou de restaurações em uma réplica diferente.
Habilitar e configurar SQL Server backup gerenciado no Microsoft Azure para um banco de dados de disponibilidade
Este tutorial descreve as etapas para habilitar e configurar SQL Server Backup Gerenciado no Microsoft Azure para um banco de dados (AGTestDB) nos computadores Node1 e Node2, seguido de etapas para habilitar o monitoramento do backup gerenciado do SQL Server para a status de integridade do Microsoft Azure.
Criar uma conta de armazenamento do Azure: Os backups são armazenados no serviço de Armazenamento de Blobs do Azure. Você deve primeiro criar uma conta de armazenamento do Azure, se ainda não tiver uma. Para obter mais informações, consulte Criando uma conta de armazenamento do Azure. Anote o nome da conta de armazenamento, as chaves de acesso e a URL da conta de armazenamento. O nome da conta de armazenamento e as informações de chave de acesso são usados para criar uma Credencial SQL. A Credencial do SQL é usada por SQL Server Backup Gerenciado no Microsoft Azure durante operações de backup para autenticar na conta de armazenamento.
Criar uma credencial SQL: Crie uma Credencial do SQL usando o nome da conta de armazenamento como a Identidade e a chave de acesso de armazenamento como a senha.
Garantir que o serviço SQL Server Agent foi iniciado e está em execução: Inicie o SQL Server Agent se ele não estiver em execução. Backup gerenciado do SQL Server no Microsoft Azure requer que o SQL Server Agent esteja em execução na instância para executar operações de backup. Talvez seja necessário definir o SQL Agent para ser executado automaticamente para garantir que as operações de backup ocorram regularmente.
Determine o período de retenção: Determine o período de retenção desejado para os arquivos de backup. O período de retenção é especificado em dias e pode variar de 1 a 30. O período de retenção determina o tempo de recuperação do banco de dados.
Crie um certificado ou uma chave assimétrica a ser usada para criptografia durante o backup: Crie o certificado no primeiro nó Node1 e exporte-o para um arquivo usando BACKUP CERTIFICATE (Transact-SQL).. No Nó 2, crie um certificado usando o arquivo exportado do Nó 1. Para obter mais informações sobre como criar um certificado de um arquivo, consulte o exemplo em CREATE CERTIFICATE (Transact-SQL).
Habilitar e configurar SQL Server Backup Gerenciado no Microsoft Azure para AGTestDB no Node1: inicie SQL Server Management Studio e conecte-se à instância no Node1 em que o banco de dados de disponibilidade está instalado. Na janela de consulta, execute a seguinte instrução após modificar os valores do nome do banco de dados, a URL de armazenamento, a Credencial SQL e o período de retenção de acordo com seus requisitos:
Use msdb; GO EXEC smart_admin.sp_set_db_backup @database_name='AGTestDB' ,@retention_days=30 ,@credential_name='MyCredential' ,@encryption_algorithm ='AES_128' ,@encryptor_type= 'Certificate' ,@encryptor_name='MyBackupCert' ,@enable_backup=1; GO
Para obter mais informações sobre como criar um certificado para criptografia, consulte a etapa Criar um certificado de backup em Criar um backup criptografado.
Habilitar e configurar SQL Server Backup Gerenciado no Microsoft Azure para AGTestDB no Node2: inicie SQL Server Management Studio e conecte-se à instância no Node2 em que o banco de dados de disponibilidade está instalado. Na janela de consulta, execute a seguinte instrução após modificar os valores do nome do banco de dados, a URL de armazenamento, a Credencial SQL e o período de retenção de acordo com seus requisitos:
Use msdb; GO EXEC smart_admin.sp_set_db_backup @database_name='AGTestDB' ,@retention_days=30 ,@credential_name='MyCredential' ,@encryption_algorithm ='AES_128' ,@encryptor_type= 'Certificate' ,@encryptor_name='MyBackupCert' ,@enable_backup=1; GO
Backup gerenciado do SQL Server no Microsoft Azure está habilitado no banco de dados que você especificou. Podem ser necessários até 15 minutos para que as operações de backup no banco de dados comecem a ser executadas. O backup ocorrerá na réplica de backup preferencial.
Examine a configuração padrão do evento estendido: Examine a configuração de Evento Estendido executando a seguinte instrução transact-SQL no réplica que SQL Server Backup Gerenciado para o Microsoft Azure está usando para agendar os backups. Em geral, essa é a configuração da réplica de backup preferencial para um Grupo de Disponibilidade ao qual o banco de dados pertence.
SELECT * FROM smart_admin.fn_get_current_xevent_settings();
Você verá que Administração, eventos de canal operacional e analítico estão habilitados por padrão e não podem ser desabilitados. Isso deve ser suficiente para monitorar os eventos que requerem intervenção manual. Você pode habilitar os eventos de depuração, mas esses canais incluem eventos informativos e de depuração que SQL Server o Backup Gerenciado para o Microsoft Azure usa para detectar problemas e resolvê-los. Para obter mais informações, consulte Monitorar SQL Server backup gerenciado no Azure.
Habilitar e configurar a notificação do status de integridade: Backup gerenciado do SQL Server no Microsoft Azure tem um procedimento armazenado que cria um trabalho de agente para enviar notificações por email sobre erros ou avisos que possam exigir atenção. Para receber essas notificações, você deve habilitar a execução do procedimento armazenado que cria um Trabalho do SQL Server Agent. As etapas a seguir descrevem o processo para habilitar e configurar notificações por email:
Configure o Database Mail se ele ainda não estiver habilitado na instância. Para obter mais informações, consulte Configure Database Mail.
Configure o SQL Server Agent Notification para usar o Database Mail. Para obter mais informações, consulte Configurar o SQL Server Agent Mail para usar o Database Mail.
Habilitar notificações por email para receber avisos e erros de backup: Na janela de consulta, execute as seguintes instruções Transact-SQL:
EXEC msdb.smart_admin.sp_set_parameter @parameter_name = 'SSMBackup2WANotificationEmailIds', @parameter_value = '<email>'
Para obter mais informações e um script de exemplo completo, consulte Monitorar SQL Server Backup Gerenciado no Azure.
Exibir arquivos de backup na Conta de Armazenamento do Azure: Conecte-se à conta de armazenamento do SQL Server Management Studio ou do Portal de Gerenciamento do Azure. Você verá um contêiner para a instância do SQL Server que hospeda o banco de dados configurado para usar SQL Server Backup Gerenciado no Microsoft Azure. Você também pode ver um banco de dados e um backup de log dentro de 15 minutos após habilitar SQL Server Backup Gerenciado no Microsoft Azure para o banco de dados.
Monitore o Status de Integridade: Você pode monitorar por meio de notificações por email configuradas anteriormente ou monitorar ativamente os eventos registrados. Estes são alguns exemplos de instruções Transact-SQL usados para exibir os eventos:
-- view all admin events Use msdb; Go DECLARE @startofweek datetime DECLARE @endofweek datetime SET @startofweek = DATEADD(Day, 1-DATEPART(WEEKDAY, CURRENT_TIMESTAMP), CURRENT_TIMESTAMP) SET @endofweek = DATEADD(Day, 7-DATEPART(WEEKDAY, CURRENT_TIMESTAMP), CURRENT_TIMESTAMP) DECLARE @eventresult TABLE (event_type nvarchar(512), event varchar (512), timestamp datetime ) INSERT INTO @eventresult EXEC smart_admin.sp_get_backup_diagnostics @begin_time = @startofweek, @end_time = @endofweek SELECT * from @eventresult WHERE event_type LIKE '%admin%'
-- to enable debug events Use msdb; Go EXEC smart_admin.sp_set_parameter 'FileRetentionDebugXevent', 'True'
-- View all events in the current week Use msdb; Go DECLARE @startofweek datetime DECLARE @endofweek datetime SET @startofweek = DATEADD(Day, 1-DATEPART(WEEKDAY, CURRENT_TIMESTAMP), CURRENT_TIMESTAMP) SET @endofweek = DATEADD(Day, 7-DATEPART(WEEKDAY, CURRENT_TIMESTAMP), CURRENT_TIMESTAMP) EXEC smart_admin.sp_get_backup_diagnostics @begin_time = @startofweek, @end_time = @endofweek;
As etapas descritas nesta seção destinam-se especificamente à configuração do Backup gerenciado do SQL Server no Microsoft Azure pela primeira vez no banco de dados. Você pode modificar as configurações existentes usando o mesmo procedimento armazenado do sistema smart_admin.sp_set_db_backup e fornecer os novos valores. Para obter mais informações, consulte SQL Server Backup Gerenciado no Azure – Configurações de Retenção e Armazenamento.
Considerações ao remover um banco de dados de configuração do Grupo de Disponibilidade AlwaysOn
Se um banco de dados for removido da configuração do Grupo de Disponibilidade AlwaysOn e agora for um banco de dados autônomo, recomendamos fazer backup usando smart_admin.sp_backup_on_demand (Transact-SQL). Quando você cria um backup de banco de dados dessa forma, ele estabelece uma nova cadeia de backup e o arquivo será colocado no contêiner específico da instância em vez do contêiner de disponibilidade em que os backups eram armazenados quando o banco de dados fazia parte do Grupo de Disponibilidade.
Aviso
A capacidade de recuperação do banco de dados nesse cenário, desde os backups anteriores até a alteração do status do Grupo de Disponibilidade, não é garantida.