Como mover Bancos de Dados do Servidor de Relatório para outro computador (modo nativo do SSRS)Moving Report Server Databases to Another Computer (SSRS Native Mode)

É possível mover os bancos de dados do servidor de relatório usados em uma instalação do SQL ServerSQL Server Mecanismo de Banco de DadosDatabase Engine para uma instância que está em outro computador.You can move the report server databases that are used in an installation of SQL ServerSQL Server Mecanismo de Banco de DadosDatabase Engine to an instance that is on a different computer. Os bancos de dados reportserver e reportservertempdb devem ser movidos ou copiados juntos.Both the reportserver and reportservertempdb databases must be moved or copied together. Uma instalação do Reporting ServicesReporting Services requer os dois bancos de dados; o banco de dados reportservertempdb deve ser relacionado por nome ao banco de dados reportserver primário que está sendo movido.A Reporting ServicesReporting Services installation requires both databases; the reportservertempdb database must be related by name to the primary reportserver database you are moving.

Aplica-se a:Applies to: Modo nativo do Reporting ServicesReporting Services.Aplica-se a:Applies to: Reporting ServicesReporting Services Native mode.

A movimentação de um banco de dados não afeta as operações agendadas que estão definidas atualmente para itens de servidor de relatório.Moving a database does not effect scheduled operations that are currently defined for report server items.

  • As agendas serão recriadas na primeira vez em que o serviço do servidor de relatório for reiniciado.Schedules will be recreated the first time that you restart the Report Server service.

  • SQL ServerSQL Server Agent que são usados para acionar uma agenda serão recriados na nova instância do banco de dados.Agent jobs that are used to trigger a schedule will be recreated on the new database instance. Não é necessário mover os trabalhos para o novo computador, mas você pode excluir os trabalhos que não serão mais usados.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.

  • Assinaturas, relatórios em cache e instantâneos são preservados no banco de dados movido.Subscriptions, cached reports, and snapshots are preserved in the moved database. Se um instantâneo não estiver capturando dados atualizados depois que o banco de dados for movido, desmarque as opções de instantâneo e selecione Aplicar para salvar as alterações, recrie o agendamento e selecione Aplicar novamente para salvar as alterações.If a snapshot is not picking up refreshed data after the database is moved, clear the snapshot options and select Apply to save your changes, re-create the schedule, and select Apply again to save your changes.

  • Os dados do relatório temporário e da sessão de usuário que são armazenados em reportservertempdb são mantidos quando o banco de dados é movido.Temporary report and user session data that is stored in reportservertempdb are persisted when you move that database.

SQL ServerSQL Server fornece várias abordagens para mover bancos de dados, inclusive backup e restauração, anexação e desanexação e cópia.provides several approaches for moving databases, including backup and restore, attach and detach, and copy. Nem todas as abordagens são apropriadas para realocar um banco de dados existente em uma nova instância do servidor.Not all approaches are appropriate for relocating an existing database to a new server instance. A abordagem que deve ser usada para mover o banco de dados do servidor de relatório varia dependendo dos requisitos de disponibilidade do sistema.The approach that you should use to move the report server database will vary depending on your system availability requirements. O modo mais fácil para mover os bancos de dados do servidor de relatório é anexá-los e desanexá-los.The easiest way to move the report server databases is to attach and detach them. No entanto, esta abordagem requer que o servidor de relatório fique offline enquanto o banco de dados é desanexado.However, this approach requires that you take the report server offline while you detach the database. O backup e a restauração são a melhor opção se você desejar minimizar as interrupções de serviço, mas é necessário executar os comandos Transact-SQLTransact-SQL para efetuar as operações.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. A cópia do banco de dados não é recomendada (principalmente se o Assistente para Copiar Banco de Dados for utilizado); as configurações de permissão não são preservadas no banco de dados.Copying the database is not recommended (specifically, by using the Copy Database Wizard); it does not preserve permission settings in the database.

Importante

As etapas descritas neste artigo são recomendadas quando a realocação do banco de dados do servidor de relatório é a única alteração feita na instalação existente.The steps provided in this article are recommended when relocation of the report server database is the only change you are making to the existing installation. A migração de uma instalação inteira do Reporting ServicesReporting Services (ou seja, a movimentação do banco de dados e a alteração da identidade do serviço Windows do Servidor de Relatório que usa o banco de dados) exige a reconfiguração da conexão e a redefinição de uma chave de criptografia.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.

Desanexando e anexando os bancos de dados do servidor de relatórioDetaching and Attaching the Report Server Databases

Se conseguir colocar o servidor de relatório offline, você poderá desanexar os bancos de dados para movê-los para a instância do SQL ServerSQL Server a ser usada.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. Esta abordagem preserva as permissões nos bancos de dados.This approach preserves permissions in the databases. Se estiver usando um banco de dados do SQL Server, mova-o para outra instância do SQL Server.If you are using a SQL Server database, you must move it to another SQL Server instance. Depois de mover os bancos de dados, reconfigure a conexão do servidor de relatório com o banco de dados.After you move the databases, you must reconfigure the report server connection to the report server database. Se você estiver executando uma implantação de expansão, deverá reconfigurar a conexão do banco de dados do servidor de relatório para cada servidor de relatório da implantação.If you are running a scale-out deployment, you must reconfigure the report server database connection for each report server in the deployment.

Realize as etapas a seguir para mover os bancos de dados:Use the following steps to move the databases:

  1. Faça backup das chaves de criptografia para o banco de dados do servidor de relatório que deseja mover.Backup the encryption keys for the report server database you want to move. Você pode usar a ferramenta Configuração do Reporting ServicesReporting Services para fazer backup das chaves.You can use the Reporting ServicesReporting Services Configuration tool backup the keys.

  2. Pare o serviço do servidor de relatório.Stop the Report Server service. Você pode usar a ferramenta Configuração do Reporting ServicesReporting Services para parar o serviço.You can use the Reporting ServicesReporting Services Configuration tool to stop the service.

  3. Inicie o SQL ServerSQL Server Management StudioManagement Studio e abra uma conexão com a instância do SQL ServerSQL Server que hospeda os bancos de dados do servidor de relatório.Start SQL ServerSQL Server Management StudioManagement Studio and open a connection to the SQL ServerSQL Server instance that hosts the report server databases.

  4. Clique com o botão direito do mouse no banco de dados do servidor de relatório, aponte para Tarefas e clique em Desanexar.Right-click the report server database, point to Tasks, and click Detach. Repita esta etapa para o banco de dados temporário do servidor de relatório.Repeat this step for the report server temporary database.

  5. Copie ou mova os arquivos .mdf e .ldf para a pasta Dados da instância do SQL ServerSQL Server que deseja usar.Copy or move the .mdf and .ldf files to the Data folder of the SQL ServerSQL Server instance you want to use. Como dois bancos de dados estão sendo movidos, certifique-se de mover ou copiar os quatro arquivos.Because you are moving two databases, make sure that you move or copy all four files.

  6. No Management StudioManagement Studio, abra uma conexão com a nova instância do SQL ServerSQL Server que hospedará os bancos de dados do servidor de relatório.In Management StudioManagement Studio, open a connection to the new SQL ServerSQL Server instance that will host the report server databases.

  7. Clique com o botão direito do mouse no nó Bancos de dados e clique em Anexar.Right-click the Databases node, and then click Attach.

  8. Clique em Adicionar para selecionar os arquivos .mdf e .ldf do banco de dados do servidor de relatórios que deseja anexar.Click Add to select the report server database .mdf and .ldf files that you want to attach. Repita esta etapa para o banco de dados temporário do servidor de relatório.Repeat this step for the report server temporary database.

  9. Após anexar os bancos de dados, verifique se RSExecRole é uma função de banco de dados no banco de dados do servidor de relatório e no banco de dados temporário.After the databases are attached, verify that the RSExecRole is a database role in the report server database and temporary database. RSExecRole deve ter permissões para selecionar, inserir, atualizar, excluir e fazer referência nas tabelas do banco de dados do servidor de relatório e permissões de execução nos procedimentos armazenados.RSExecRole must have select, insert, update, delete, and reference permissions on the report server database tables, and execute permissions on the stored procedures. Para mais informações, veja Criar o RSExecRole.For more information, see Create the RSExecRole.

  10. Inicie a ferramenta Configuração do Reporting ServicesReporting Services e abra uma conexão com o servidor de relatório.Start the Reporting ServicesReporting Services Configuration tool and open a connection to the report server.

  11. Na página Banco de dados, selecione a nova instância do SQL ServerSQL Server e clique em Conectar.On the Database page, select the new SQL ServerSQL Server instance, and then click Connect.

  12. Selecione o banco de dados do servidor de relatório que acaba de ser movido e clique em Aplicar.Select the report server database that you just moved, and then click Apply.

  13. Na página Chaves de Criptografia, clique em Restaurar.On the Encryption Keys page, click Restore. Especifique o arquivo que contém a cópia de backup das chaves e a senha para desbloquear o arquivo.Specify the file that contains the backup copy of the keys and the password to unlock the file.

  14. Reinicie o serviço Servidor de Relatório.Restart the Report Server service.

Fazendo backup e restaurando os bancos de dados do servidor de relatórioBacking Up and Restoring the Report Server Databases

Se não for possível colocar o servidor de relatório offline, use o recurso de backup e restauração para realocar os bancos de dados do servidor de relatório.If you cannot take the report server offline, you can use backup and restore to relocate the report server databases. Você deve usar instruções Transact-SQLTransact-SQL para fazer o backup e a restauração.You must use Transact-SQLTransact-SQL statements to do the backup and restore. Depois de restaurar os bancos de dados, configure o servidor de relatório para usar o banco de dados na nova instância do servidor.After you restore the databases, you must configure the report server to use the database on the new server instance. Para obter mais informações, consulte as instruções no final deste tópico.For more information, see the instructions at the end of this topic.

Usando BACKUP e COPY_ONLY para fazer backup dos bancos de dados do servidor de relatórioUsing BACKUP and COPY_ONLY to Backup the Report Server Databases

Ao fazer backup dos bancos de dados, defina o argumento COPY_ONLY.When backing up the databases, set the COPY_ONLY argument. Faça backup dos bancos de dados e dos arquivos de 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  

Usando RESTORE e MOVE para realocar os bancos de dados do servidor de relatórioUsing RESTORE and MOVE to Relocate the Report Server Databases

Ao restaurar os bancos de dados, inclua o argumento MOVE para especificar um caminho.When restoring the databases, be sure to include the MOVE argument so that you can specify a path. Use o argumento NORECOVERY para executar a restauração inicial; isso mantém o banco de dados no estado RESTORING, permitindo que você tenha tempo de revisar os backups de log para determinar qual deve ser restaurado.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. A etapa final repete a operação RESTORE com o argumento RECOVERY.The final step repeats the RESTORE operation with the RECOVERY argument.

O argumento MOVE usa o nome lógico do arquivo de dados.The MOVE argument uses the logical name of the data file. Para localizar o nome lógico, execute a seguinte instrução: RESTORE FILELISTONLY FROM DISK='C:\ReportServerData.bak';To find the logical name, execute the following statement: RESTORE FILELISTONLY FROM DISK='C:\ReportServerData.bak';

O exemplo a seguir inclui o argumento FILE para especificar a posição do arquivo de log a ser restaurado.The following examples include the FILE argument so that you can specify the file position of the log file to restore. Para localizar a posição do arquivo, execute a seguinte instrução: RESTORE HEADERONLY FROM DISK='C:\ReportServerData.bak';To find the file position, execute the following statement: RESTORE HEADERONLY FROM DISK='C:\ReportServerData.bak';

Ao restaurar o banco de dados e os arquivos de log, execute cada operação RESTORE separadamente.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  

Como configurar a conexão do banco de dados do servidor de relatórioHow to Configure the Report Server Database Connection

  1. Inicie o Reporting ServicesReporting Services Configuration Manager e abra uma conexão com o servidor de relatório.Start the Reporting ServicesReporting Services Configuration Manager and open a connection to the report server.

  2. Na página Banco de Dados, clique em Alterar Banco de Dados.On the Database page, click Change Database. Clique em Próximo.Click Next.

  3. Clique em Escolher um banco de dados existente do servidor de relatório.Click Choose an existing report server database. Clique em Próximo.Click Next.

  4. Selecione o SQL ServerSQL Server que agora hospeda o banco de dados do servidor de relatório e clique em Testar Conexão.Select the SQL ServerSQL Server that now hosts the report server database and click Test Connection. Clique em Próximo.Click Next.

  5. Em Nome do Banco de Dados, selecione o banco de dados do servidor de relatório que deseja usar.In Database Name, select the report server database that you want to use. Clique em Próximo.Click Next.

  6. Em Credenciais, especifique as credenciais que o servidor de relatório usará para conectar-se ao banco de dados do servidor de relatório.In Credentials, specify the credentials that the report server will use to connect to the report server database. Clique em Próximo.Click Next.

  7. Clique em Avançar e em Concluir.Click Next and then Finish.

Observação

Uma instalação do Reporting ServicesReporting Services exige que a instância do Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine inclua a função RSExecRole .A Reporting ServicesReporting Services installation requires that the Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine instance include the RSExecRole role. A criação de funções, o registro de logon e as atribuições de função ocorrem quando a conexão do banco de dados do servidor de relatório é definida por meio da ferramenta Configuração do Reporting ServicesReporting Services .Role creation, login registration, and role assignments occur when you set the report server database connection through the Reporting ServicesReporting Services Configuration tool. Se você usar abordagens alternativas (especificamente, se usar o utilitário de prompt de comando rsconfig.exe) para configurar a conexão, o servidor de relatório não estará em um estado de funcionamento.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. Talvez seja necessário gravar o código WMI para disponibilizar o servidor de relatório.You might have to write WMI code to make the report server available. Para obter mais informações, consulte Acessar o provedor WMI do Reporting Services.For more information, see Access the Reporting Services WMI Provider.

Próximas etapasNext steps

Criar o RSExecRole Create the RSExecRole
Iniciar e parar o serviço Servidor de Relatório Start and Stop the Report Server Service
Configurar uma conexão de banco de dados do Servidor de Relatório Configure a Report Server Database Connection
Configurar a conta de execução autônoma Configure the Unattended Execution Account
Gerenciador de Configurações do Servidor de Relatório Report Server Configuration Manager
Utilitário rsconfig rsconfig Utility
Configurar e gerenciar chaves de criptografia Configure and Manage Encryption Keys
Banco de dados do Servidor de RelatórioReport Server Database

Mais perguntas?More questions? Experimente perguntar no fórum do Reporting ServicesTry asking the Reporting Services forum