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 :

Problème de restauration des journaux


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 4
    Par défaut Problème de restauration des journaux
    Bonjour à tous,
    voici mon souci :

    j'ai fait un plan de maintenance d'une base SQL Server 2005 SP3, découpé en 2 sous-plans, l'un pour la sauvegarde complète de ma base, l'autre pour la sauvegarde des journaux.
    Le premier sous-plan tourne tous les jours à 13h, et le second toutes les 2h.

    J'ai voulu faire un petit test de restauration (sur un autre serveur), en restaurant ma full de 13h et juste le journal suivant (de 14h donc).

    Mais j'ai systématiquement l'erreur suivante :

    System.Data.SqlClient.SqlError : le journal dans ce jeu de sauvegarde se termine au numéro de séquence d'enregistrement xxxxxxx, ce qui est trop tôt pour une application à la base de données. Une sauvegarde de fichier journal plus récente qui inclut le numéro de séquence d'enregistrement yyyyyy peut être restaurée.

    Je comprends bien le message, mais je ne vois pas du tout pourquoi celà s'applique ici, puisque je prends juste ma sauvegarde full et la sauvegarde suivante du journal de transactions.

    Je précise que ma base est en mode de restauration complet.

    Merci d'avance pour vos lumières.

  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 998
    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 998
    Billets dans le blog
    6
    Par défaut
    1) Y a t-il eu des transactions pendant le laps de temps entre la complète et le journal ?
    2) n'y a t-il pas une transaction ouverte qui bloque la sauvegarde du journal (DBCC OPENTRAN ou sys.dm_tran_locks) ?

    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 Expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Par défaut
    A quelle heure se termine votre backup full ?
    D'apres le message que vous avez, il semblerait que votre backup full contienne l'ensemble des transactions backupees contenue dans le transaction log de 14h.

    Edit:
    Pour verifier - A tourner sur l'instance ou vous avez restaurer la base:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    use msdb
    go
    select 
    backup_start_date, backup_finish_date 
    from dbo.restorehistory r
    join dbo.backupset b on r.backup_set_id = b.backup_set_id
    where destination_database_name = 'nomDeVotreBaseDeDonnee'
    order by restore_date desc
    La premiere ligne correspondant au dernier restore effectuer, vous aurez les dates de debut et de fin du backup qui a ete pris sur l'autre instance.
    Un plan de maintenance global a un serveur peut selon la volumetrie et le nombre de bases presentes sur le serveur, prendre un certain temps...

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 4
    Par défaut
    Citation Envoyé par Ptit_Dje Voir le message
    A quelle heure se termine votre backup full ?
    D'apres le message que vous avez, il semblerait que votre backup full contienne l'ensemble des transactions backupees contenue dans le transaction log de 14h.

    Edit:
    Pour verifier - A tourner sur l'instance ou vous avez restaurer la base:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    use msdb
    go
    select 
    backup_start_date, backup_finish_date 
    from dbo.restorehistory r
    join dbo.backupset b on r.backup_set_id = b.backup_set_id
    where destination_database_name = 'nomDeVotreBaseDeDonnee'
    order by restore_date desc
    La premiere ligne correspondant au dernier restore effectuer, vous aurez les dates de debut et de fin du backup qui a ete pris sur l'autre instance.
    Un plan de maintenance global a un serveur peut selon la volumetrie et le nombre de bases presentes sur le serveur, prendre un certain temps...

    Le backup full, qui démarre à 13h, ne dure que 3min (300Mo à sauvegarder seulement).
    il reste donc 57 min avant le démarrage de la sauvegarde du journal, temps pendant lequel il y a bien eu des transactions.


    Edit : Pour info, j'ai modifié la planification : backup full à 13h45, soit 15 min seulement avant la sauvegarde du journal suivant, et là, miracle, ca marche !
    Mais pour moi le changement de planification ne devrait pas avoir d'incidence...

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 4
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    1) Y a t-il eu des transactions pendant le laps de temps entre la complète et le journal ?
    2) n'y a t-il pas une transaction ouverte qui bloque la sauvegarde du journal (DBCC OPENTRAN ou sys.dm_tran_locks) ?

    A +

    1) Sans aucun doute : il y a 1h de décalage entre les 2 sauvegardes et il y a eu des transactions pendant ce temps.

    2) si c'était le cas, je pense que la sauvegarde du journal aurait planté, ou a minima elle aurait duré plus longtemps. Dans ce cas elle serait quand meme valide.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Février 2008
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 758
    Par défaut
    Citation Envoyé par jiel21 Voir le message
    System.Data.SqlClient.SqlError : le journal dans ce jeu de sauvegarde se termine au numéro de séquence d'enregistrement xxxxxxx, ce qui est trop tôt pour une application à la base de données. Une sauvegarde de fichier journal plus récente qui inclut le numéro de séquence d'enregistrement yyyyyy peut être restaurée.
    - Merci de poster les commandes utilisées pour recharger les deux backups.
    - Vérifier qu'il n'y a aucun autre backup log entre 13h00 et 14h00.
    - Merci de retourner les valeurs de first_lsn, checkpoint_lsn et last_lsn du backup log de 12h00 et de 14h00, et du backup full de 13h00 (dans la table msdb.dbo.backupset).

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 4
    Par défaut
    Citation Envoyé par dbaffaleuf Voir le message
    - Merci de poster les commandes utilisées pour recharger les deux backups.
    - Vérifier qu'il n'y a aucun autre backup log entre 13h00 et 14h00.
    - Merci de retourner les valeurs de first_lsn, checkpoint_lsn et last_lsn du backup log de 12h00 et de 14h00, et du backup full de 13h00 (dans la table msdb.dbo.backupset).


    - pas de commande : je passe par Management Studio pour faire mes restaurations. Je veille juste à laisser la base non opérationnelle après la restauration du backup full afin de permettre l'application de journaux de transactions.
    - absolument certain : les sauvegardes de log sont planifiées toutes les 2h en partant de minuit. Mais j'ai quand même vérifié sur disque au cas où.
    - backup full : 255839000000006800056 (first), 255839000000009300001(last), 255839000000006800056 (chkpt)
    backup log de 12h : 255802000000300000001(first),255817000000006500001(last),255802000000300000004(chkpt)
    backup log de 14h : 255842000000022400001(first),255845000000037400001(last),25584200000002240000(chkpt)

    il y a effectivement une rupture de lsn entre chaque, qui explique le message d'erreur. Mais à quoi est due cette rupture ?

Discussions similaires

  1. Réponses: 5
    Dernier message: 20/02/2014, 21h16
  2. Restaurer des journaux de transactions
    Par CleeM dans le forum Administration
    Réponses: 3
    Dernier message: 15/03/2013, 18h05
  3. Réponses: 4
    Dernier message: 05/10/2006, 13h10
  4. Problème de sauvegarde des journaux de transactions
    Par mazen_bn dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 20/06/2006, 16h26
  5. Problème de compréhension des ensembles
    Par Cornell dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 22h07

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