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 :

CHECKDB sur + de 15000 bases [2008R2]


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 101
    Par défaut CHECKDB sur + de 15000 bases
    Bonjour,

    j'ai une plateforme Cluster SQL 2008 R2 sur laquelle j'ai une instance ayant + de 15000 bases.

    Je souhaite effectuer un checkDB de toutes les bases si possible en moins d'une journée , ça va être dur mais si vous avez des idées je suis preneur.

    J'ai mis en place un script (sans cursor), mais il tourne pendant plus d'une journée.

    Version du SQL : 10.50.4266.0 SP2 Edition Enterprise 64-bit

    Pouvez-vous m'aider svp ?

    ci-dessous le script que j'utilise :

    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
     
    SET NOCOUNT ON
    GO
     
    DECLARE @db TABLE
    (
        database_name sysname
    )
     
    DECLARE @database_name sysname
        , @sql nvarchar(128)
     
    INSERT    INTO @db (database_name)
    SELECT    name
    FROM    sys.DATABASES
    WHERE    name NOT IN ('master','msdb','model','tempdb', 'ReportServer', 'ReportServerTempDB', 'distribution')
    AND    source_database_id IS NULL -- la BD n'est pas un snapshot
    AND    state_desc = 'ONLINE'
     
    WHILE EXISTS
    (
        SELECT    *
        FROM    @db
    )
    BEGIN
        SELECT    TOP (1) @database_name = database_name
        FROM    @db
     
        SET    @sql = N'DBCC CHECKDB (' + @database_name + ')'
        PRINT    '------------------------' + @database_name + '------------------------'
        EXEC    (@sql)
     
        DELETE    FROM @db
        WHERE    database_name = @database_name
    END

  2. #2
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données MCITP Database Administrator 2008
    Inscrit en
    Décembre 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Administrateur de base de données MCITP Database Administrator 2008
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 40
    Par défaut
    Bonjour,
    essaye de placer la base tempdb sur un axe physique dédié

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 101
    Par défaut
    Je vais regarder de ce côté là.


  4. #4
    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 : 47
    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
    Bonjour,

    Je pense qu'il existe plusieurs stratégies pour cela. Par exemple :

    1- Tu peux essayer de répartir des DBCC CHECKDB sur plusieurs jours
    2- Tu peux essayer de paralléliser les DBCC CHECKDB par lots de bases de données mais en faisant attention à la consommation de ressources.
    3- Si tu es en édition Enterprise tu peux éventuellement déporter les DBCC CHECKDB sur des snapshots de bases de données pour déporter les ressources IO sur d'autres axes physiques
    4- Tu peux également te servir de tes backups et les restaurer sur un autre serveur et effectuer un DBCC CHECKDB

    etc ...

    Il faut faire les choix en fonction de ton infrastructure, ta fenêtre de maintenance etc ...

    ++

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 009
    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 009
    Billets dans le blog
    6
    Par défaut
    En pratique il est hautement farfelu (si je me lâchait je dirais stupide !!!) d'avoir QUINZE MILLE base de données sur un même serveur !
    Vous rendez-vous compte que cela représente au moins 30 000 descripteurs de fichiers ouverts simultanément ?
    A mon avis toutes votre RAM passe dans cette occupation au détriment des données...

    Qu'est ce qui a bien pu vous passer pour faire une chose aussi horrible ?

    En pratique il n'est pas recommandé d'aller au delà de la centaine de base.

    Avez vous entendu parlé de la notion de Schéma SQL ? De Fichier et de groupes de fichier ???

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

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 101
    Par défaut
    Merci mikedavem, je réfléchirai à ces solutions.

    Bonjour SQLPro,

    Tout d'abord j'interviens chez un client, je n'ai pas défini l'architecture ou quoi que ce soit d'autre.

    C'est une problématique que l'on m'a imposé et que je dois résoudre au mieux ...

    C'est pour cela que je demande votre aide ...

    A +

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 101
    Par défaut
    J'ai testé cette la méthode numéro 3 cumulée à la 2 et ça tourne perfect !!!

    Citation Envoyé par mikedavem Voir le message
    3- Si tu es en édition Enterprise tu peux éventuellement déporter les DBCC CHECKDB sur des snapshots de bases de données pour déporter les ressources IO sur d'autres axes physiques
    Merci pour votre aide.

    ++

  8. #8
    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 : 47
    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
    Par curiosité quelle est le gain de temps que tu as pu obtenir avec cette "nouvelle" méthode ?

    ++

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/07/2005, 09h31
  2. [XML/XSL] Est ce que je pars sur une bonne base ?
    Par dinbougre dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 04/12/2004, 00h31
  3. [debutant] select-insert sur tables de bases differentes
    Par RedMax dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 21/10/2004, 19h59
  4. [FileMaker 6] Questions urgente sur type de base de donnee
    Par LAPLACE dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 06/09/2004, 18h39
  5. Réponses: 7
    Dernier message: 08/03/2004, 16h30

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