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 :

Upgrade : COMPATIBILITY_LEVEL de la base MASTER


Sujet :

Administration SQL Server

  1. #1
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut Upgrade : COMPATIBILITY_LEVEL de la base MASTER
    Hello,
    Je souhaite partager ma réflexion avec vous sur un des nombreux problèmes que l'on rencontre quand on fait un Upgrade de SQL 2000 vers SQL 2005 (SP1, SP2, SP3, ...). La question est donc celle-ci :
    Qu'est ce qui justifie le fait que Microsoft décide de laisser par défaut la base master au niveau de compatibilité SQL Server 2000 (80) lorqu'on fait un Upgrade de SQL 2000 vers SQL 2005, alors que les autres bases systèmes( msdb, tempdb et model) passent bien au niveau SQL Server 2005 (COMPATIBILITY_LEVEL = 90) ?

    Merci d'avance
    Etienne ZINZINDOHOUE
    Billets-Articles

  2. #2
    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
    http://blogs.msdn.com/b/psssql/archi...-features.aspx

    "The behavior presented in the upgrade from SQL Server 2000 to SQL Server 2005 is based on a conscious decision taken by the SQL Server product group. . The main motivation behind this is to provide a smooth upgrade process and to ensure existing applications work without encountering a problem after the upgrade. You would question why this decision applies to master database as well. Even though the best practice is not to keep user objects in the master database, many internal features and several applications in the market keep some vital information in the master database. To ensure none of this encounter a problem, the master database is also left at compatibility level 80 after an upgrade. This obviously now poses a problem for application and scripts that wants to execute in the context of the master database as well as use some of the new keywords or operators. They will now run into the problems and errors that we discussed early on."

    David B.

  3. #3
    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
    En fait je me suis toujours demandé s'ils s'étaient basés sur des statistiques clients ou autres pour prendre cette décision ... Est ce que c'est parce que le plus grand nombre d'objets utilisateurs est trouvé dans cette base plutôt que dans msdb par exemple ?

    C'est vrai que par défaut, un utilisateur se voit affecter la base master à la connexion mais bon je reste quand même certain qu'une bonne pratique est de jamais utiliser les bases systèmes pour des objets utilisateurs .. autant créer une base dédiée à cela ..

    ++

  4. #4
    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
    Dans le post de Suresh il est surtout question des 3rd-parties. Je n'ai pas d'exemple en tête mais ils ont dû voir ça avec tous leurs partenaires lors des premières CTP ou en phase de dév de la 2005.

    David B.

  5. #5
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    Merci dbaffaleuf pour le lien.

    je trouve que leur logique (argument) est sélective. Parce que
    ce qu'ils disent à propos des objets utilisateurs qui se trouvent dans la base master, peut s'appliquer aussi à la base msdb ? base msdb où des utilisateurs créent des script de maintenance !
    Pourquoi ils ne sont pas aller jusqu'au bout de leur logique ?
    Sur ce point je pense que MS :
    1) encourage les mauvaises pratiques
    2) pénalise les utilisateurs exemplaires

    Je vais publier un billet à ce sujet sur mon blog ;-)

    A+
    Etienne ZINZINDOHOUE
    Billets-Articles

  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 : 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
    1) MS encourage les mauvaises pratiques
    2) Pénalise les utilisateurs exemplaires
    1)
    Encourager les mauvais pratiques non je ne pense pas. C'est à l'utilisateur de faire attention pas à MS à mon sens. Ils veulent surtout rendre plus facile les mises à jour de versions. (eh oui le business)

    2)
    Je ne vois pas de pénalité là .. c'est juste une question d'appréciation je crois

    ++

  7. #7
    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 mikedavem Voir le message
    Ils veulent surtout rendre plus facile les mises à jour de versions. (eh oui le business)
    C'est exactement ça.

    David B.

  8. #8
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    1)
    Encourager les mauvais pratiques non je ne pense pas. C'est à l'utilisateur de faire attention pas à MS à mon sens. Ils veulent surtout rendre plus facile les mises à jour de versions. (eh oui le business)
    2)
    Je ne vois pas de pénalité là .. c'est juste une question d'appréciation je crois
    ++
    Parce que quand je fais un Upgrade je me dis que je suis sous SQL 2005 et quand j'éxécute cette commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT TOP 20 
    SUM(total_logical_reads + total_logical_writes) AS [Total ES] 
    ,SUM(total_logical_reads + total_logical_writes)/SUM(qs.execution_count) AS [Moyenne ES]
    ,DB_NAME(qt.dbid) AS [DatabaseName]
    FROM sys.dm_exec_query_stats qs
    CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) as qt
    GROUP BY DB_NAME(qt.dbid)
    ORDER BY [Total ES]  DESC;
    ça me crache un message d'erreur incompréhensible !

    donc c'est pénalisant car il faut encore chercher la source de l'erreur et après modifier le niveau de compatibilité. ça fait perdre du temps. Quand on fait un Upgrade, c'est évident de mettre les bases utilisateurs à niveau, ça c'est un réflexe. mais aller vérifier le compatibilité de la base master ça ce n'est pas évident !
    et ça fait perdre du temps !
    Etienne ZINZINDOHOUE
    Billets-Articles

  9. #9
    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
    Dans ton blog, tu peux mettre plutôt la méthode pour changer le mode de compatibilité de master, comme c'est un peu en dehors des sentiers battus.

    David B.

  10. #10
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    Pourquoi ne peuvent-il pas proposer lors du Upgrade un écran du style :

    Voulez-vous mettre à niveau SQL 2005 les bases :
    v master
    v msdb
    v model
    v tempdb

    avec des checkbox afin de donner la possibilité à celui qui fait le upgrade de décider de ce qu'il veut !
    Je préfère ça que de laisser Sql server faire tout ce qu'il veut dans mon dos ;-)
    Etienne ZINZINDOHOUE
    Billets-Articles

  11. #11
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    Citation Envoyé par dbaffaleuf Voir le message
    Dans ton blog, tu peux mettre plutôt la méthode pour changer le mode de compatibilité de master, comme c'est un peu en dehors des sentiers battus.
    David B.
    j'y ai pensé. Merci pour l'idée.
    Etienne ZINZINDOHOUE
    Billets-Articles

  12. #12
    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
    ça me crache un message d'erreur incompréhensible !
    Je suis tout à fait d'accord avec toi sur ce point. C'est aller disons le : CHIANT.

    c'est évident de mettre les bases utilisateurs à niveau, ça c'est un réflexe.
    Là je ne suis pas d'accord avec toi ... J'ai un cas justement d'un client où le fait de passer au niveau de compatibilité par défaut de la version en cours n'était pas appropriée. Eh oui il employait encore des anciennes syntaxes de requêtes qui n'étaient pas compatibles avec le niveau 90 par exemple ... Le processus de mise à niveau a été pris en compte dans les ROAD MAP du client et la mise à niveau s'est effectuée un an après la mise à jour vers SQL Server 2005 !!

    mais aller vérifier le compatibilité de la base master ça ce n'est pas évident ! et ça fait perdre du temps !
    Là je suis en parti d'accord avec toi même si la documentation spécifie clairement ce qui se passe ...

    ++

  13. #13
    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 : 42
    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
    Je lisais ce post et je me disais que je n'ai jamais upgrade une instance...
    En general on repart d'une installation propre et on migre.

    Quels ont ete vos arguments en faveur d'un upgrade d'instance par rapport a une migration vers une nouvelle instance ?

  14. #14
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Là je ne suis pas d'accord avec toi ... J'ai un cas justement d'un client où le fait de passer au niveau de compatibilité par défaut de la version en cours n'était pas appropriée. Eh oui il employait encore des anciennes syntaxes de requêtes qui n'étaient pas compatibles avec le niveau 90 par exemple ... Le processus de mise à niveau a été pris en compte dans les ROAD MAP du client et la mise à niveau s'est effectuée un an après la mise à jour vers SQL Server 2005 !!
    ++
    Normalement ce travail devrait être fait en amont.
    ça fait partie de la préparation à l'Upgrade.
    En jouant un peu avec l'Upgrade Advisor et des requêtes
    on peut identifier des prostocks ou fonctions qui ne seront pas compatible sql 2005.
    Etienne ZINZINDOHOUE
    Billets-Articles

  15. #15
    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
    C'est vrai mais dans certains cas, cette logique ne fonctionne pas. Pour mon cas, ils ont basculé SQL Server 2005 pour des questions de performance (ils en souffraient effectivement .. Microsoft avait bien fait sa COM ).

    En jouant avec le niveau de compatibilité cela permet de souffler un peu on va dire ... Cette même fonctionnalité permettait également de prévoir une road map dans le tems pour effectuer un projet de mise à jour du code incriminé. (Attention je parle d'une base possédant à peu près 8000 procédures stockée à modifier). Malheureusement il faut également assurer les mises à jour applicatives de l'application qui passe bien évidemment en priorité par rapport à de la maintenance de code (eh oui encore le business) ..

    Je pense que dire que cela doit être traité en amont c'est bien mais ce n'est malheureusement pas ou plus la réalité du terrain ...

    ++

  16. #16
    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 zinzineti Voir le message
    En jouant un peu avec l'Upgrade Advisor et des requêtes on peut identifier des prostocks ou fonctions qui ne seront pas compatible sql 2005.
    Ça n'est pas suffisant malheureusement, parce que - et c'est pour tendre un pont vers la théorie de Fred (les bases 'épaisses') -, lorsque le code se trouve sur le serveur applicatif, il ne peut pas être testé automatiquement par SQLUA. Il faut tracer des scenarii applicatifs avec des évènements Profiler pour faire ressortir qq chose, sans garantie que ces tests soient exhaustifs.

    David B.

  17. #17
    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 Ptit_Dje Voir le message
    Quels ont ete vos arguments en faveur d'un upgrade d'instance par rapport a une migration vers une nouvelle instance ?
    Souvent c'est un problème de sous $$$.

    David B.

  18. #18
    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
    Envoyé par Ptit_Dje
    Quels ont ete vos arguments en faveur d'un upgrade d'instance par rapport a une migration vers une nouvelle instance ?
    La migration côte à côte est à mon sens bien meilleure que celle en place. Comme le dit dbaffaleuf c'est souvent une question de sous car il faut bien évidemment du matériel en plus.

    ++

  19. #19
    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 : 42
    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
    Comment tu prevois ton plan de rollback avec un upgrade ?!
    Une image systeme a restaurer ?

  20. #20
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    Citation Envoyé par dbaffaleuf Voir le message
    Dans ton blog, tu peux mettre plutôt la méthode pour changer le mode de compatibilité de master, comme c'est un peu en dehors des sentiers battus.
    David B.
    Je viens de rédiger le billet il est disponible ici

    Vos commentaires sont les bienvenus
    Etienne ZINZINDOHOUE
    Billets-Articles

Discussions similaires

  1. Base MASTER pleine
    Par fucce dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 31/10/2008, 19h33
  2. restauration de la base MASTER
    Par SILO dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 10/09/2007, 15h24
  3. Réponses: 1
    Dernier message: 05/02/2007, 10h11
  4. Problème pour restorer la base master
    Par David Porcher dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 13/03/2006, 12h56
  5. toujours création de table dans base master
    Par FamiDoo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/01/2006, 13h34

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