Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Administration
Administration Forum d'entraide sur l'administration du dataserver, via SSM ou ligne de commande, les tables système, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/05/2007, 11h33   #1
Membre du Club
 
Inscription : décembre 2004
Messages : 215
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 215
Points : 63
Points : 63
Envoyer un message via MSN à Cyborg289
Par défaut [TSQL] Procédure de vérification du dernier backup

Bonjour,

J'ai une procédure que vérifie la dat du dernier backup des bases de données dont voici le code (désolé si c pas propre) :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
 
/*Procedure permettant de vérifier le dernier backup de chaque base applicative*/
 
CREATE PROCEDURE sp_CHECK_BACKUP
AS
 
DECLARE @dbname varchar(50)
DECLARE @sql nvarchar(4000)
DECLARE @plastbckp datetime
DECLARE @Para NVARCHAR(500)
DECLARE @sortie NVARCHAR (2000)
DECLARE @jobid varchar(100)
DECLARE @pjobtime int
SET @sortie=''
 
DECLARE alldbname CURSOR FOR
 
-- On rΘcupΦre toutes les bases USER
SELECT name FROM master.dbo.sysdatabases
 
OPEN alldbname
 
--On initialise la variable @dbname avec la premiΦre valeur renvoyΘe par la requΩte
FETCH next FROM alldbname INTO @dbname
 
--Tant que l'on a des rΘsultats
WHILE @@fetch_status = 0
BEGIN
	-- Si la base de donnΘes n'est pasune base system
	IF @dbname <> 'master' AND @dbname <> 'model' AND @dbname <> 'msdb' AND @dbname <> 'Northwind' AND @dbname <> 'pubs' AND @dbname <> 'tempdb'
	BEGIN
		-- On r&#920;cup&#934;re la date du dernier backup
		SET @Para = N'@lastbckp datetime OUTPUT'
		SET @sql = 'set nocount on '
		SET @sql = @sql + ' select @lastbckp = backup_finish_date from backupset where database_name = ''' + @dbname + ''' and type = ''D'' order by backup_finish_date asc'
		exec sp_executesql @sql, @Para, @lastbckp = @plastbckp OUTPUT
 
		-- Si la date du dernier backup est diff&#920;rente de la date du jour ou de la date de la veille
		-- On affiche un message d'erreur
		IF CONVERT(char(8),@plastbckp,3)!= CONVERT(char(8),getdate(),3) AND datename(dy,@plastbckp) != (datename(dy,getdate()) -1)
			SET @sortie = @sortie+'Probleme : le dernier backup de la base '+@dbname+' date du ' + CONVERT(char(8),@plastbckp,3)+'
'
 
 
	END
 
FETCH next FROM alldbname INTO @dbname
END
 
-- S'il y a eu des erreurs (longeur de sortie > 0) alors on affiche le nom du serveur et les erreurs
IF LEN(@sortie)> 0
BEGIN
	PRINT '		'
	PRINT @@servername+' : '
	PRINT '		'
	PRINT @sortie
END
 
CLOSE alldbname
 
DEALLOCATE alldbname
 
 
GO
Le problème que j'ai est le suivant :
grâce a cette procédure j'envoie des mails tous les matins qui me donnent un compte rendu des backups en erreur. Je n'en ai pas eu ce matin, hors sur un serveur la sauvegarde n'as pas eu lieu depuis un moment.
Ce qui signifierai que l'on a une entrée dans la table backupset même si la sauvegarde échoue ce qui m'inquiète un peu. Ya t'il un moyen plus fiable de vérifer si la sauvegarde est correcte ?

Merci d'avance.
Cyborg289 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 11h53   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 793
Points : 17 793
oui, dans les tables de la base MSDB sysjobhistory (s'il est planifié par l'agent) et backupset

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 13h53   #3
Membre du Club
 
Inscription : décembre 2004
Messages : 215
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 215
Points : 63
Points : 63
Envoyer un message via MSN à Cyborg289
Merci pour ta réponse.
Donc si le job s'est déroulé correctement et que la date de la sauvegarde dans la table backupset est bonne on est sûr que la sauvegarde est correcte ?
Cyborg289 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2007, 09h38   #4
Expert Confirmé
 
Avatar de rudib
 
Inscription : mai 2006
Messages : 2 236
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2006
Messages : 2 236
Points : 2 983
Points : 2 983
Envoyer un message via ICQ à rudib Envoyer un message via MSN à rudib
Que le backup est fait oui, qu'il est "correct" on peut l'espérer. Tu peux toujours faire un RESTORE VERIFYONLY pour avoir de meilleures garanties
__________________
Rudi Bruchez
Consultant indépendant
modélisation, administration, optimisation, formation,
solutions MS SQL Server et informatique libre.
MCDBA, MCITP, MCT, SCJP2 - http://www.babaluga.com/
Articles et tutoriels : http://rudi.developpez.com/
LIVRE : Optimiser SQL Server
rudib est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h10.


 
 
 
 
Partenaires

Hébergement Web