Série – #SQL2017 – Smart Backup

Posted on agosto 14, 2017

0


Image result for smart icon

Introdução

Em modo acelerado, O SQL Server 2017 não somente está em RC1 – https://docs.microsoft.com/en-us/sql/sql-server/what-s-new-in-sql-server-2017 mas além disso traz diversos novos recursos para melhorar nossas vidas. Um dos pontos que vale destacar é que desde 2016 o time de produto vem realmente escutando a comunidade e não somente isso, os items do Connect diminuíram consideravelmente, esse novo modo lean, ágil e rápido vem proporcionado a Microsoft a desenvolver seus produtos de uma forma nunca vista antes.

Smart Backup

Uma das novas features que realmente vale a pena falar é o que chamamos de Smart Backup. Basicamente uma nova coluna na Dynamic Management View (DMV) chamada de sys.dm_db_file_space_usage (modified_extent_page_count) faz com que agora você possua a capacidade de realizar a rastreabilidade da quantidade de páginas modificadas desde o último backup diferencial. Agora podemos utilizar essa quantidade de páginas para calcular porcentagem de modificações a assim criar rotinas de backups mais inteligentes.

Hoje normalmente utilizamos uma agendamento em um horário específico para realizar o backup diferencial e dependendo do business esse processo precisa ser executado durante o processo diário e por muitas vezes impacta o ambiente e acesso do cliente no banco de dados, adicionando essa nova inteligência no processo de backup você poderá reduzir  o tempo de execução do backup assim como a redução do restore do tempo total.

Smart Differential Backup

Analisando o Seguinte Cenário.

Image result for schedule icon

1 – Backup Full no Domingo

2 – Backup Diferencial Diariamente

Se por acaso o banco de dados ficar indisponível na sexta-feira , você terá que restaurar o backup full do domingo, backup diferencial da quinta-feira e os backups de log do dia. Utilizando a nova coluna adicionada, você poderá criar rotinas mais inteligentes como por exemplo, executar o backup full quando a quantidade de páginas modificadas exceder 90%, ao invés de executar um backup diferencial, isso irá minimizar o tempo de restore do banco de dados e fará com que seu banco de dados fique operacional mais rápido que antigamente.

Smart Transaction Log Backup

Image result for log icon

Em produção como temos que tomar conta das nossas métricas de RPO [Recovery Point Objective] e RTO [Recovery Time Objective] utilizamos quase sempre o modo de recuperação FULL, sendo assim sabemos que o gerenciamento desse banco de dados passa a envolver diversas fases e cuidados, um dos mais importantes é adicionar uma rotina de backup de LOG para garantir que o .ldf não irá crescer sem controle e estourar o disco. Porém durante o dia temos diversos períodos de utilização, normalmente alguns horários no dia apresentam maior carga e utilização do .ldf do que outros, porém a rotina de backup geralmente é configurada entre 15 min a 2 Horas, sendo assim as vezes acabamos iniciando o processo de backup sem a necessidade do mesmo.

Com o SQL Server 2017 agora podemos utilizar o Smart Transaction Backup, ele irá garantir um modelo mais eficaz de como o backup de log é acionado, com isso utilizando a nova coluna log_since_last_log_backup_mb da Dynamic Management View (sys.dm_db_log_stats)  será possível adicionar mais inteligência no processo, para maiores informações veja aqui.