Compartilhar via


Movendo os bancos de dados do servidor de relatório para outro computador

É possível mover os bancos de dados do servidor de relatório usados em uma instalação atual para uma instância do SQL Server Mecanismo de Banco de Dados que está em outro computador. Os bancos de dados reportserver e reportservertempdb devem ser movidos ou copiados juntos. Uma instalação do Reporting Services exige 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 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.

  • As agendas serão recriadas na primeira vez em que o serviço do servidor de relatório for reiniciado.

  • Os trabalhos do SQL Server Agent que são usados para acionar uma agenda serão recriados na nova instância do banco de dados. Não é necessário mover os trabalhos para o novo computador, mas você pode excluir os trabalhos que não serão mais usados.

  • Assinaturas, relatórios em cache e instantâneos são preservados no banco de dados movido. Se um instantâneo não estiver captando dados atualizados depois do banco de dados ser movido, desmarque as opções de instantâneo no Gerenciador de Relatórios, clique em Aplicar para salvar suas alterações, recrie a agenda e clique em Aplicar novamente para salvar as alterações.

  • Os dados temporários de relatório e da sessão de usuário que são armazenados no reportservertempdb são persistidos quando o banco de dados é movido.

O SQL Server fornece várias abordagens para mover bancos de dados, inclusive backup e restauração, anexação e desanexação e cópia. Nem todas as abordagens são apropriadas para realocar um banco de dados existente em uma nova instância do servidor. 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. O modo mais fácil para mover os bancos de dados do servidor de relatório é anexá-los e desanexá-los. No entanto, esta abordagem requer que o servidor de relatório fique offline enquanto o banco de dados é desanexado. 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-SQL para efetuar as operações. 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.

Observação importanteImportante

As etapas descritas neste tópico são recomendadas quando a realocação do banco de dados do servidor de relatório for a única alteração feita na instalação existente. A migração de uma instalação inteira do Reporting Services (isto é, a movimentação do banco de dados e a alteração da identidade do serviço Servidor de Relatório do Windows que usa o banco de dados) requer a reconfiguração da conexão e a redefinição de uma chave de criptografia.

Desanexando e anexando os bancos de dados do servidor de relatório

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 Server a ser usada. Esta abordagem preserva as permissões nos bancos de dados. Se você estiver usando um banco de dados do SQL Server 2012, mova-o para outra instância do SQL Server 2012. Depois de mover os bancos de dados, reconfigure a conexão do servidor de relatório com o banco de dados. 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.

Realize as etapas a seguir para mover os bancos de dados:

  1. Faça backup das chaves de criptografia para o banco de dados do servidor de relatório que deseja mover. Você pode usar a ferramenta Configuração do Reporting Services para fazer backup das chaves.

  2. Pare o serviço do servidor de relatório. Você pode usar a ferramenta Configuração do Reporting Services para parar o serviço.

  3. Inicie o SQL Server Management Studio e abra uma conexão com a instância do SQL Server que hospeda os bancos de dados do servidor de relatório.

  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. Repita esta etapa para o banco de dados temporário do servidor de relatório.

  5. Copie ou mova os arquivos .mdf e .ldf para a pasta Dados da instância do SQL Server que deseja usar. Como dois bancos de dados estão sendo movidos, certifique-se de mover ou copiar os quatro arquivos.

  6. No Management Studio, abra uma conexão com a nova instância do SQL Server que hospedará os bancos de dados do servidor de relatório.

  7. Clique com o botão direito do mouse no nó Bancos de dados e clique em Anexar.

  8. Clique em Adicionar para selecionar os arquivos .mdf e .ldf do banco de dados do servidor de relatórios que deseja anexar. Repita esta etapa para o banco de dados temporário do servidor de relatório.

  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. 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. Para obter mais informações, consulte Criar o RSExecRole.

  10. Inicie a ferramenta Configuração do Reporting Services e abra uma conexão com o servidor de relatório.

  11. Na página Banco de dados, selecione a nova instância do SQL Server e clique em Conectar.

  12. Selecione o banco de dados do servidor de relatório que acaba de ser movido e clique em Aplicar.

  13. Na página Chaves de Criptografia, clique em Restaurar. Especifique o arquivo que contém a cópia de backup das chaves e a senha para desbloquear o arquivo.

  14. Reinicie o serviço Servidor de Relatório.

Fazendo backup e restaurando os bancos de dados do servidor de relatório

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. Você deve usar instruções Transact-SQL para fazer o backup e a restauração. 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. Para obter mais informações, consulte as instruções no final deste tópico.

Usando BACKUP e COPY_ONLY para fazer backup dos bancos de dados do servidor de relatório

Ao fazer backup dos bancos de dados, defina o argumento COPY_ONLY. Faça backup dos bancos de dados e dos arquivos de 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

Usando RESTORE e MOVE para realocar os bancos de dados do servidor de relatório

Ao restaurar os bancos de dados, inclua o argumento MOVE para especificar um caminho. 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. A etapa final repete a operação RESTORE com o argumento RECOVERY.

O argumento MOVE usa o nome lógico do arquivo de dados. Para localizar o nome lógico, execute a seguinte instrução: 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. Para localizar a posição do arquivo, execute a seguinte instrução: RESTORE HEADERONLY FROM DISK='C:\ReportServerData.bak';

Ao restaurar o banco de dados e os arquivos de log, execute cada operação RESTORE separadamente.

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

  1. Inicie o Reporting Services Configuration Manager e abra uma conexão com o servidor de relatório.

  2. Na página Banco de Dados, clique em Alterar Banco de Dados. Clique em Avançar.

  3. Clique em Escolher um banco de dados existente do servidor de relatórios. Clique em Avançar.

  4. Selecione o SQL Server que agora hospeda o banco de dados do servidor de relatório e clique em Testar Conexão. Clique em Avançar.

  5. Em Nome do Banco de Dados, selecione o banco de dados do servidor de relatório que deseja usar. Clique em Avançar.

  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. Clique em Avançar.

  7. Clique em Avançar e em Concluir.

ObservaçãoObservação

Uma instalação do Reporting Services requer que a instância do Mecanismo de Banco de Dados do SQL Server inclua a função RSExecRole. 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 Services. 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. Talvez seja necessário gravar o código WMI para disponibilizar o servidor de relatório. Para obter mais informações, consulte Acessar o provedor WMI do Reporting Services.

Consulte também

Tarefas

Criar o RSExecRole

Iniciar e parar o serviço Servidor de Relatório

Referência

Utilitário rsconfig (SSRS)

Conceitos

Configurar uma conexão do banco de dados do Servidor de Relatório (modo nativo)

Configure a conta de execução autônoma

Gerenciador de Configurações do Reporting Services (SSRS)

Configurar e gerenciar chaves de criptografia

Banco de Dados do Servidor de Relatório