Condividi tramite


Spostamento di database del server di report in un altro computer

È possibile spostare i database del server di report utilizzati in un'installazione corrente in un'istanza di SQL Server Motore di database in un computer diverso. I database reportserver e reportservertempdb devono essere spostati e copiati insieme. Per un'installazione di Reporting Services sono necessari entrambi i database. Il database reportservertempdb deve essere correlato tramite il nome al database reportserver primario che si sta spostando.

Lo spostamento di un database non influisce sulle operazioni pianificate attualmente definite per gli elementi del server di report.

  • Le pianificazioni vengono ricreate la prima volta che si riavvia il servizio del server di report.

  • In SQL Server Agent i processi utilizzati per attivare una pianificazione verranno ricreati nella istanza del database. Non è necessario spostare i processi nel nuovo computer, ma è necessario eliminare quelli che non verranno più utilizzati.

  • Le sottoscrizioni, gli snapshot e i report memorizzati nella cache vengono mantenuti nel database spostato. 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.

  • Il report temporaneo e i dati della sessione utente archiviati nel database reportservertempdb vengono mantenuti quando si sposta il database.

In SQL Server sono disponibili diversi modi per spostare i database, tra cui backup e ripristino, collegamento e scollegamento e copia. Non tutti gli approcci sono appropriati per spostare un database esistente in una nuova istanza del server. L'approccio da utilizzare per spostare il database del server di report dipende dai requisiti di disponibilità del sistema. Il modo più semplice per spostare i database del server di report consiste nel collegarli e scollegarli. Questo approccio richiede tuttavia di portare in modalità offline il server di report mentre lo si scollega. 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 utilizzare comandi Transact-SQL. 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.

Nota importanteImportante

È 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. Per la migrazione di un'installazione di Reporting Services completa, vale a dire lo spostamento del database e la modifica dell'identità del servizio Windows ReportServer utilizzato dal database, è necessario riconfigurare le informazioni di connessione e reimpostare la chiave di crittografia.

Scollegamento e collegamento dei database del server di report

Se il server di report può essere portato in modalità offline, è possibile scollegare i database per spostarli nell'istanza di SQL Server da utilizzare. In questo modo, è possibile mantenere le autorizzazioni presenti nei database. Se si utilizza un database di SQL Server 2012, è necessario spostarlo in un'altra istanza di SQL Server 2012. Dopo avere spostato i database, è necessario riconfigurare la connessione del server di report al database del server di report. 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.

Per spostare i database, eseguire la procedura seguente:

  1. Eseguire il backup delle chiavi di crittografia per il database del server di report da spostare. Per eseguire questa operazione, è possibile utilizzare lo strumento di configurazione di Reporting Services.

  2. Arrestare il servizio del server di report. Per eseguire questa operazione, è possibile utilizzare lo strumento di configurazione di Reporting Services.

  3. Avviare SQL Server Management Studio e stabilire una connessione all'istanza di SQL Server che ospita i database del server di report.

  4. Fare clic con il pulsante destro del mouse sul database del server di report, scegliere Attività e quindi Scollega. Ripetere il passaggio per il database temporaneo del server di report.

  5. Copiare o spostare i file con estensione mdf e ldf nella cartella Dati dell'istanza di SQL Server da utilizzare. Poiché si stanno spostando due database, verificare di spostare o copiare tutti e quattro i file.

  6. In Management Studio stabilire una connessione alla nuova istanza di SQL Server che ospiterà i database del server di report.

  7. Fare clic con il pulsante destro del mouse sul nodo Database e quindi scegliere Collega.

  8. Fare clic su Aggiungi per selezionare i file con estensione mdf e ldf del database del server di report che si desidera collegare. Ripetere il passaggio per il database temporaneo del server di report.

  9. Dopo avere collegato i database, verificare che RSExecRole sia un ruolo del database nel database del server di report e nel database temporaneo. Il ruolo RSExecRole 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. Per ulteriori informazioni, vedere Creare RSExecRole.

  10. Avviare lo strumento di configurazione di Reporting Services e connettersi al server di report.

  11. Nella pagina Database selezionare la nuova istanza di SQL Server, quindi fare clic su Connetti.

  12. Selezionare il database del server di report appena spostato e quindi fare clic su Applica.

  13. Nella pagina Chiavi di crittografia fare clic su Ripristina. Specificare il file che contiene la copia di backup delle chiavi e la password per sbloccare il file.

  14. Riavviare il servizio del server di report.

Backup e ripristino dei database del server di report

Se il server di report non può essere portato in modalità offline, è possibile rilocare i database del server di report tramite backup e ripristino. Per eseguire queste due operazioni, è necessario utilizzare le istruzioni Transact-SQL. Dopo aver ripristinato i database, è necessario configurare il server di report per utilizzare il database nella nuova istanza del server. Per ulteriori informazioni, vedere le istruzioni alla fine di questo argomento.

Utilizzo di BACKUP e COPY_ONLY per eseguire il backup dei database del server di report

Quando si esegue il backup dei database, impostare l'argomento COPY_ONLY. Accertarsi di eseguire il backup di entrambi i database e dei file di log.

-- 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\MSSQL11.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\MSSQL11.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 report

Quando si ripristinano i database, accertarsi di includere l'argomento MOVE per poter specificare un percorso. 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. Nel passaggio finale l'operazione RESTORE viene ripetuta con l'argomento RECOVERY.

Per l'argomento MOVE viene utilizzato il nome logico del file di dati. Per individuare il nome logico, eseguire l'istruzione 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. Per individuare la posizione del file, eseguire l'istruzione RESTORE HEADERONLY FROM DISK='C:\ReportServerData.bak';

Durante il ripristino del database e dei file di log, eseguire ogni operazione RESTORE separatamente.

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

  1. Avviare Gestione configurazione Reporting Services e connettersi al server di report.

  2. Nella pagina Database fare clic su Cambia database. Fare clic su Avanti.

  3. Fare clic su Scegli un database del server di report esistente. Fare clic su Avanti.

  4. Selezionare l'istanza di SQL Server che ospita attualmente il database del server di report, quindi fare clic su Test connessione. Fare clic su Avanti.

  5. In Nome database selezionare il database del server di report da utilizzare. Fare clic su Avanti.

  6. In Credenziali specificare le credenziali che il server di report utilizzerà per la connessione al database relativo. Fare clic su Avanti.

  7. Fare clic su Avanti, quindi su Fine.

[!NOTA]

Per un'installazione di Reporting Services è necessario che nell'istanza di Motore di database di SQL Server sia incluso il ruolo RSExecRole. Quando si imposta la connessione al database del server di report tramite lo strumento di configurazione di Reporting Services, vengono eseguite le operazioni di creazione dei ruoli, registrazione dell'account di accesso e assegnazione di ruoli. 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. Per renderlo disponibile il server di report, potrebbe essere necessario scrivere codice WMI. Per ulteriori informazioni, vedere Accedere al provider WMI per Reporting Services.

Vedere anche

Attivitá

Creare RSExecRole

Avviare e arrestare il servizio del server di report

Riferimento

utilità rsconfig (SSRS)

Concetti

Configurare una connessione del database del server di report (modalità nativa)

Configurare l'account per l'esecuzione automatica

Gestione configurazione Reporting Services (SSRS)

Configurare e gestire le chiavi di crittografia

Database del server di report