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 :

checktable de toutes les tables = checkdb ?


Sujet :

Administration SQL Server

  1. #1
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Points : 923
    Points
    923
    Par défaut checktable de toutes les tables = checkdb ?
    Bonjour,

    nos bases étant assez grosses (x téras) et devant passer en dispo 24/24 7/7, nous n'avons plus la possibilité de faire le chekdb le dimanche;
    je me demandais si l'on faisait un checktable de toutes les tables (ou un checkfilegroup) cela serait-il équivalent a un chekdb ?
    je parle bien sûr des userdatabases pas des bases systèmes.

    merci de vos réponses
    Errare humanum est, perseverare diabolicum (Sénèque)

  2. #2
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 815
    Points : 1 350
    Points
    1 350
    Billets dans le blog
    2
    Par défaut
    Bonjour

    DBCC CHECKDB =DBCC CHECKTABLE + DBCC CHECKALLOC + DBCC CHECKCATALOG

    Si tu veux optimiser utiliser le avec l'option WITH NO_INFOMSGS (Cette clause vous permets de supprimer des centaines de messages, et ne renvoie que les erreurs trouvées)

  3. #3
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Points : 923
    Points
    923
    Par défaut
    Merci pour ta réponse,

    nous utilisons déjà cette option et ce n'est pas le temps pris par les messages qui gênent, le chekdb prend 9h sur un serveur 64core avec 256Go de RAM !
    la base contient 1500 tables dont certaines font 500Go

    pour préciser, on comptait faire des checktable au fil de l'eau suivant l'utilisation du serveur (ex: grosses tables la nuit de 3 a 4h du matin, les petites pendant le TP)
    Errare humanum est, perseverare diabolicum (Sénèque)

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 758
    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 758
    Points : 52 535
    Points
    52 535
    Billets dans le blog
    5
    Par défaut
    Il serait beaucoup plus intéressant d'organiser votre base entre données froides sur certains filegroups et données chaudes sur d'autres afin de faire des DBCC CHECKFILEGROUPS à différentes périodes (une fois la semaine pour données froide et une fois par jour pour les chaudes.
    En effet DBCC CHECKDB et DBCC CHECKFILEGROUPS lancent les commandes DBCC en parallèle (donc réduit le temps de traitement) ce que ne fait pas DBCC CHECKTABLE.

    Dans ce même ordre d'idée, il faut aussi orgeaiser vos sauvegardes par groupe de fichier avec exactement les même fréquences pour les même FILEGROUPS.

    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/ * * * * *

  5. #5
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Points : 923
    Points
    923
    Par défaut
    Merci Frédéric,

    la séparation est faite entre données chaudes et froides (filegroups sur baie EMC D5, c'est sa config qui gère où elle mets ses filegroup, disque SSD ou pas)
    donc si on a du parallèle avec le checkfilegroup, cela me parait intéressant
    de plus synchroniser le backup des FG après le check est aussi une bonne idée...

    petite question subsidiaire, si l'on backupe après le check, a-t'on besoin de faire un contrôle sur le backup ?
    Errare humanum est, perseverare diabolicum (Sénèque)

  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
    21 758
    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 758
    Points : 52 535
    Points
    52 535
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par serge0934 Voir le message
    petite question subsidiaire, si l'on backupe après le check, a-t'on besoin de faire un contrôle sur le backup ?
    L'un n'exclus pas l'autre... DBCC CHECK relit les données sur le disque alors que le BACKUP avec CHECKSUM contrôle les pages lues qu'elles soient ne mémoire (dans le cache) ou pour celle qui n'y sont pas, sur le disque. En conclusion, un certain nombre de pages lues ne sont pas vérifiées du disque par le BACKUP !

    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/ * * * * *

  7. #7
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 147
    Points : 7 392
    Points
    7 392
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Je me demande vaguement à quoi servent ces fonctions ?

    J'étais persuadé (visiblement à tort) qu'elles étaient réservées aux tentatives de réparation après caractrophe (disque défectueux, arrêt inopiné du serveur, etc.) et non pour de la maintenance quotidienne...

    En effet, le R dans SGBD-R, c'est pas justement la garantie que si la couche logicielle ne renvoie pas d'erreur, alors obligatoirement c'est que la partie physique est bonne ?
    A savoir que SQL Server ne vérifie-t-il pas lui-même quand il écrit des données sur le disque qu'elles sont bien écrites ?

    Mise à par de la vérification (et éventuellement de la tentative de récupération), que font ces fonctions ?
    On ne jouit bien que de ce qu’on partage.

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 758
    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 758
    Points : 52 535
    Points
    52 535
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    A savoir que SQL Server ne vérifie-t-il pas lui-même quand il écrit des données sur le disque qu'elles sont bien écrites ?
    Oui si vous avez mis ce qu'il fallait :
    ALTER DATABASE ... PAGE_VERIFY { CHECKSUM | TORN_PAGE_DETECTION }

    Mise à par de la vérification (et éventuellement de la tentative de récupération), que font ces fonctions ?
    Les disques s'endommagent naturellement par vieillissement. tant que vous ne passez pas sur une page qui n'a pas fait l'objet depuis de nombreux jours d'une récupération depuis le disque, reine ne vous dit que cette page n'est pas abîmée......

    C'est comme les nids de poule. Ils éclosent naturellement du au gel et autres conditions (micro fissure).

    C'est en passant dessus que vous allez les voir. pas en restant chez vous avec la photo de la route !

    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/ * * * * *

  9. #9
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 147
    Points : 7 392
    Points
    7 392
    Billets dans le blog
    1
    Par défaut
    Ok.

    Actuellement, j'ai un plan de maintenance qui fait un backup FULL toutes les 24 heures, et un LOG toutes les 10 minutes.

    Le FULL lit donc toutes les données sur le disque, non ?

    Du coup, si un secteur de disque est perdu, le FULL plante, et je sais que j'ai juste à restaurer le dernier FULL plus tous les LOG depuis, non ?
    On ne jouit bien que de ce qu’on partage.

  10. #10
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 758
    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 758
    Points : 52 535
    Points
    52 535
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Ok.

    Actuellement, j'ai un plan de maintenance qui fait un backup FULL toutes les 24 heures, et un LOG toutes les 10 minutes.

    Le FULL lit donc toutes les données sur le disque, non ?
    Non. Il ne lit sur le disque que les pages qu'il ne trouve pas en cache...

    Du coup, si un secteur de disque est perdu, le FULL plante, et je sais que j'ai juste à restaurer le dernier FULL plus tous les LOG depuis, non ?
    Uniquement pour les pages lues du disque.

    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/ * * * * *

Discussions similaires

  1. [SQL Server]La liste de toutes les tables
    Par Husqvarna dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/09/2008, 16h21
  2. Mettre à false toutes les tables d'un projet
    Par tomm dans le forum Bases de données
    Réponses: 9
    Dernier message: 28/05/2006, 00h36
  3. [firebird 1.5] lister toutes les tables
    Par c0rwyn dans le forum SQL
    Réponses: 2
    Dernier message: 02/09/2004, 14h36
  4. Pb effacer toutes les tables d'une bd access
    Par madiam2004 dans le forum Bases de données
    Réponses: 5
    Dernier message: 30/05/2004, 15h24
  5. Sélection de toute les tables d'une base
    Par lord_paco dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 21/07/2003, 14h56

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