Skip to content

Commit 68133ce

Browse files
committed
Add mais scrpts de backup
1 parent 867bebc commit 68133ce

10 files changed

Lines changed: 834 additions & 0 deletions
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*#info
2+
3+
# Autor
4+
Rodrigo Ribeiro Gomes
5+
6+
# Detalhes
7+
Esse é uma das primeiras versões d eum script para trazer a sequencia de backup e logs pra um restore fácil.
8+
Tenho um melhor (pasta restores). Mas fica aqui pra ideias!
9+
*/
10+
11+
12+
select database_name,type,begins_log_chain,backup_finish_date,is_copy_only,has_incomplete_metadata,d.recovery_model_desc,bmf.physical_device_name,o.*
13+
,backup_size
14+
15+
from msdb..backupset bs
16+
inner join
17+
sys.databases d
18+
on d.name = bs.database_name
19+
inner join
20+
msdb..backupmediafamily bmf
21+
on bmf.media_set_id = bs.media_set_id
22+
outer apply(select top 1 bs2.backup_finish_date as LastFull from msdb..backupset bs2 where bs2.database_name = bs.database_name and bs2.type = 'D'
23+
order by bs2.backup_finish_date desc
24+
) o
25+
where
26+
d.name = 'master' and type = 'L' --> ajustar filtros
27+
order by
28+
bs.backup_finish_date desc
29+
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
/*#info
2+
3+
# autor
4+
Rodrigo ribeiro gomes
5+
6+
# Detalhes
7+
Esse aqui eu nao lembro, mas pelo nome, foi alguma tentativa frustada de criar algo que estimasse a politica de backup, com base no log.
8+
Mantendo aqui para , quem sabe, um dia, voltar e terminar!
9+
10+
11+
12+
*/
13+
14+
15+
;WITH backups AS
16+
(
17+
SELECT
18+
BS.backup_set_id
19+
,BS.database_name
20+
,BS.type
21+
,BS.backup_finish_date
22+
FROM
23+
msdb.dbo.backupset BS
24+
WHERE
25+
BS.type IN ('L')
26+
AND
27+
BS.backup_finish_date >= '20150601' AND BS.backup_finish_date < '20150701'
28+
AND
29+
BS.is_copy_only = 0
30+
)
31+
SELECT
32+
BS.*
33+
,BSA.backup_finish_date
34+
,DATEDIFF(MINUTE,BSA.backup_finish_date,BS.backup_finish_date) DiffMinutes
35+
,DATEDIFF(HOUR,BSA.backup_finish_date,BS.backup_finish_date) DiffHours
36+
,DATEDIFF(DAY,BSA.backup_finish_date,BS.backup_finish_date) DiffDias
37+
FROM
38+
backups BS
39+
CROSS APPLY
40+
(
41+
SELECT TOP 1
42+
*
43+
FROM
44+
backups BSA
45+
WHERE
46+
BSA.database_name = BS.database_name
47+
AND
48+
BSA.type = BS.type
49+
AND
50+
BSA.backup_finish_date <= BS.backup_finish_date
51+
AND
52+
BSA.backup_set_id != BS.backup_set_id
53+
ORDER BY
54+
BSA.backup_finish_date DESC
55+
) BSA
56+
ORDER BY
57+
BS.database_name
58+
,BS.type
59+
,BS.backup_finish_date

Backups/Backup/Backuphistory.sql

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/*#info
2+
3+
# Autor
4+
Rodrigo Ribeiro Gomes
5+
6+
# Detalhes
7+
Traz o histórico de backups de um banco específico, junto com o local.
8+
Útil para ter uma visão um pouco mais detalhada e rápida de como os backups estão sendo feitos, quando e onde foram feitos.
9+
10+
*/
11+
12+
SELECT
13+
BS.backup_set_id
14+
,BS.database_name
15+
,BS.backup_finish_date
16+
,BS.type
17+
,BS.is_copy_only
18+
,MF.destination
19+
,DaysAgo = DATEDIFF(DAY,backup_finish_date,CURRENT_TIMESTAMP)
20+
FROM
21+
msdb..backupset BS
22+
OUTER APPLY
23+
(
24+
SELECT
25+
BMF.physical_device_name+NCHAR(13)+NCHAR(10)
26+
FROM
27+
msdb..backupmediafamily BMF
28+
WHERE
29+
BMF.media_set_id = BS.media_set_id
30+
FOR XML PATH(''),TYPE
31+
) MF(destination)
32+
33+
WHERE --> Ajusto manualmente os filtros conforme o caso!
34+
35+
BS.database_name = 'master' --> coloque aqui os bancos que quer consultar
36+
AND
37+
BS.is_copy_only = 0
38+
AND
39+
BS.type = 'D' --> somente full, mas pode ajustar, ex,: bs.type in ('L','D')
40+
ORDER BY
41+
BS.backup_set_id DESC
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
/*#info
2+
3+
# Autor
4+
Rodrigo Ribeiro Gomes
5+
6+
# Detalhes
7+
Report simples e rápido para saber o último backup de cada base por tipo.
8+
Uso esse quando eu quero uma visã rápida e simples se o backup está sendo feito!
9+
10+
Somente banco que estão ONLINE.
11+
12+
*/
13+
IF OBJECT_ID('tempdb..#BackupInfo') IS NOT NULL
14+
DROP TABLE #BackupInfo;
15+
16+
IF OBJECT_ID('tempdb..#DatabaseLastBackups') IS NOT NULL
17+
DROP TABLE #DatabaseLastBackups;
18+
19+
SELECT
20+
BS.database_name
21+
,BS.type
22+
,BS.backup_finish_date
23+
INTO
24+
#BackupInfo
25+
FROM
26+
msdb..backupset BS
27+
WHERE
28+
BS.backup_set_id = (
29+
SELECT TOP 1
30+
BS2.backup_set_id
31+
FROM
32+
msdb..backupset BS2
33+
WHERE
34+
BS2.database_name = BS.database_name
35+
AND
36+
BS2.type = BS.type
37+
AND
38+
EXISTS (
39+
SELECT
40+
*
41+
FROM
42+
msdb..backupmediafamily BMF
43+
WHERE
44+
BMF.media_set_id = BS2.media_set_id
45+
)
46+
AND BS2.is_copy_only = 0
47+
ORDER BY
48+
BS2.backup_set_id DESC
49+
)
50+
51+
52+
SELECT
53+
D.NAME
54+
,BI.*
55+
INTO
56+
#DatabaseLastBackups
57+
FROM
58+
sysdatabases D
59+
LEFT JOIN
60+
(
61+
SELECT
62+
BI.database_name
63+
,MAX(CASE WHEN BI.type = 'D' THEN BI.backup_finish_date END) as LastFullBackup
64+
,MAX(CASE WHEN BI.type = 'I' THEN BI.backup_finish_date END) as LastDiffBackup
65+
,MAX(CASE WHEN BI.type = 'L' THEN BI.backup_finish_date END) as LastLogBackup
66+
FROM
67+
#BackupInfo BI
68+
GROUP BY
69+
BI.database_name
70+
) BI
71+
ON BI.database_name = D.name
72+
WHERE
73+
d.name not in ('tempdb','model')
74+
AND
75+
(ISNULL(DATABASEPROPERTYEX(d.name,'IsOffline'),0) = 0 AND ISNULL(DATABASEPROPERTYEX(d.name,'Status'),'ONLINE') = 'ONLINE' )
76+
77+
SELECT
78+
*
79+
,DATEDIFF(DAY,LastFullBackup,CURRENT_TIMESTAMP) TimePassedFull
80+
FROM
81+
#DatabaseLastBackups
82+
ORDER BY
83+
LastFullBackup
84+
85+

0 commit comments

Comments
 (0)