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 :

Check ou Restore DB ?


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 348
    Par défaut Check ou Restore DB ?
    Bonjour,

    J'ai un message sur une base:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Database ID 6, Page (1:1193) is marked RestorePending, which may indicate disk corruption. To recover from this state, perform a restore.
    J'ai "checké" Mabase dont ID= 6:

    puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBCC CHECKDB(Mabase,REPAIR_ALLOW_DATA_LOSS)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Msg 924, Level 14, State 1, Line 1
    Database 'Mabase' is already open and can only have one user at a time.
    DBCC results for 'Mabase'.
    CHECKDB found 0 allocation errors and 0 consistency errors in database 'Mabase'.

    En recheckant ma base:



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    There are 432693 rows in 3933 pages for object "DataBlock".
    CHECKDB found 0 allocation errors and 147 consistency errors in table 'DataBlock' (object ID 2089058478).
    DBCC results for 'FSDictionary'.
    There are 7167 rows in 168 pages for object "FSDictionary".
    DBCC results for 'FSExtensions'.
    There are 23 rows in 1 pages for object "FSExtensions".
    DBCC results for 'FSSelected'.
    There are 0 rows in 0 pages for object "FSSelected".
    CHECKDB found 0 allocation errors and 147 consistency errors in database 'Mabase'.
    repair_allow_data_loss is the minimum repair level for the errors found by DBCC CHECKDB (Mabase).
    DBCC execution completed. If DBCC printed error messages, contact your system administrator.
    Alors est ce qu'il faut passer par une restauration dans ce cas ?

    Merci.

    @+

  2. #2
    Membre très actif Avatar de Bernardos
    Homme Profil pro
    Consultant Senior dba sql server & Microsoft Business Intelligence
    Inscrit en
    Avril 2008
    Messages
    333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant Senior dba sql server & Microsoft Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 333
    Par défaut
    ta base de données doit être en mode mono-utilisateur pour utiliser l'option REPAIR_ALLOW_DATA_LOSS
    Pour ce faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    USE master;
    GO
    ALTER DATABASE mabase
    SET SINGLE_USER
    WITH ROLLBACK IMMEDIATE;
    GO
    tu fais ton checkdb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBCC CHECKDB(Mabase,REPAIR_ALLOW_DATA_LOSS)
    et ensuite tu remet ta base en multi-utilisateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ALTER DATABASE mabase
    SET MULTI_USER;
    GO
    cordialement,

  3. #3
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 348
    Par défaut
    Merci, je n'ai pas mis toutes les étapes dans le 1er message, mais effectivement j'ai passé Mabase par là:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    DBCC CHECKDB('Mabase') With No_INFOMSGS, ALL_ERRORMSGS
     
     
    alter database Mabase set emergency with rollback immediate
     
    alter database Mabase set single_user
     
    DBCC CHECKDB(Mabase,REPAIR_ALLOW_DATA_LOSS) 
     
    .................................
    ..........................
    ............
    alter database Mabase set multi_user
    @+

  4. #4
    Membre très actif Avatar de Bernardos
    Homme Profil pro
    Consultant Senior dba sql server & Microsoft Business Intelligence
    Inscrit en
    Avril 2008
    Messages
    333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant Senior dba sql server & Microsoft Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 333
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    USE master;
    GO
    ALTER DATABASE [matable]
    SET SINGLE_USER
    WITH ROLLBACK IMMEDIATE;
    GO
    DBCC CHECKDB('matable',REPAIR_ALLOW_DATA_LOSS)
    GO
    fait un copier coller du script ci-dessus.
    remplace mabase par le nom de ta base.
    Qu'est ce que ca donne?
    Cordialement,

  5. #5
    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
    Si tu as un backup à disposition, tu pourras restaurer la page corrompue sans problème.
    Beaucoup plus sûr que de faire un REPAIR_ALLOW_DATA_LOSS

    ++

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    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 : 22 002
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Si tu as un backup à disposition, tu pourras restaurer la page corrompue sans problème.
    Beaucoup plus sûr que de faire un REPAIR_ALLOW_DATA_LOSS
    Qui, comme son nom l'indique fait perdre des données...
    Et si d'ailleurs tu utilise cette façon de "réparer" (qui n'en est pas une) tu as intérêt à effectuer derrière un DBCC CHECKCONSTRAINTS pour voir s'il n'y a pas, avec l'effacement, des incohérences dans les données.....

    A +

    À nouveau je vous invite à lire notre livre dans lesquelles les techniques de réparation ont été évoquées :
    Nom : Couverture livre SQL server Eyrolles.jpg
Affichages : 148
Taille : 105,0 Ko

    Comme aussi dans cet article en complément :
    http://blog.developpez.com/sqlpro/p1...ver-corrompues
    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/ * * * * *

Discussions similaires

  1. Comment on remplace un check ?
    Par Nout dans le forum Requêtes
    Réponses: 4
    Dernier message: 29/07/2003, 11h20
  2. Check sur une colonne de table "en cours"
    Par in dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/07/2003, 09h47
  3. checking de connexion
    Par JEG dans le forum Développement
    Réponses: 4
    Dernier message: 09/10/2002, 13h36
  4. [propriétés]Option Checked
    Par psl dans le forum Composants VCL
    Réponses: 6
    Dernier message: 22/08/2002, 08h07
  5. Check Url pour savoir si erreur 404 ou si le site existe
    Par Clément[Delphi] dans le forum Composants VCL
    Réponses: 2
    Dernier message: 07/08/2002, 13h49

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