Considérations sur la mise à niveau du moteur de base de données

Vous pouvez mettre à niveau le moteur de base de données SQL Server vers SQL Server 2008. Pour plus d'informations sur les chemins de mise à niveau pris en charge, consultez Mises à niveau de la version et de l'édition.

Le programme d'installation de SQL Server peut mettre à niveau une version antérieure de SQL Server avec une intervention minimale de l'utilisateur. Toutefois, une préparation correcte et une bonne connaissance du processus de mise à niveau peuvent faciliter la prévention et la résolution des problèmes susceptibles de se produire.

Cette rubrique fournit les informations qui vous aideront à préparer et à comprendre le processus de mise à niveau :

  • Problèmes de mise à niveau connus

  • Tâches précédant la mise à niveau et observations

  • Liens vers les rubriques consacrées aux procédures de mise à niveau du Moteur de base de données.

  • Liens vers les rubriques consacrées aux procédures de migration des bases de données vers SQL Server

  • Remarques sur les clusters de basculement

  • Tâches postérieures à la mise à niveau et observations

Problèmes de mise à niveau connus

Avant d'effectuer la mise à niveau du Moteur de base de données, consultez Compatibilité descendante du moteur de base de données SQL Server. Pour plus d'informations sur les scénarios de mise à niveau pris en charge et sur les problèmes de mise à niveau connus, consultez Mises à niveau de la version et de l'édition. Pour plus d'informations sur la compatibilité descendante des autres composants de SQL Server, consultez Compatibilité ascendante.

Important

Avant toute mise à niveau d'une édition de SQL Server vers une autre, vérifiez que la fonctionnalité en cours d'utilisation est prise en charge dans l'édition vers laquelle vous effectuez la mise à niveau.

Liste de contrôle préalable à la mise à niveau

La mise à niveau vers SQL Server à partir d'une version précédente est prise en charge par le programme d'installation de SQL Server. Vous pouvez également migrer les bases de données à partir de versions précédentes de SQL Server. La migration peut être effectuée à partir d'une instance SQL Server vers une autre instance située vers le même ordinateur ou à partir d'une instance SQL Server vers un autre ordinateur. Les options de migration incluent l'utilisation de l'Assistant Copie de base de données, de la fonctionnalité de sauvegarde et de restauration, ainsi que l'utilisation de l'Assistant Importation et exportation SQL ServerIntegration Services et des méthodes d'importation et d'exportation en bloc.

Avant d'effectuer la mise à niveau du Moteur de base de données, n'oubliez pas de respecter les consignes suivantes :

Passez en revue les problèmes ci-dessous et apportez les modifications nécessaires, avant d'effectuer la mise à niveau de SQL Server :

  • Lorsque vous procédez à une mise à niveau à partir d'une version 64 bits de SQL Server vers une version 64 bits de SQL Server 2008, vous devez mettre à niveau Analysis Services avant de mettre à niveau le moteur de base de données.

  • Lors de la mise à niveau des instances de SQL Server où l'Agent SQL Server est inscrit dans les relations MSX/TSX, mettez à niveau les serveurs cibles avant de mettre à niveau les serveurs maîtres. Si vous mettez à niveau les serveurs maîtres avant les serveurs cibles, l'Agent SQL Server ne sera pas en mesure de se connecter aux instances principales de SQL Server.

  • Sauvegardez tous les fichiers de base de données SQL Server de l'instance à mettre à niveau, afin de pouvoir les restaurer, si besoin est.

  • Exécutez les commandes DBCC (Database Console Commands) appropriées sur les bases de données à mettre à niveau afin de vérifier leur cohérence.

  • Estimez l'espace disque requis pour mettre à niveau les composants SQL Server, ainsi que les bases de données utilisateur. Pour connaître l'espace disque requis par les composants SQL Server, consultez Configurations matérielle et logicielle requises pour l'installation de SQL Server 2008.

  • Vérifiez que les bases de données système SQL Server existantes (master, model, msdb et tempdb) sont configurées pour s'accroître automatiquement et vérifiez qu'elles disposent pour cela d'un espace disque suffisant.

  • Vérifiez que tous les serveurs de bases de données possèdent des informations d'ouverture de session dans la base de données master. Ce point est particulièrement important pour la restauration d'une base de données, car les informations d'ouverture de session système résident dans la base de données master.

  • Désactivez toutes les procédures stockées de démarrage, car le processus de mise à niveau arrête et démarre les services sur l'instance SQL Server en cours de mise à niveau. Les procédures stockées traitées au moment du démarrage pourraient bloquer le processus de mise à niveau.

  • Désactivez la réplication et vérifiez que le journal des réplications est vide.

  • La mise à niveau d'une instance du moteur de base de données SQL Server 2000 conserve la valeur de configuration du max worker threads. Toutefois, nous vous recommandons de remplacer la valeur du max worker threads par 0 avant d'effectuer la mise à niveau, afin de permettre au moteur de base de données de calculer le nombre optimal de threads. Pour plus d'informations, consultez Option max worker threads dans la documentation en ligne de SQL Server.

  • Quittez toutes les applications, y compris tous les services ayant des dépendances de SQL Server. La mise à niveau peut échouer si les applications locales sont connectées à l'instance en cours de mise à niveau.

  • Si vous utilisez la Mise en miroir de bases de données, consultez Procédure : réduire le temps d'indisponibilité des bases de données mises en miroir lors de la mise à niveau d'instances de serveur dans la Documentation en ligne SQL Server.

Mise à niveau du moteur de base de données

Vous pouvez remplacer une installation de SQL Server 2000 7.0 ou SQL Server 2005 par une mise à niveau de la version. Si une version précédente de SQL Server est détectée lorsque vous exécutez le programme d'installation de SQL Server, tous les fichiers programme de la version précédente de SQL Server sont mis à niveau et toutes les données stockées dans l'instance SQL Server précédente sont conservés. En outre, les versions précédentes de la documentation en ligne de SQL Server demeureront intactes sur l'ordinateur.

AttentionAttention

Lorsque vous effectuerez une mise à niveau vers SQL Server, l'instance SQL Server précédente sera remplacée et n'existera plus sur votre ordinateur. Avant d'opérer la mise à niveau, sauvegardez les bases de données SQL Server et les autres objets associés à l'instance SQL Server précédente.

Vous pouvez mettre à niveau le Moteur de base de données en utilisant l'Assistant Installation de SQL Server.

AttentionAttention

Si votre ordinateur possède les outils d'administration de SQL Server 2000 et une instance par défaut de SQL Server 2008, le programme d'installation de SQL Server vous permet d'installer une instance par défaut de SQL Server 2000. Toutefois, cette opération désactive l'instance installée de SQL Server 2008. Par conséquent, n'installez pas d'instance par défaut de SQL Server lorsque les outils d'administration de SQL Server 2000 et une instance par défaut de SQL Server 2008 existent déjà sur l'ordinateur.

Niveau de compatibilité des bases de données après une mise à niveau

Les niveaux de compatibilité des bases de données tempdb, model, msdb et Resource sont définies à 100 après la mise à niveau. La base de données système master conserve le niveau de compatibilité qu'elle avait avant la mise à niveau, sauf si ce niveau était inférieur à 80. Si le niveau de compatibilité de master était inférieur à 80 avant la mise à niveau, il est défini à 80 après la mise à niveau.

Si le niveau de compatibilité d'une base de données utilisateur était à 80 ou 90 avant la mise à niveau, il reste le même après la mise à niveau. Si le niveau de compatibilité était à 70 ou moins avant la mise à niveau, dans la base de données mise à niveau, le niveau de compatibilité est défini à 80, ce qui correspond au niveau de compatibilité le plus bas pris en charge dans SQL Server 2008.

[!REMARQUE]

Les nouvelles bases de données utilisateur héritent du niveau de compatibilité de la base de données model.

Migration des bases de données

Vous pouvez déplacer les bases de données utilisateur vers une instance de SQL Server à l'aide des fonctionnalités de sauvegarde et de restauration ou de détachement et d'attachement de SQL Server.

Important

Une base de données dont le nom est identique sur les serveurs source et de destination ne peut pas être déplacée ni copiée. Dans ce cas, elle est signalée par « Existe déjà ».

Pour plus d'informations, consultez Utilisation de l'Assistant Copie de base de données ou Procédure : mettre à niveau SQL Server à l'aide de l'Assistant Copie de base de données.

Après la mise à niveau du moteur de base de données

Après la mise à niveau du Moteur de base de données, effectuez les tâches suivantes :

  • Réinscrivez vos serveurs. Pour plus d'informations sur l'inscription des serveurs, consultez la rubrique Inscription des serveurs dans la documentation en ligne de SQL Server.

  • Alimentez à nouveau les catalogues de texte intégral. Cette opération améliore la performance de votre installation SQL Server. Pour plus d'informations, consultez la rubrique sp_fulltext_catalog (Transact-SQL) dans la documentation en ligne de SQL Server.

  • Mettez à jour les statistiques sur toutes les bases de données à l'issue de la mise à niveau à partir de SQL Server 2000. Utilisez la procédure stockée sp_updatestats pour mettre à jour les statistiques des tables utilisateur dans les bases de données SQL Server. Cette étape n'est pas nécessaire si vous effectuez une mise à niveau à partir de SQL Server 2005.

  • Exécutez DBCC UPDATEUSAGE sur toutes les bases de données pour corriger les lignes ou les comptes de page incorrects.

  • Configurez l'installation de SQL Server. Pour réduire la surface d'exposition d'un système, SQL Server installe et active de façon sélective les services et les fonctions clés.

  • Validez ou supprimez les indicateurs USE PLAN générés par SQL Server 2005 et appliqués aux requêtes sur les tables partitionnées et les index.

    SQL Server 2008 modifie la manière dont sont traitées les requêtes sur les tables partitionnées et les index. Les requêtes sur les objets partitionnés qui utilisent l'indicateur USE PLAN pour un plan généré par SQL Server 2005 peuvent contenir un plan non utilisable dans SQL Server 2008. Nous recommandons les procédures suivantes après la mise à niveau vers SQL Server 2008.

    Lorsque l'indicateur USE PLAN conseil est spécifié directement dans une requête :

    1. Supprimez l'indicateur USE PLAN de la requête.

    2. Testez la requête.

    3. Si l'optimiseur ne sélectionne pas un plan approprié, réglez la requête, puis envisagez de spécifier l'indicateur USE PLAN avec le plan de requête désiré.

    Lorsque l'indicateur USE PLAN conseil est spécifié dans un repère de plan :

    1. Utilisez la fonction sys.fn_validate_plan_guide pour vérifier la validité du repère de plan. Vous pouvez aussi surveiller les repères de plan non valides en utilisant l'événement Plan Guide Unsuccessful dans SQL Server Profiler.

    2. Si le repère de plan n'est pas valide, abandonnez-le. Si l'optimiseur ne sélectionne pas un plan approprié, réglez la requête, puis envisagez de spécifier l'indicateur USE PLAN avec le plan de requête désiré.

    Un repère de plan non valide n'entraîne pas l'échec d'une requête quand l'indicateur USE PLAN est spécifié dans un repère de plan. À la place, la requête est compilée sans utiliser l'indicateur USE PLAN. Pour plus d'informations sur le traitement des requêtes sur les objets partitionnés, consultez Améliorations du traitement des requêtes sur les tables et les index partitionnés.

Toutes les bases de données qui étaient marquées comme activées ou désactivées pour le texte intégral avant la mise à niveau conservent ce statut après la mise à niveau. Après la mise à niveau, les catalogues de texte intégral sont automatiquement reconstruits et alimentés pour toutes les bases de données activées pour le texte intégral. Cette opération peut s'avérer gourmande en termes de temps et de ressources. Vous pouvez suspendre temporairement l'opération d'indexation de recherche en texte intégral en exécutant l'instruction suivante :

EXEC sp_fulltext_service 'pause_indexing', 1

Pour reprendre l'alimentation de l'index de recherche en texte intégral, exécutez l'instruction suivante :

EXEC sp_fulltext_service 'pause_indexing', 0

Historique des modifications

Mise à jour du contenu

Dans la section « Après la mise à niveau du moteur de base de données », modification de la recommandation pour mettre à jour les statistiques après la mise à niveau à partir de SQL Server 2000.