Déplacement d'une base de données de serveur de rapports vers un autre ordinateur

Mis à jour : 14 avril 2006

Vous pouvez déplacer les bases de données du serveur de rapports qui sont utilisées dans une installation actuelle vers une instance du moteur de base de données SQL Server située sur un ordinateur différent. Les bases de données reportserver et reportservertempdb doivent être déplacées ou copiées ensemble. Ces deux bases de données sont requises dans une installation Reporting Services ; la base de données reportservertempdb doit être liée par nom à la base de données reportserver primaire que vous déplacez.

Le déplacement d'une base de données n'a aucune incidence sur les opérations planifiées qui sont actuellement définies pour les éléments du serveur de rapports. Les planifications seront recréées la première fois que vous redémarrerez le service Windows Report Server. Les abonnements, les captures instantanées et les rapports mis en cache sont préservés dans la base de données déplacée. 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 ; par exemple 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 à utiliser pour déplacer la base de données du serveur de rapports varie selon que vous êtes, ou non, soumis à des impératifs de durée d'activité. 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. La méthode de sauvegarde et de restauration est un choix plus judicieux si vous voulez minimiser les perturbations de service, mais 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 (surtout à l'aide de l'Assistant Copie de base de données), car elle ne conserve pas les paramètres d'autorisation dans la base de données.

ms156421.note(fr-fr,SQL.90).gifImportant :
Les procédures décrites dans cette rubrique sont recommandées lorsque le déplacement de la base de données du serveur de rapports est la seule modification que vous apportez à l'installation existante. Procéder à la migration de toute une installation Reporting Services (c'est-à-dire, déplacer la base de données et modifier l'identité du service Windows Report Server utilisant la base de données) nécessite la reconfiguration de la connexion et la réinitialisation de la clé de chiffrement. Pour plus d'informations sur la migration d'une installation Reporting Services, consultez Migration de Reporting Services.

Détachement et attachement des 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 2005, vous devez la déplacer vers une autre instance du moteur de base de données SQL Server 2005. 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 avec montée en puissance parallèle, 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. Arrêtez le service Web et le service Windows Report Server. Pour arrêter le service Web Report Server, vous pouvez arrêter le pool d'applications qui héberge le service.
  2. Démarrez SQL Server Management Studio et établissez une connexion à l'instance SQL Server qui héberge les bases de données du serveur de rapports.
  3. Cliquez avec le bouton droit sur la base de données du serveur de rapports, puis cliquez sur Détacher. Répétez cette étape pour chaque base de données temporaire du serveur de rapports.
  4. Copiez ou déplacez les fichiers .mdf et .ldf vers le dossier Data de l'instance SQL Server que vous souhaitez utiliser. Étant donné que vous déplacez deux bases de données, vérifiez que vous déplacez ou copiez les quatre fichiers.
  5. Dans Management Studio, établissez une connexion à la nouvelle instance SQL Server qui hébergera les bases de données du serveur de rapports.
  6. Cliquez avec le bouton droit sur le nœud Bases de données, puis cliquez sur Détacher.
  7. Cliquez sur Ajouter pour sélectionner les fichiers .mdf et .ldf de base de données du serveur de rapports que vous voulez attacher. Répétez cette étape pour chaque base de données temporaire du serveur de rapports.
  8. 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, de création, 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.
  9. Démarrez l'outil de configuration de Reporting Services, puis créez une connexion au serveur de rapports.
  10. Sur la page Installation de la base de données, sélectionnez la nouvelle instance SQL Server, puis cliquez sur Se connecter.
  11. Sélectionnez la base de données de serveur de rapports que vous venez de déplacer, puis cliquez sur Appliquer.
  12. Redémarrez le service Web et le service Windows Report Server.

Sauvegarde et restauration des 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 la restauration pour déplacer les bases de données du serveur de rapports. Vous devez utiliser des instructions Transact-SQL pour les opérations de sauvegarde et de restauration. SQL Server Management Studio ne prend pas en charge les sauvegardes de type copie seule. 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 cette rubrique.

Utilisation de BACKUP et COPY_ALL pour sauvegarder les bases de données du serveur de rapports

Lorsque vous sauvegardez les bases de données, définissez l'argument COPY_ALL. 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\MSSQL.1\MSSQL\BACKUP\ReportServerData.bak'

-- Create a logical backup device, ReportServerLog.
USE master
GO
EXEC sp_addumpdevice 'disk', 'ReportServerLog', 
'C:\Program Files\Microsoft SQL Server\MSSQL.1\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\MSSQL.1\MSSQL\BACKUP\ReportServerTempDBData.bak'

-- Create a logical backup device, ReportServerTempDBLog.
USE master
GO
EXEC sp_addumpdevice 'disk', 'ReportServerTempDBLog', 
'C:\Program Files\Microsoft SQL Server\MSSQL.1\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

Utilisation de RESTORE et de 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 ; la base de données reste ainsi dans l'état de restauration, ce qui vous laisse le temps de vérifier les sauvegardes des journaux pour déterminer ceux qui doivent être restaurés. 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 journal à restaurer. Pour trouver la position de 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 journaux, 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\MSSQL.1\MSSQL\Data\ReportServer.mdf', 
      MOVE 'ReportServer_log' TO
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\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\MSSQL.1\MSSQL\Data\ReportServer.mdf', 
      MOVE 'ReportServer_log' TO
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\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\MSSQL.1\MSSQL\Data\ReportServerTempDB.mdf', 
      MOVE 'ReportServerTempDB_log' TO
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\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\MSSQL.1\MSSQL\Data\ReportServerTempDB.mdf', 
      MOVE 'ReportServerTempDB_log' TO
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\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 l'outil de configuration de Reporting Services, puis créez une connexion au serveur de rapports.
  2. Sur la page Installation de la base de données, sélectionnez le serveur SQL Server qui héberge désormais la base de données du serveur de rapports, puis cliquez sur Se connecter.
  3. Dans la zone Nom de la base de données, sélectionnez la base de données du serveur de rapports que vous voulez utiliser, puis cliquez sur Appliquer.
ms156421.note(fr-fr,SQL.90).gifRemarque :
Dans une installation Reporting Services, il est nécessaire que l'instance du moteur de base de données SQL Server inclue le rôle RSExecRole. La création de rôle, l'enregistrement d'ouverture de session et les attributions de rôle ont lieu lorsque 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 de ligne de commande rsconfig.exe) pour configurer la connexion, le serveur de rapports ne sera pas en état de fonctionnement. Vous devrez peut-être exécuter d'autres scripts pour rendre le serveur de rapports disponible. Pour plus d'informations, consultez Automatisation des tâches d'administration et de déploiement à l'aide de scripts.

Voir aussi

Concepts

Démarrage et arrêt du service Windows Report Server
Configuration d'un compte pour le traitement des rapports sans assistance
Outil de configuration de Reporting Services
Gestion des clés de chiffrement
Base de données de Report Server

Autres ressources

Vue d'ensemble de la sauvegarde (SQL Server)
Sauvegardes de type copie seule
Utilitaire rsconfig

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

14 avril 2006

Nouveau contenu :
  • Ajout d'instructions concernant l'attachement et le détachement de bases de données.
  • Ajout d'un exemple de script et d'instructions concernant l'utilisation de la sauvegarde et de la restauration.