Spostamento di database del server di report in un altro computer (modalità nativa SSRS)Moving the Report Server Databases to Another Computer (SSRS Native Mode)

È possibile spostare i database del server di report usati in un'installazione SQL ServerSQL Server Motore di databaseDatabase Engine in un'istanza di un computer diverso.You can move the report server databases that are used in an installation SQL ServerSQL Server Motore di databaseDatabase Engine to an instance that is on a different computer. I database reportserver e reportservertempdb devono essere spostati o copiati insieme.Both the reportserver and reportservertempdb databases must be moved or copied together. Per un'installazione di Reporting ServicesReporting Services sono necessari entrambi i database. Il database reportservertempdb deve essere correlato tramite il nome al database reportserver primario che si sta spostando.A Reporting ServicesReporting Services installation requires both databases; the reportservertempdb database must be related by name to the primary reportserver database you are moving.

Si applica a:Applies to: Reporting ServicesReporting Services . Si applica a:Applies to: Reporting ServicesReporting Services Native mode.

Lo spostamento di un database non influisce sulle operazioni pianificate attualmente definite per gli elementi del server di report.Moving a database does not effect scheduled operations that are currently defined for report server items.

  • Le pianificazioni vengono ricreate la prima volta che si riavvia il servizio del server di report.Schedules will be recreated the first time that you restart the Report Server service.

  • SQL ServerSQL Server In Agent i processi usati per attivare una pianificazione verranno ricreati nella istanza di database. Agent jobs that are used to trigger a schedule will be recreated on the new database instance. Non è necessario spostare i processi nel nuovo computer, ma è necessario eliminare quelli che non verranno più utilizzati.You do not have to move the jobs to the new computer, but you might want to delete jobs on the computer that will no longer be used.

  • Le sottoscrizioni, gli snapshot e i report memorizzati nella cache vengono mantenuti nel database spostato.Subscriptions, cached reports, and snapshots are preserved in the moved database. Se uno snapshot non esegue la scelta di dati aggiornati dopo che il database è stato spostato, deselezionare le opzioni relative in Gestione report, fare clic su Applica per salvare le modifiche, ricreare la pianificazione e fare nuovamente clic su Applica per salvare le modifiche.If a snapshot is not picking up refreshed data after the database is moved, clear the snapshot options in Report Manager, click Apply to save your changes, re-create the schedule, and click Apply again to save your changes.

  • Il report temporaneo e i dati della sessione utente archiviati nel database reportservertempdb vengono mantenuti quando si sposta il database.Temporary report and user session data that is stored in reportservertempdb are persisted when you move that database.

    SQL ServerSQL Server sono disponibili diversi modi per spostare i database, tra cui backup e ripristino, collegamento e scollegamento e copia. provides several approaches for moving databases, including backup and restore, attach and detach, and copy. Non tutti gli approcci sono appropriati per spostare un database esistente in una nuova istanza del server.Not all approaches are appropriate for relocating an existing database to a new server instance. L'approccio da utilizzare per spostare il database del server di report dipende dai requisiti di disponibilità del sistema.The approach that you should use to move the report server database will vary depending on your system availability requirements. Il modo più semplice per spostare i database del server di report consiste nel collegarli e scollegarli.The easiest way to move the report server databases is to attach and detach them. Questo approccio richiede tuttavia di portare in modalità offline il server di report mentre lo si scollega.However, this approach requires that you take the report server offline while you detach the database. Il backup e il ripristino rappresentano un'opzione migliore se si desidera ridurre al minimo le interruzioni del servizio, tuttavia per eseguire queste operazioni è necessario usare i comandi Transact-SQLTransact-SQL .Backup and restore is a better choice if you want to minimize service disruptions, but you must run Transact-SQLTransact-SQL commands to perform the operations. La copia del database, in particolare l'utilizzo della procedura Copia guidata database, non è consigliabile in quanto non consente di mantenere le impostazioni delle autorizzazioni nel database.Copying the database is not recommended (specifically, by using the Copy Database Wizard); it does not preserve permission settings in the database.

Importante

È consigliabile eseguire la procedura descritta in questo argomento quando lo spostamento del database del server di report è l'unica modifica che si desidera apportare all'installazione esistente.The steps provided in this topic are recommended when relocating the report server database is the only change you are making to the existing installation. Per la migrazione di un'installazione di Reporting ServicesReporting Services completa, vale a dire lo spostamento del database e la modifica dell'identità del servizio Windows ReportServer usato dal database, è necessario riconfigurare le informazioni di connessione e reimpostare la chiave di crittografia.Migrating an entire Reporting ServicesReporting Services installation (that is, moving the database and changing the identity of the Report Server Windows service that uses the database) requires connection reconfiguration and an encryption key reset.

Scollegamento e collegamento dei database del server di reportDetaching and Attaching the Report Server Databases

Se il server di report può essere portato in modalità offline, è possibile scollegare i database per spostarli nell'istanza di SQL ServerSQL Server da utilizzare.If you can take the report server offline, you can detach the databases to move them to the SQL ServerSQL Server instance you want to use. In questo modo, è possibile mantenere le autorizzazioni presenti nei database.This approach preserves permissions in the databases. Se si usa un database SQL Server, è necessario spostarlo in un'altra istanza di SQL Server.If you are using a SQL Server database, you must move it to another SQL Server instance. Dopo avere spostato i database, è necessario riconfigurare la connessione del server di report al database del server di report.After you move the databases, you must reconfigure the report server connection to the report server database. Se si sta eseguendo una distribuzione con scalabilità orizzontale, è necessario riconfigurare la connessione al database del server di report per ogni server di report della distribuzione.If you are running a scale-out deployment, you must reconfigure the report server database connection for each report server in the deployment.

Per spostare i database, eseguire la procedura seguente:Use the following steps to move the databases:

  1. Eseguire il backup delle chiavi di crittografia per il database del server di report da spostare.Backup the encryption keys for the report server database you want to move. Per eseguire questa operazione, è possibile usare lo strumento di configurazione di Reporting ServicesReporting Services .You can use the Reporting ServicesReporting Services Configuration tool backup the keys.

  2. Arrestare il servizio del server di report.Stop the Report Server service. Per eseguire questa operazione, è possibile utilizzare lo strumento di configurazione di Reporting ServicesReporting Services .You can use the Reporting ServicesReporting Services Configuration tool to stop the service.

  3. Avviare SQL ServerSQL Server Management StudioManagement Studio e stabilire una connessione all'istanza di SQL ServerSQL Server che ospita i database del server di report.Start SQL ServerSQL Server Management StudioManagement Studio and open a connection to the SQL ServerSQL Server instance that hosts the report server databases.

  4. Fare clic con il pulsante destro del mouse sul database del server di report, scegliere Attività, quindi Scollega.Right-click the report server database, point to Tasks, and click Detach. Ripetere il passaggio per il database temporaneo del server di report.Repeat this step for the report server temporary database.

  5. Copiare o spostare i file con estensione mdf e ldf nella cartella Dati dell'istanza di SQL ServerSQL Server da utilizzare.Copy or move the .mdf and .ldf files to the Data folder of the SQL ServerSQL Server instance you want to use. Poiché si stanno spostando due database, verificare di spostare o copiare tutti e quattro i file.Because you are moving two databases, make sure that you move or copy all four files.

  6. In Management StudioManagement Studiostabilire una connessione alla nuova istanza di SQL ServerSQL Server che ospiterà i database del server di report.In Management StudioManagement Studio, open a connection to the new SQL ServerSQL Server instance that will host the report server databases.

  7. Fare clic con il pulsante destro del mouse sul nodo Database, quindi scegliere Collega.Right-click the Databases node, and then click Attach.

  8. Fare clic su Aggiungi per selezionare i file con estensione mdf e ldf del database del server di report che si desidera collegare.Click Add to select the report server database .mdf and .ldf files that you want to attach. Ripetere il passaggio per il database temporaneo del server di report.Repeat this step for the report server temporary database.

  9. Dopo avere collegato i database, verificare che RSExecRole sia un ruolo del database nel database del server di report e nel database temporaneo.After the databases are attached, verify that the RSExecRole is a database role in the report server database and temporary database. Il ruoloRSExecRole deve disporre delle autorizzazioni di selezione, inserimento, aggiornamento, eliminazione e riferimento nelle tabelle del database del server di report e delle autorizzazioni di esecuzione nelle stored procedure.RSExecRole must have select, insert, update, delete, and reference permissions on the report server database tables, and execute permissions on the stored procedures. Per altre informazioni, vedere Creare RSExecRole.For more information, see Create the RSExecRole.

  10. Avviare lo strumento di configurazione di Reporting ServicesReporting Services e connettersi al server di report.Start the Reporting ServicesReporting Services Configuration tool and open a connection to the report server.

  11. Nella pagina Database selezionare la nuova istanza di SQL ServerSQL Server , quindi fare clic su Connetti.On the Database page, select the new SQL ServerSQL Server instance, and then click Connect.

  12. Selezionare il database del server di report appena spostato, quindi fare clic su Applica.Select the report server database that you just moved, and then click Apply.

  13. Nella pagina Chiavi di crittografia fare clic su Ripristina.On the Encryption Keys page, click Restore. Specificare il file che contiene la copia di backup delle chiavi e la password per sbloccare il file.Specify the file that contains the backup copy of the keys and the password to unlock the file.

  14. Riavviare il servizio del server di report.Restart the Report Server service.

Backup e ripristino dei database del server di reportBacking Up and Restoring the Report Server Databases

Se il server di report non può essere portato in modalità offline, è possibile rilocare i database del server di report tramite backup e ripristino.If you cannot take the report server offline, you can use backup and restore to relocate the report server databases. Per eseguire queste due operazioni, è necessario usare le istruzioni Transact-SQLTransact-SQL .You must use Transact-SQLTransact-SQL statements to do the backup and restore. Dopo aver ripristinato i database, è necessario configurare il server di report per utilizzare il database nella nuova istanza del server.After you restore the databases, you must configure the report server to use the database on the new server instance. Per ulteriori informazioni, vedere le istruzioni alla fine di questo argomento.For more information, see the instructions at the end of this topic.

Utilizzo di BACKUP e COPY_ONLY per eseguire il backup dei database del server di reportUsing BACKUP and COPY_ONLY to Backup the Report Server Databases

Quando si esegue il backup dei database, impostare l'argomento COPY_ONLY.When backing up the databases, set the COPY_ONLY argument. Accertarsi di eseguire il backup di entrambi i database e dei file di log.Be sure to back up both of the databases and log files.

-- 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  

Utilizzo di RESTORE e MOVE per spostare i database del server di reportUsing RESTORE and MOVE to Relocate the Report Server Databases

Quando si ripristinano i database, accertarsi di includere l'argomento MOVE per poter specificare un percorso.When restoring the databases, be sure to include the MOVE argument so that you can specify a path. Utilizzare l'argomento NORECOVERY per eseguire il ripristino iniziale. In questo modo, il database viene mantenuto in uno stato RESTORING, consentendo di analizzare i backup dei log per determinare quali ripristinare.Use the NORECOVERY argument to perform the initial restore; this keeps the database in a RESTORING state, giving you time to review log backups to determine which one to restore. Nel passaggio finale l'operazione RESTORE viene ripetuta con l'argomento RECOVERY.The final step repeats the RESTORE operation with the RECOVERY argument.

Per l'argomento MOVE viene utilizzato il nome logico del file di dati.The MOVE argument uses the logical name of the data file. Per individuare il nome logico, eseguire l'istruzione RESTORE FILELISTONLY FROM DISK='C:\ReportServerData.bak';To find the logical name, execute the following statement: RESTORE FILELISTONLY FROM DISK='C:\ReportServerData.bak';

Negli esempi seguenti viene incluso l'argomento FILE in modo che sia possibile specificare la posizione del file di log da ripristinare.The following examples include the FILE argument so that you can specify the file position of the log file to restore. Per individuare la posizione del file, eseguire l'istruzione RESTORE HEADERONLY FROM DISK='C:\ReportServerData.bak';To find the file position, execute the following statement: RESTORE HEADERONLY FROM DISK='C:\ReportServerData.bak';

Durante il ripristino del database e dei file di log, eseguire ogni operazione RESTORE separatamente.When restoring the database and log files, you should run each RESTORE operation separately.

-- 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  

Come configurare la connessione al database del server di reportHow to Configure the Report Server Database Connection

  1. Avviare Gestione configurazione Reporting ServicesReporting Services e connettersi al server di report.Start the Reporting ServicesReporting Services Configuration Manager and open a connection to the report server.

  2. Nella pagina Database fare clic su Cambia database.On the Database page, click Change Database. Scegliere Avanti.Click Next.

  3. Fare clic su Scegli un database del server di report esistente.Click Choose an existing report server database. Scegliere Avanti.Click Next.

  4. Selezionare l'istanza di SQL ServerSQL Server che ospita attualmente il database del server di report, quindi fare clic su Test connessione.Select the SQL ServerSQL Server that now hosts the report server database and click Test Connection. Scegliere Avanti.Click Next.

  5. In Nome database selezionare il database del server di report da utilizzare.In Database Name, select the report server database that you want to use. Scegliere Avanti.Click Next.

  6. In Credenziali specificare le credenziali che il server di report utilizzerà per la connessione al database relativo.In Credentials, specify the credentials that the report server will use to connect to the report server database. Scegliere Avanti.Click Next.

  7. Fare clic su Avanti , quindi su Fine.Click Next and then Finish.

Nota

Per un'installazione di Reporting ServicesReporting Services è necessario che nell'istanza di Motore di database di SQL ServerSQL Server Database Engine sia incluso il ruolo RSExecRole .A Reporting ServicesReporting Services installation requires that the Motore di database di SQL ServerSQL Server Database Engine instance include the RSExecRole role. Quando si imposta la connessione al database del server di report tramite lo strumento di configurazione di Reporting ServicesReporting Services , vengono eseguite le operazioni di creazione dei ruoli, registrazione dell'account di accesso e assegnazione di ruoli.Role creation, login registration, and role assignments occur when you set the report server database connection through the Reporting ServicesReporting Services Configuration tool. Se per configurare la connessione si utilizzano approcci alternativi, in particolare l'utilità della riga di comando rsconfig.exe, il server di report non si troverà in uno stato attivo.If you use alternate approaches (specifically, if you use the rsconfig.exe command prompt utility) to configure the connection, the report server will not be in a working state. Per renderlo disponibile il server di report, potrebbe essere necessario scrivere codice WMI.You might have to write WMI code to make the report server available. Per altre informazioni, vedere Accedere al provider WMI per Reporting Services.For more information, see Access the Reporting Services WMI Provider.

Passaggi successiviNext steps

Creare RSExecRole Create the RSExecRole
Avviare e arrestare il servizio del server di report Start and Stop the Report Server Service
Configurare una connessione del database del server di report Configure a Report Server Database Connection
Configurare l'account di esecuzione automatica Configure the Unattended Execution Account
Gestione configurazione Reporting Services Reporting Services Configuration Manager
Utilità rsconfig rsconfig Utility
Configurare e gestire le chiavi di crittografia Configure and Manage Encryption Keys
Database del server di reportReport Server Database

Altre domande?More questions? Visitare il forum su Reporting ServicesTry asking the Reporting Services forum