Mover las bases de datos del servidor de informes a otro equipo

Las bases de datos del servidor de informes que se utilizan en la instalación actual se pueden mover a una instancia SQL Server Motor de base de datos que se encuentre en un equipo diferente. Las bases de datos de reportserver y reportservertempdb se tienen que copiar y mover juntas. Una instalación de Reporting Services requiere las dos bases de datos; la base de datos reportservertempdb debe estar relacionada por nombre con la base de datos reportserver principal que se vaya a mover.

Mover una base de datos no afecta a 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 está recogiendo los datos actualizados después de que se mueve la base de datos, borre las opciones de instantánea en Administrador de informes, haga clic en Aplicar para guardar sus cambios, vuelva a crear la programación y haga clic en 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 operaciones de copia de seguridad y restauración son la opción más adecuada si se desean 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, en especial mediante el Asistente para copiar bases de datos, ya que no se conserva la configuración de permisos de la base de datos.

Nota importanteImportante

Los pasos que se proporcionan en este tema 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. Para migrar una instalación completa de Reporting Services (es decir, mover la base de datos y cambiar la identidad del servicio Windows del servidor de informes que usa la base de datos), es necesario volver a configurar la conexión y restablecer una clave de cifrado.

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 utiliza una base de datos de SQL Server 2012, debe moverla a otra instancia de SQL Server 2012. 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 secundario en la base de datos del servidor de informes, seleccione Tareas y haga clic en 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 secundario en el nodo Bases de datos y, a continuación, haga clic en Adjuntar.

  8. Haga clic en 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 haga clic en Conectar.

  12. Seleccione la base de datos del servidor de informes que acaba de mover y haga clic en Aplicar.

  13. En la página Claves de cifrado, haga clic en 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 tema.

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

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; de esta manera, la base de datos se mantendrá 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, haga clic en Cambiar base de datos. Haga clic en Siguiente.

  3. Haga clic en Elija una base de datos del servidor de informes existente. Haga clic en Siguiente.

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

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

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

  7. Haga clic en Siguiente y, a continuación, en Finalizar.

[!NOTA]

Una instalación 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.

Vea también

Tasks

Crear el RSExecRole

Iniciar y detener el servicio del servidor de informes

Referencia

rsconfig (utilidad) (SSRS)

Conceptos

Configurar una conexión a la base de datos del servidor de informes (modo nativo)

Configurar la cuenta de ejecución desatendida

Administrador de configuración de Reporting Services (SSRS)

Configurar y administrar las claves de cifrado

Instalación de la base de datos del servidor de informes