Skip to content

Commit 68e2fb6

Browse files
committed
Adicionado script de ultmios n backups mes
1 parent 1b3ed36 commit 68e2fb6

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/*
2+
# autor
3+
Rodrigo Ribeiro Gomes
4+
5+
# descricao
6+
Permite filtrar os ultimos X backups de cada banco de cada mes.
7+
Pode ser util se por exemplo, vc quer fazer um expurgo dos seus backup antigos, mantendo apenas o último, ou os 2 ultimos de cada mes.
8+
9+
Voce pode ajustar o filtro na subquery para somente incluir os backup com o filtro desejado no resultado.
10+
E na query de fora, pode filtrar o resultado da coluna LastRn...
11+
Por exemplo, LastRn = 1, traz somente o ultimo backup de cada mes.
12+
Se você quiser inverter a ordem (1 sendo o primeiro, e nao o ultimo), altere o order by do row_number, e remova o desc.
13+
*/
14+
15+
select
16+
*
17+
from
18+
(
19+
select
20+
AnoMes = convert(varchar(6),backup_finish_date,112)
21+
,database_name
22+
,LastRn = row_number() over(partition by convert(varchar(6),backup_finish_date,112),database_name order by backup_finish_date desc )
23+
,backup_finish_date
24+
,compressed_backup_size
25+
,bmf.physical_device_name
26+
from
27+
msdb..backupset bs
28+
inner join -- se seu ambiente faz o split do backup em varios arquivos, pode trocar esse inner join por um cross apply para nao duplicar alguns resultados...
29+
msdb..backupmediafamily bmf
30+
on bmf.media_set_id = bs.media_set_id
31+
where
32+
type = 'D'
33+
and
34+
is_snapshot = 0
35+
and
36+
is_copy_only = 0
37+
-- and
38+
-- physical_device_name like 'https%container%' --> Exemplo de filtro adicional, incluir apenas backups feitos pra um cotnainer especifico.
39+
) B
40+
where
41+
LastRn = 1 --> Somente o ultimo backup... Aqui vc poderia colocar um LastRn <= 2 para pegar os 2 ultmios, etc.
42+
43+
44+
-- exemplos de filtros adicionais:
45+
-- Aqui você poderia filtrar somente o ultimo antes de um ms especifico... ou todos os backups a partir de um meS!
46+
-- ( LastRn = 1 and backup_finish_date < '20251201' )
47+
-- or
48+
-- backup_finish_date >= '20251201'
49+
50+
order by
51+
database_name
52+
,backup_finish_date

0 commit comments

Comments
 (0)