IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration SQL Server Discussion :

[TSQL] Procédure de vérification du dernier backup


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 226
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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ΘcupΦ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Θ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.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 999
    Billets dans le blog
    6
    Par défaut
    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
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 226
    Par défaut
    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 ?

  4. #4
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/03/2007, 13h04
  2. Date du dernier backup du log d'une base par une requête
    Par raptor70 dans le forum Administration
    Réponses: 1
    Dernier message: 21/08/2006, 10h02
  3. [SQL2005][TSQL] Procédure Stockée
    Par Cape31 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/08/2006, 09h58
  4. [SQl 2000] [TSQL] Procédures stockées dynamiques
    Par pihuete dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 17/05/2006, 09h25
  5. [VB6] procédure de vérification d'adresse mail ?
    Par ghohm dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 07/06/2004, 13h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo