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

MS SQL Server Discussion :

Corruption de schéma


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 34
    Par défaut Corruption de schéma
    Bonjour,
    J'ai voulu restaurer une sauvegarde .bak sous sqlserver 2008. J'obtiens le message "corruption possible du schéma".

    - La requête ci-après n'a pas résolu le pb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    restore database mabase
    from disk='xxxxxx.bak'
    with replace, CONTINUE_AFTER_ERROR
    - J'ai pu identifier la table à pb et j'ai généré un script (schéma+données) des autres tables, un à un. Mais le pb c'est que les compteurs sur les clés primaires sont supprimés donc à recréer. Ce qui n'est pas bon pour moi car je dois garder les mêmes valeurs de Id que l'ancienne base (re-créer impossible donc). Je m'explique un peu : dans l'ancienne table j'ai un Vendeur_id 1, 2, 3. Pour des raisons XYZ, le Vendeur_Id 2 a été supprimé. Lorsque j'importe cette table Vendeur, je dois seulement avoir les Id 1 et 3. donc si je regénère mes Ids, mon ancien Id 1 devient 1 mais mon Id 3 devient 2. alors que j'aimerais garder 1 et 3. Une prochaine insertion de vendeur devrait donner un Id 4 et non 3.

    Pourriez-vous me donner quelques tuyaux sur comment procéder? Actuellement mon ancienne base fonctionne correctement malgré cette corruption de schéma car c'est une table temporaire qui n'a pas de lien avec les autres. Mais pour la restaurer sur un autre serveur, je suis complètement boquée.

    Merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Par défaut
    Bonjour, ne peux-tu pas simplement régler le problème à la source et générer un autre backup?

    Sinon, il existe des outils qui aident à faire des backups.

    Par exemple RedGate.

    Il y a une période d'essai de 14 jours et ce qui est intéressant avec ce genre d'outil c'est qu'ils ont une certaine approche didactique: ils vont élaborer sur les erreurs rencontrées et tu peux inspecter le code qui est généré, ce qui est un excellente source d'apprentissage.

    Ou encore, s'il ne s'agit que de transporter une partie des tables pour faire des tests par exemple, tu pourrais simplement utiliser Tasks->Import Data...

  3. #3
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 34
    Par défaut
    Tous mes backups sont inutilisables (les anciens comme les nouveaux) : toujours le même pb de corruption de schéma.
    Je ne sais pas si c'est faisable mais j'aimerai faire un backup sans la table T1 qui est la source du pb. une idée? je ne connais que la requête pour un FULL BACKUP

  4. #4
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2011
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 118
    Par défaut
    Bonjour,

    Essaye de faire un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DBCC CHECKTABLE(nom_de_la_table)
    DBCC CHECKCATALOG(nom_de_la_base)
    voir si'l remonte des informations.

    Attention si le serveur est en production et très sollicité, ça peut causer des ralentissements importants.

    Il y a une option qui permet de réparer les erreurs, mais avec un risque important de perdre des données. Suivant l'importance de cette table il faut utiliser l'option de réparation ou non...

  5. #5
    Membre Expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Par défaut
    Vous dites que c'est une table temporaire mais je doutes que ce soit le cas, les table temporaires étant stockées dans tempdb, votre table est plutôt une table que vous videz et remplissez régulièrement et dont la pérennité des données vous importe peu...
    Tous mes backups sont inutilisables
    Cela veux dire que vous n'avez pas de DBCC CHECKDB en plan de maintenance?

    Pensez-y pour l'avenir...

    Votre base est elle répliquée ou possède t'elle des SNAPSHOT?

  6. #6
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Tu peux effectivement commencer par faire un DBCC CHECKDB sur ta base de données et voir où se situe le problème (sans option de réparation).

    Peux-tu nous fournir le résultat de la commande suivante en remplaçant tabase par le nom de ta base de données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBCC CHECKDB('tabase') WITH NO_INFOMSGS,  ALL_ERRORMSGS, TABLERESULTS
    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Modélisation] Schéma constellation
    Par senke dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 13/05/2016, 13h27
  2. grant sur un schéma ou und bd
    Par Bouboubou dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 28/02/2004, 13h05
  3. Réponses: 3
    Dernier message: 14/02/2004, 10h10
  4. Générer automatiquement un schéma entité/association
    Par worldchampion57 dans le forum Outils
    Réponses: 3
    Dernier message: 03/06/2003, 17h11
  5. [Crystal Report 9] Changer de schéma avec Oracle
    Par sur_uix dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/11/2002, 12h19

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