Considérations relatives à la mise à niveau de bases de données répliquées

SQL Server 2008 prend en charge la mise à niveau des bases de données répliquées à partir des versions précédentes de SQL Server ; il n'est pas nécessaire d'interrompre l'activité des autres nœuds lorsqu'un nœud est en cours de mise à niveau. Prenez soin de respecter les règles relatives aux versions qui sont prises en charge dans une topologie :

  • SQL Server 2000 Service Pack 3 (SP3) est la version minimale requise pour participer à une topologie de réplication avec SQL Server 2008. Aucune version minimale n'est requise si vous utilisez SQL Server 2005.

  • Toute version convient pour le serveur de distribution dès lors qu'elle est égale ou supérieure à celle du serveur de publication (en général, l'instance du serveur de distribution est la même que celle du serveur de publication).

  • Toute version convient pour le serveur de publication dès lors qu'elle est inférieure ou égale à celle du serveur de distribution.

  • La version de l'Abonné dépend du type de publication :

    • La version d'un Abonné à une publication transactionnelle peut être n'importe laquelle des deux versions du serveur de publication. Par exemple : un serveur de publication SQL Server 2000 peut avoir des Abonnés SQL Server 2008 et un serveur de publication SQL Server 2008 peut avoir des Abonnés SQL Server 2000.

    • La version d'un Abonné à une publication de fusion peut être toute version inférieure ou égale à celle du serveur de publication.

[!REMARQUE]

Cette rubrique est disponible dans la documentation d'aide du programme d'installation et dans la documentation en ligne de SQL Server. Les liens vers des rubriques qui s'affichent en gras dans la documentation d'aide du programme d'installation font référence à des rubriques qui sont exclusivement disponibles dans la documentation en ligne.

Exécuter l'Agent de lecture du journal pour la réplication transactionnelle avant la mise à niveau

Avant d'effectuer la mise à niveau vers SQL Server 2008, vous devez vous assurer que toutes les transactions validées de tables publiées ont été traitées par l'Agent de lecture du journal. Pour vous assurer que toutes les transactions ont été traitées, effectuez les étapes suivantes pour chaque base de données qui contient des publications transactionnelles :

  1. Assurez-vous que l'Agent de lecture du journal s'exécute pour la base de données. Par défaut, cet agent s'exécute en permanence.

  2. Arrêtez l'activité des utilisateurs sur les tables publiées.

  3. Laissez à l'Agent de lecture du journal le temps de copier des transactions vers la base de données de distribution, puis arrêtez-le.

  4. Exécutez sp_replcmds pour vérifier que toutes les transactions ont été traitées. Le jeu de résultats de cette procédure doit être vide.

  5. Exécutez sp_replflush pour fermer la connexion à partir de sp_replcmds.

  6. Effectuez la mise à niveau de serveur vers SQL Server 2008.

  7. Redémarrez l'Agent SQL Server et l'Agent de lecture du journal s'ils ne démarrent pas automatiquement après la mise à niveau.

Exécution des agents de réplication de fusion après la mise à niveau

Après la mise à niveau, exécutez l'Agent de capture instantanée pour chaque publication de fusion et l'Agent de fusion pour chaque abonnement afin de mettre à jour les métadonnées de réplication. Vous n'avez pas à appliquer la nouvelle capture instantanée, car elle n'est pas nécessaire pour réinitialiser les abonnements. Les métadonnées d'abonnement sont mises à jour lors de la première exécution de l'Agent de fusion après la mise à niveau. Ceci signifie que la base de données d'abonnement peut rester en ligne et active durant la mise à niveau du serveur de publication.

La réplication de fusion stocke les métadonnées de publication et d'abonnement dans un certain nombre de tables système des bases de données de publication et d'abonnement. L'exécution de l'Agent de capture instantanée met à jour les métadonnées d'abonnement et l'exécution de l'Agent de fusion met à jour les métadonnées d'abonnement. Il faut uniquement générer une capture instantanée de publication. Si une publication de fusion utilise des filtres paramétrés, chaque partition a également une capture instantanée. Il n'est pas nécessaire de mettre à jour ces captures instantanées partitionnées. (Dans SQL Server 2000, les filtres paramétrés étaient désignés comme des filtres dynamiques et les captures instantanées partitionnées étaient désignées comme des captures instantanées dynamiques.)

Exécutez les agents à partir de SQL Server Management Studio, du moniteur de réplication ou de la ligne de commande. Pour plus d'informations sur l'exécution de l'Agent de capture instantanée, consultez les rubriques suivantes :

Pour plus d'informations sur l'exécution de l'Agent de fusion, consultez les rubriques suivantes :

Après avoir mis à niveau SQL Server dans une topologie qui utilise la réplication de fusion, modifiez le niveau de compatibilité de toutes les publications si vous voulez utiliser les nouvelles fonctionnalités. Pour plus d'informations, consultez Utilisation de plusieurs versions de SQL Server dans une topologie de réplication.

Mise à niveau vers les éditions Standard, Workgroup ou Express

Avant toute mise à niveau d'une édition de SQL Server 2008 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. Pour plus d'informations, consultez la section « Fonctionnalités de réplication SQL Server 2008 » dans la rubrique Fonctionnalités prises en charge par les éditions de SQL Server 2008.

Nouveau modèle de sécurité de l'Agent de réplication

Dans les versions de SQL Server antérieures à SQL Server 2005, les agents s'exécutaient par défaut sous le compte du service SQL Server Agent. SQL Server 2005 a permis de contrôler plus précisément chaque compte sous lequel les agents de réplication s'exécutent et établissent des connexions intégrées à Windows avec les bases de données et d'autres ressources ; un compte différent peut être spécifié pour chaque agent. Pour plus d'informations, consultez Sécurité et protection (réplication) et Modèle de sécurité de l'Agent de réplication.

Le nouveau modèle de sécurité a les implications suivantes dans la mise à niveau et l'exécution de SQL Server 2000 dans une topologie :

  • Les scripts de réplication créés dans SQL Server 2000 doivent être mis à niveau vers SQL Server 2008 pour pouvoir tirer parti des améliorations apportées à la sécurité. Pour plus d'informations, consultez Procédure : mettre à niveau les scripts de réplication (programmation Transact-SQL de la réplication).

  • Un serveur de distribution ou un Abonné mis à niveau à partir de SQL Server 2000 vers SQL Server 2008 continue d'être exécuté sous le compte de l'Agent SQL Server et a vraisemblablement plus de privilèges qu'il n'en nécessite. Après la mise à jour, nous vous recommandons de spécifier des comptes distincts pour les agents, avec les privilèges minimum appropriés. Pour spécifier des comptes distincts :

    1. Générez le script de la publication et des abonnements.

    2. Modifiez ces scripts. Pour plus d'informations, consultez Procédure : mettre à niveau les scripts de réplication (programmation Transact-SQL de la réplication).

    3. Supprimez la publication et les abonnements. Pour plus d'informations, consultez Publication de données et d'objets de base de données et Abonnement à des publications.

    4. Recréez-les à l'aide des scripts modifiés.

    Pour plus d'informations sur les privilèges requis par les agents, consultez Modèle de sécurité de l'Agent de réplication ; pour plus d'informations sur la gestion des connexions et des mots de passe, consultez Gestion des connexions et des mots de passe dans la réplication. Les nouvelles configurations de réplication créées après une mise à niveau requièrent une configuration de compte spécifique pour chaque agent de réplication.

    [!REMARQUE]

    Tous les agents configurés pour utiliser l'authentification SQL Server pour les connexions de bases de données locales sont modifiés pour utiliser l'authentification Windows. Les connexions locales sont les connexions effectuées par un agent à une instance SQL Server qui s'exécute sur le même ordinateur que l'agent. Par exemple, l'Agent de fusion pour un abonnement par extraction de données s'exécute chez l'Abonné, si bien que les connexions qu'il établit avec l'Abonné sont des connexions locales.

  • Les participants d'une topologie de réplication exécutant des versions précédentes de SQL Server gardent l'ancien modèle de sécurité de réplication tel quel. Par exemple :

    • Un abonnement par extraction de données vers un Abonné exécutant SQL Server 2000 n'utilise pas le nouveau modèle de sécurité, car l'Agent de fusion ou de distribution est créé sur l'Abonné.

    • Un abonnement par émission de données à partir d'un serveur de distribution exécutant SQL Server 2008 vers un Abonné exécutant SQL Server 2000 utilise le nouveau modèle de sécurité, car l'Agent de fusion ou de distribution est créé sur le serveur de distribution.

    • Un serveur de publication exécutant SQL Server 2000 avec un serveur de distribution exécutant SQL Server 2008 n'utilise pas le nouveau modèle de sécurité (pour l'Agent de capture instantanée, l'Agent de lecture de journal ou l'Agent de lecture de la file d'attente), car les agents sont créés dans le contexte de la base de données de publication.

  • SQL Server 2005 et SQL Server 2008 utilisent le même modèle de sécurité.

Synchronisation Web pour la réplication de fusion

L'option de synchronisation Web pour la réplication de fusion requiert la copie de l'Écouteur de réplication SQL Server (replisapi.dll) dans le répertoire virtuel sur le serveur IIS (Internet Information Services) utilisé pour la synchronisation. Lorsque vous configurez la synchronisation Web, le fichier est copié dans le répertoire virtuel par l'Assistant Configuration de la synchronisation Web. Si vous mettez à niveau les composants SQL Server installés sur le serveur IIS, vous devez manuellement copier replisapi.dll depuis le répertoire COM vers le répertoire virtuel sur le serveur IIS. Pour plus d'informations sur la configuration de la synchronisation Web, consultez Configuration de la synchronisation Web.

Restauration d'une base de données répliquée à partir d'une version antérieure

Pour vous assurer que les paramètres de réplication sont conservés lorsque vous restaurez la sauvegarde d'une base de données répliquée à partir d'une version précédente : effectuez la restauration vers un serveur et une base de données du même nom que le serveur et la base de données à l'origine de la sauvegarde.