Déplacement des bases de données du serveur de rapports vers un autre ordinateur (en mode natif SSRS)

Vous pouvez déplacer les bases de données du serveur de rapports qui sont utilisées dans une installation du SQL Server Moteur de base de données vers une instance située sur un autre ordinateur. Les bases de données reportserver et reportservertempdb doivent être déplacées ou copiées ensemble. Une installation de Reporting Services nécessite les deux bases de données. Vous devez associer la base de données par nom reportservertempdb à la base de données primaire reportserver que vous déplacez.

S’applique à : Reporting Services en mode natif.

Le déplacement d'une base de données ne modifie pas les opérations planifiées actuellement définies pour les éléments du serveur de rapports.

  • Les planifications sont recréées la première fois que vous redémarrerez le service de serveur de rapports.

  • Les tâches SQL Server Agent qui sont utilisées pour déclencher une planification sont recréées sur la nouvelle instance de base de données. Vous n'êtes pas obligé de déplacer les tâches vers le nouvel ordinateur. En revanche, vous pouvez supprimer les tâches qui ne sont plus utilisées sur l'ordinateur.

  • Les abonnements, les instantanés et les rapports mis en cache sont préservés dans la base de données déplacée. Si un instantané ne récupère pas les données actualisées après le déplacement de la base de données, désactivez les options d'instantané. Ensuite, sélectionnez Appliquer pour enregistrer vos modifications, recréez la planification, puis sélectionnez Appliquer à nouveau pour enregistrer vos modifications.

  • Les données temporaires de session utilisateur et de rapport qui sont stockées dans reportservertempdb sont conservées lorsque vous déplacez la base de données.

SQL Server propose plusieurs approches pour déplacer les bases de données, notamment la sauvegarde et la restauration, l’attachement et le détachement, ainsi que la copie. Les approches ne sont pas toutes appropriées lorsqu'il s'agit de déplacer une base de données vers une nouvelle instance de serveur. L'approche à adopter pour déplacer la base de données du serveur de rapports varie en fonction des exigences de disponibilité de votre système. Pour déplacer les bases de données du serveur de rapports, la méthode la plus simple consiste à les attacher et à les détacher. Cependant, cette approche exige une mise hors connexion du serveur de rapports durant le détachement de la base de données. Les actions de sauvegarde et restauration constituent un meilleur choix si vous souhaitez réduire les interruptions de service. Cependant, vous devez exécuter des commandes Transact-SQL pour effectuer les opérations. La copie de la base de données n'est pas recommandée, en particulier à l'aide de l'Assistant Copie de base de données. Il ne conserve pas les paramètres d'autorisation dans la base de données.

Important

Les procédures décrites dans cet article sont recommandées quand le déplacement de la base de données du serveur de rapports est le seul changement à faire dans l’installation existante. La migration d'une installation complète de Reporting Services nécessite une reconfiguration de connexion, ainsi qu'une réinitialisation de clé de chiffrement. Par exemple, cette configuration est requise lors du déplacement de la base de données et de la modification de l'identité du service Windows de serveur de rapports qui utilise la base de données.

Détacher et attacher les bases de données du serveur de rapports

Si vous pouvez procéder à une mise hors connexion du serveur de rapports, vous pouvez détacher les bases de données pour les déplacer vers l'instance SQL Server que vous souhaitez utiliser. Cette approche permet de conserver les autorisations définies dans les bases de données. Si vous utilisez une base de données SQL Server, vous devez la déplacer vers une autre instance SQL Server. Une fois que vous avez déplacé les bases de données, vous devez reconfigurer la connexion du serveur de rapports à la base de données du serveur de rapports. Si vous exécutez un déploiement scale-out, vous devez reconfigurer la connexion à la base de données du serveur de rapports pour chaque serveur de rapports appartenant au déploiement.

Suivez la procédure ci-dessous pour déplacer les bases de données :

  1. Sauvegardez les clés de chiffrement de la base de données du serveur de rapports que vous souhaitez déplacer. Vous pouvez utiliser l'outil de configuration de Reporting Services pour sauvegarder les clés.

  2. Arrêtez le service Report Server. Vous pouvez utiliser l'outil de configuration de Reporting Services pour arrêter le service.

  3. Démarrez SQL Server Management Studio et établissez une connexion à l’instance de SQL Server qui héberge les bases de données du serveur de rapports.

  4. Cliquez avec le bouton droit sur la base de données du serveur de rapports, pointez sur Tâches et sélectionnez Détacher. Répétez cette étape pour chaque base de données temporaire du serveur de rapports.

  5. Copiez ou déplacez les fichiers .mdf et .ldf dans le dossier Données de l'instance SQL Server que vous souhaitez utiliser. Dans la mesure où vous déplacez deux bases de données, veillez à déplacer ou à copier les quatre fichiers.

  6. Dans Management Studio, établissez une connexion à la nouvelle instance SQL Server qui héberge les bases de données du serveur de rapports.

  7. Cliquez avec le bouton droit sur le nœud Bases de données, puis sélectionnez Attacher.

  8. Sélectionnez Ajouter pour sélectionner les fichiers .mdf et .ldf de base de données du serveur de rapports que vous souhaitez attacher. Répétez cette étape pour chaque base de données temporaire du serveur de rapports.

  9. Une fois les bases de données attachées, vérifiez que RSExecRole est un rôle de base de données dans la base de données du serveur de rapports et la base de données temporaire. RSExecRole doit disposer des autorisations de sélection, d’insertion, de mise à jour, de suppression et de référence sur les tables de la base de données du serveur de rapports, et de l’autorisation d’exécution sur les procédures stockées. Pour plus d’informations, consultez Créer le rôle RSExecRole.

  10. Démarrez l’outil de configuration de Reporting Services , puis établissez une connexion au serveur de rapports.

  11. Sur la page Base de données, sélectionnez la nouvelle instance de SQL Server, puis sélectionnez Se connecter.

  12. Sélectionnez la base de données du serveur de rapports que vous venez de déplacer, puis sélectionnez Appliquer.

  13. Dans la page Clés de chiffrement, sélectionnez Restaurer. Spécifiez le fichier qui contient la copie de sauvegarde des clés, ainsi que le mot de passe qui déverrouille le fichier.

  14. Redémarrez le service Report Server.

Sauvegarder et restaurer les bases de données du serveur de rapports

Si vous ne pouvez pas procéder à la mise hors connexion du serveur de rapports, vous pouvez utiliser la sauvegarde et restauration pour déplacer les bases de données du serveur de rapports. Vous devez utiliser des instructions Transact-SQL pour effectuer les opérations de sauvegarde et de restauration. Une fois les bases de données restaurées, vous devez configurer le serveur de rapports pour qu'il utilise la base de données sur la nouvelle instance de serveur. Pour plus d'informations, consultez les instructions figurant à la fin de cet article.

Utiliser les arguments BACKUP et COPY_ONLY pour sauvegarder les bases de données du serveur de rapports

Lorsque vous sauvegardez les bases de données, définissez l'argument COPY_ONLY. Veillez à sauvegarder les fichiers de base de données et les fichiers journaux.

-- To permit log backups, before the full database backup, alter the database   
-- to use the full recovery model.  
USE master;  
GO  
ALTER DATABASE ReportServer  
   SET RECOVERY FULL  
  
-- If the ReportServerData device does not exist yet, create it.   
USE master  
GO  
EXEC sp_addumpdevice 'disk', 'ReportServerData',   
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\BACKUP\ReportServerData.bak'  
  
-- Create a logical backup device, ReportServerLog.  
USE master  
GO  
EXEC sp_addumpdevice 'disk', 'ReportServerLog',   
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\BACKUP\ReportServerLog.bak'  
  
-- Back up the full ReportServer database.  
BACKUP DATABASE ReportServer  
   TO ReportServerData  
   WITH COPY_ONLY  
  
-- Back up the ReportServer log.  
BACKUP LOG ReportServer  
   TO ReportServerLog  
   WITH COPY_ONLY  
  
-- To permit log backups, before the full database backup, alter the database   
-- to use the full recovery model.  
USE master;  
GO  
ALTER DATABASE ReportServerTempdb  
   SET RECOVERY FULL  
  
-- If the ReportServerTempDBData device does not exist yet, create it.   
USE master  
GO  
EXEC sp_addumpdevice 'disk', 'ReportServerTempDBData',   
'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\BACKUP\ReportServerTempDBData.bak'  
  
-- Create a logical backup device, ReportServerTempDBLog.  
USE master  
GO  
EXEC sp_addumpdevice 'disk', 'ReportServerTempDBLog',   
'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\BACKUP\ReportServerTempDBLog.bak'  
  
-- Back up the full ReportServerTempDB database.  
BACKUP DATABASE ReportServerTempDB  
   TO ReportServerTempDBData  
   WITH COPY_ONLY  
  
-- Back up the ReportServerTempDB log.  
BACKUP LOG ReportServerTempDB  
   TO ReportServerTempDBLog  
   WITH COPY_ONLY  

Utiliser les arguments RESTORE et MOVE pour déplacer les bases de données du serveur de rapports

Lorsque vous restaurez les bases de données, veillez à inclure l'argument MOVE pour pouvoir spécifier un chemin d'accès. Utilisez l'argument NORECOVERY pour effectuer la restauration initiale. Cet argument maintient la base de données dans un état RESTORING, vous laissant le temps d'examiner les sauvegardes des journaux afin de déterminer laquelle restaurer. L'étape finale répète l'opération RESTORE avec l'argument RECOVERY.

L'argument MOVE utilise le nom logique du fichier de données. Pour trouver le nom logique, exécutez l'instruction suivante : RESTORE FILELISTONLY FROM DISK='C:\ReportServerData.bak';.

Les exemples suivants incluent l'argument FILE pour que vous puissiez spécifier la position de fichier du fichier d'historique à restaurer. Pour trouver la position du fichier, exécutez l'instruction suivante : RESTORE HEADERONLY FROM DISK='C:\ReportServerData.bak';.

Lorsque vous restaurez les fichiers de base de données et les fichiers d'historique, vous devez exécuter chaque opération RESTORE séparément.

-- Restore the report server database and move to new instance folder   
RESTORE DATABASE ReportServer  
   FROM DISK='C:\ReportServerData.bak'  
   WITH NORECOVERY,   
      MOVE 'ReportServer' TO   
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServer.mdf',   
      MOVE 'ReportServer_log' TO  
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServer_Log.ldf';  
GO  
  
-- Restore the report server log file to new instance folder   
RESTORE LOG ReportServer  
   FROM DISK='C:\ReportServerData.bak'  
   WITH NORECOVERY, FILE=2  
      MOVE 'ReportServer' TO   
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServer.mdf',   
      MOVE 'ReportServer_log' TO  
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServer_Log.ldf';  
GO  
  
-- Restore and move the report server temporary database  
RESTORE DATABASE ReportServerTempdb  
   FROM DISK='C:\ReportServerTempDBData.bak'  
   WITH NORECOVERY,   
      MOVE 'ReportServerTempDB' TO   
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServerTempDB.mdf',   
      MOVE 'ReportServerTempDB_log' TO  
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\REportServerTempDB_Log.ldf';  
GO  
  
-- Restore the temporary database log file to new instance folder   
RESTORE LOG ReportServerTempdb  
   FROM DISK='C:\ReportServerTempDBData.bak'  
   WITH NORECOVERY, FILE=2  
      MOVE 'ReportServerTempDB' TO   
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServerTempDB.mdf',   
      MOVE 'ReportServerTempDB_log' TO  
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\REportServerTempDB_Log.ldf';  
GO  
  
-- Perform final restore  
RESTORE DATABASE ReportServer  
   WITH RECOVERY  
GO  
  
-- Perform final restore  
RESTORE DATABASE ReportServerTempDB  
   WITH RECOVERY  
GO  

Procédure à suivre pour configurer la connexion à la base de données du serveur de rapports

  1. Démarrez le Gestionnaire de configuration de Reporting Services , puis établissez une connexion au serveur de rapports.

  2. Dans la page Base de données, sélectionnez Modifier la base de données. Sélectionnez Suivant.

  3. Sélectionnez Choisir une base de données de serveur de rapports existante. Sélectionnez Suivant.

  4. Sélectionnez le serveur SQL Server qui héberge désormais la base de données du serveur de rapports, puis choisissez Tester la connexion. Cliquez sur Suivant.

  5. Dans Nom de la base de données, sélectionnez la base de données du serveur de rapports que vous voulez utiliser. Cliquez sur Suivant.

  6. Dans Identifiants, spécifiez les identifiants que le serveur de rapports doit utiliser pour se connecter à la base de données du serveur de rapports. Cliquez sur Suivant.

  7. Sélectionnez Suivant , puis Terminer.

Remarque

Une installation Reporting Services nécessite que l’instance du Moteur de base de données SQL Server comporte le rôle RSExecRole . La création de rôles, l’inscription d’une connexion et les attributions de rôles ont lieu quand vous définissez la connexion à la base de données du serveur de rapports par le biais de l’outil de configuration de Reporting Services . Si vous utilisez d'autres approches (surtout si vous recourez à l'utilitaire d'invite de commandes rsconfig.exe) pour configurer la connexion, le serveur de rapports ne sera pas en état de fonctionner. Vous devrez peut-être écrire du code WMI pour rendre le serveur de rapports disponible. Pour plus d’informations, consultez Accéder au fournisseur WMI de Reporting Services.

Créer le RSExecRole
Démarrer et arrêter le service du serveur de rapports
Configurer la connexion de base de données d’un serveur de rapports
Configurer le compte d'exécution sans assistance
Gestionnaire de configuration service Web Report Server
Utilitaire rsconfig.exe
Configurer et gérer des clés de chiffrement
Base de données du serveur de rapports

D’autres questions ? Essayez de poser une question dans le forum Reporting Services