Movimiento de las bases de datos del servidor de informes a otro equipo (modo nativo de SSRS)

Las bases de datos del servidor de informes que se emplean en una instalación de SQL Server Motor de base de datos se pueden mover a una instancia que se encuentre en otro equipo. Las bases de datos reportserver y reportservertempdb se deben mover o copiar en conjunto. Una instalación de Reporting Services requiere ambas bases de datos. Debe relacionar la base de datos reportservertempdb por nombre con la base de datos principal reportserver que va a mover.

Se aplica a: Modo nativo de Reporting Services.

Mover una base de datos no cambia las operaciones programadas que están actualmente definidas para los elementos del servidor de informes.

  • Las programaciones se volverán a crear la primera vez que se reinicie el servicio del servidor de informes.

  • SQL Server Los trabajos de agente que se utilizan para activar una programación se volverán a crear en la nueva instancia de la base de datos. No tiene que mover los trabajos al nuevo equipo, pero quizá desee eliminar los trabajos del equipo que ya no se va a utilizar.

  • Las suscripciones, los informes almacenados en caché y las instantáneas se mantienen en la base de datos que se ha movido. Si una instantánea no recoge los datos actualizados después de mover la base de datos, desactive las opciones de instantánea. A continuación, seleccione Aplicar para guardar los cambios, volver a crear la programación y seleccione Aplicar de nuevo para guardar los cambios.

  • Los datos temporales de informes y de sesión de usuario que se almacenan en reportservertempdb permanecen al mover esa base de datos.

SQL Server proporciona varios métodos para mover bases de datos, como las operaciones de copia de seguridad y restauración, adjuntar y separar, y copiar. No todos los métodos son adecuados para reubicar una base de datos existente en una instancia de servidor nueva. El método recomendado para mover una base de datos del servidor de informes varía en función de sus requisitos de disponibilidad del sistema. La manera más sencilla de mover bases de datos del servidor de informes es adjuntarlas y separarlas. Sin embargo, este método requiere que el servidor de informes esté sin conexión mientras se separa la base de datos. Las acciones de copia de seguridad y restauración son la opción más adecuada si se quiere reducir al mínimo las interrupciones del servicio, pero deberán ejecutarse comandos Transact-SQL para realizarlas. No se recomienda copiar la base de datos, específicamente mediante el Asistente para copiar bases de datos. No conserva la configuración de permisos en la base de datos.

Importante

Los pasos que se proporcionan en este artículo se recomiendan cuando la modificación de la ubicación de la base de datos del servidor de informes es el único cambio que se realiza en la instalación existente. La migración de una instalación completa de Reporting Services requiere reconfiguración de la conexión y un restablecimiento de clave de cifrado. Por ejemplo, esta configuración es necesaria al mover la base de datos y cambiar la identidad del servicio Windows del servidor de informes que usa la base de datos.

Separar y adjuntar bases de datos del servidor de informes

Si puede poner el servidor de informes sin conexión, puede separar las bases de datos para moverlas a la instancia de SQL Server que desea usar. Con este método, se conservan los permisos de las bases de datos. Si usa una base de datos de SQL Server, debe moverla a otra instancia de SQL Server. Después de mover las bases de datos, será necesario volver a configurar la conexión del servidor de informes con la base de datos del servidor de informes. Si se utiliza una implementación escalada, será necesario volver a configurar la conexión de la base de datos del servidor de informes para cada servidor de informes de la implementación.

Lleve a cabo los siguientes pasos para mover las bases de datos:

  1. Haga una copia de seguridad de las claves de cifrado para la base de datos del servidor de informes que desea mover. Puede utilizar la herramienta de configuración Reporting Services para hacer una copia de seguridad de las claves.

  2. Detenga el servicio del servidor de informes. Puede utilizar la herramienta de configuración Reporting Services para detener el servicio.

  3. Inicie SQL Server Management Studio y abra una conexión con la instancia de SQL Server que hospeda las bases de datos del servidor de informes.

  4. Haga clic con el botón derecho en la base de datos del servidor de informes, seleccione Tareas y Separar. Repita este paso para la base de datos temporal del servidor de informes.

  5. Copie o mueva los archivos .mdf y .ldf a la carpeta de datos de la instancia de SQL Server que desea utilizar. Dado que se van a mover dos bases de datos, asegúrese de que mueve o copia los cuatro archivos.

  6. En Management Studio, abra una conexión con la nueva instancia de SQL Server que alojará las bases de datos del servidor de informes.

  7. Haga clic con el botón derecho en el nodo Bases de datos y luego seleccione Adjuntar.

  8. Seleccione Agregar para seleccionar los archivos .mdf y .ldf de la base de datos del servidor de informes que desea adjuntar. Repita este paso para la base de datos temporal del servidor de informes.

  9. Una vez adjuntadas las bases de datos, compruebe que RSExecRole existe como rol de la base de datos en la base de datos del servidor de informes y en la base de datos temporal. RSExecRole debe tener permisos de selección, inserción, actualización, eliminación y referencia en las tablas de base de datos del servidor de informes, además de permisos de ejecución en los procedimientos almacenados. Para obtener más información, vea Crear el RSExecRole.

  10. Inicie la herramienta de configuración de Reporting Services y abra una conexión con el servidor de informes.

  11. En la página Base de datos, seleccione la nueva instancia de SQL Server y seleccione Conectar.

  12. Elija la base de datos del servidor de informes que acaba de mover y seleccione Aplicar.

  13. En la página Claves de cifrado, seleccione Restaurar. Especifique el archivo que contiene la copia de seguridad de las claves y la contraseña para desbloquear el archivo.

  14. Reinicie el servicio del servidor de informes.

Realizar copias de seguridad de las bases de datos del servidor de informes y restaurarlas

Si no es posible que el servidor de informes esté sin conexión, puede realizar una copia de seguridad de las bases de datos del servidor de informes y restaurarlas para cambiar su ubicación. Debe usar instrucciones Transact-SQL para realizar copias de seguridad y restauraciones. Después de restaurar las bases de datos, debe configurar el servidor de informes para que utilice la base de datos en la nueva instancia del servidor. Para obtener más información, vea las instrucciones que se incluyen al final de este artículo.

Usar BACKUP y COPY_ONLY para la copia de seguridad de las bases de datos del servidor de informes

Cuando realice copias de seguridad de las bases de datos, establezca el argumento COPY_ONLY. Asegúrese de incluir ambas bases de datos y los archivos de registro en la copia de seguridad.

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

Usar RESTORE y MOVE para cambiar la ubicación de las bases de datos del servidor de informes

Al restaurar las bases de datos, no olvide incluir el argumento MOVE para especificar una ruta de acceso. Use el argumento NORECOVERY para realizar la restauración inicial. Este argumento hace que la base de datos permanezca en estado RESTORING y tendrá tiempo para revisar las copias de seguridad de los registros y determinar cuál desea restaurar. En el último paso se repite la operación RESTORE con el argumento RECOVERY.

El argumento MOVE utiliza el nombre lógico del archivo de datos. Para encontrar el nombre lógico, ejecute la siguiente instrucción: RESTORE FILELISTONLY FROM DISK='C:\ReportServerData.bak';.

En los ejemplos siguientes se incluye el argumento FILE para poder especificar la posición del archivo de registro que se desea restaurar. Para encontrar la posición del archivo, ejecute la siguiente instrucción: RESTORE HEADERONLY FROM DISK='C:\ReportServerData.bak';.

Al restaurar la base de datos y los archivos de registro, cada operación RESTORE se debe ejecutar por separado.

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

Configurar la conexión de la base de datos del servidor de informes

  1. Inicie el Administrador de configuración de Reporting Services y abra una conexión con el servidor de informes.

  2. En la página Base de datos, seleccione Cambiar base de datos. Elija Siguiente.

  3. Seleccione Elegir una base de datos del servidor de informes existente. Elija Siguiente.

  4. Seleccione SQL Server que ahora aloja la base de datos del servidor de informes y elija Probar conexión. Seleccione Siguiente.

  5. En Nombre de la base de datos, seleccione la base de datos del servidor de informes que desea utilizar. Seleccione Siguiente.

  6. En Credenciales, especifique las credenciales que utilizará el servidor de informes para conectarse a la base de datos del servidor de informes. Seleccione Siguiente.

  7. Seleccione Siguiente y luego elija Finalizar.

Nota:

Una instalación de Reporting Services requiere que la instancia Motor de base de datos de SQL Server incluya el rol RSExecRole . La creación de roles, el registro de inicio de sesión y las asignaciones de roles tienen lugar cuando se establece la conexión de la base de datos del servidor de informes a través de la herramienta de configuración de Reporting Services . Si se utilizan métodos alternativos (concretamente, si se utiliza la herramienta del símbolo del sistema rsconfig.exe) para configurar la conexión, el servidor de informes no estará en estado de funcionamiento. Es posible que tenga que escribir código WMI para que el servidor de informes esté disponible. Para obtener más información, vea Obtener acceso al proveedor WMI de Reporting Services.

Creación de RSExecRole
Iniciar y detener el servicio del servidor de informes
Configure a report server database connection (Configurar una conexión de base de datos del servidor de informes)
Configuración de la cuenta de ejecución desatendida
Administrador de configuración del servidor de informes
Utilidad rsconfig
Configurar y administrar las claves de cifrado
Base de datos del servidor de informes

¿Tiene alguna pregunta más? Puede plantear sus dudas en el foro de Reporting Services.