Mover las bases de datos del servidor de informes a otro equipo (Modo nativo de SSRS)Moving the Report Server Databases to Another Computer (SSRS Native Mode)

Las bases de datos del servidor de informes que se emplean en una instalación se pueden mover a una instancia de SQL ServerSQL Server Motor de base de datosDatabase Engine que se encuentre en un equipo diferente.You can move the report server databases that are used in an installation SQL ServerSQL Server Motor de base de datosDatabase Engine to an instance that is on a different computer. Las bases de datos reportserver y reportservertempdb se deben mover o copiar en conjunto.Both the reportserver and reportservertempdb databases must be moved or copied together. Una instalación de Reporting ServicesReporting 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.A Reporting ServicesReporting Services installation requires both databases; the reportservertempdb database must be related by name to the primary reportserver database you are moving.

Se aplica a:Applies to: Reporting ServicesReporting Services Native mode. Se aplica a:Applies to: Reporting ServicesReporting Services Native mode.

Mover una base de datos no afecta a las operaciones programadas que están actualmente definidas para los elementos del servidor de informes.Moving a database does not effect scheduled operations that are currently defined for report server items.

  • Las programaciones se volverán a crear la primera vez que se reinicie el servicio del servidor de informes.Schedules will be recreated the first time that you restart the Report Server service.

  • SQL ServerSQL 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. Agent jobs that are used to trigger a schedule will be recreated on the new database instance. No tiene que mover los trabajos al nuevo equipo, pero quizá desee eliminar los trabajos del equipo que ya no se va a utilizar.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.

  • Las suscripciones, los informes almacenados en caché y las instantáneas se mantienen en la base de datos que se ha movido.Subscriptions, cached reports, and snapshots are preserved in the moved database. Si una instantánea no está recopilando 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 los cambios, vuelva a crear la programación y haga clic en Aplicar de nuevo para guardar los cambios.If a snapshot is not picking up refreshed data after the database is moved, clear the snapshot options in Report Manager, click Apply to save your changes, re-create the schedule, and click Apply again to save your changes.

  • Los datos temporales de informes y de sesión de usuario que se almacenan en reportservertempdb permanecen al mover esa base de datos.Temporary report and user session data that is stored in reportservertempdb are persisted when you move that database.

    SQL ServerSQL 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. provides several approaches for moving databases, including backup and restore, attach and detach, and copy. No todos los métodos son adecuados para reubicar una base de datos existente en una instancia de servidor nueva.Not all approaches are appropriate for relocating an existing database to a new server instance. 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.The approach that you should use to move the report server database will vary depending on your system availability requirements. La manera más sencilla de mover bases de datos del servidor de informes es adjuntarlas y separarlas.The easiest way to move the report server databases is to attach and detach them. Sin embargo, este método requiere que el servidor de informes esté sin conexión mientras se separa la base de datos.However, this approach requires that you take the report server offline while you detach the database. 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-SQLTransact-SQL para realizarlas.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. 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.Copying the database is not recommended (specifically, by using the Copy Database Wizard); it does not preserve permission settings in the database.

Importante

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.The steps provided in this topic are recommended when relocating the report server database is the only change you are making to the existing installation. Para migrar una instalación completa de Reporting ServicesReporting 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.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.

Separar y adjuntar bases de datos del servidor de informesDetaching and Attaching the Report Server Databases

Si puede poner el servidor de informes sin conexión, puede separar las bases de datos para moverlas a la instancia de SQL ServerSQL Server que desea usar.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. Con este método, se conservan los permisos de las bases de datos.This approach preserves permissions in the databases. Si usa una base de datos de SQL Server, debe moverlo a otra instancia de SQL Server.If you are using a SQL Server database, you must move it to another SQL Server instance. 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.After you move the databases, you must reconfigure the report server connection to the report server database. 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.If you are running a scale-out deployment, you must reconfigure the report server database connection for each report server in the deployment.

Lleve a cabo los siguientes pasos para mover las bases de datos:Use the following steps to move the databases:

  1. Haga una copia de seguridad de las claves de cifrado para la base de datos del servidor de informes que desea mover.Backup the encryption keys for the report server database you want to move. Puede utilizar la herramienta de configuración Reporting ServicesReporting Services para hacer una copia de seguridad de las claves.You can use the Reporting ServicesReporting Services Configuration tool backup the keys.

  2. Detenga el servicio del servidor de informes.Stop the Report Server service. Puede utilizar la herramienta de configuración Reporting ServicesReporting Services para detener el servicio.You can use the Reporting ServicesReporting Services Configuration tool to stop the service.

  3. Inicie SQL ServerSQL Server Management StudioManagement Studio y abra una conexión con la instancia de SQL ServerSQL Server que hospeda las bases de datos del servidor de informes.Start SQL ServerSQL Server Management StudioManagement Studio and open a connection to the SQL ServerSQL Server instance that hosts the report server databases.

  4. Haga clic con el botón derecho en la base de datos del servidor de informes, seleccione Tareas y haga clic en Separar.Right-click the report server database, point to Tasks, and click Detach. Repita este paso para la base de datos temporal del servidor de informes.Repeat this step for the report server temporary database.

  5. Copie o mueva los archivos .mdf y .ldf a la carpeta de datos de la instancia de SQL ServerSQL Server que desea utilizar.Copy or move the .mdf and .ldf files to the Data folder of the SQL ServerSQL Server instance you want to use. Dado que se van a mover dos bases de datos, asegúrese de que mueve o copia los cuatro archivos.Because you are moving two databases, make sure that you move or copy all four files.

  6. En Management StudioManagement Studio, abra una conexión con la nueva instancia de SQL ServerSQL Server que alojará las bases de datos del servidor de informes.In Management StudioManagement Studio, open a connection to the new SQL ServerSQL Server instance that will host the report server databases.

  7. Haga clic con el botón derecho en el nodo Bases de datos y luego haga clic en Adjuntar.Right-click the Databases node, and then click Attach.

  8. Haga clic en Agregar para seleccionar los archivos .mdf y .ldf de la base de datos del servidor de informes que desea adjuntar.Click Add to select the report server database .mdf and .ldf files that you want to attach. Repita este paso para la base de datos temporal del servidor de informes.Repeat this step for the report server temporary database.

  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.After the databases are attached, verify that the RSExecRole is a database role in the report server database and temporary database. 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.RSExecRole must have select, insert, update, delete, and reference permissions on the report server database tables, and execute permissions on the stored procedures. Para obtener más información, vea Crear el RSExecRole.For more information, see Create the RSExecRole.

  10. Inicie la herramienta de configuración de Reporting ServicesReporting Services y abra una conexión con el servidor de informes.Start the Reporting ServicesReporting Services Configuration tool and open a connection to the report server.

  11. En la página Base de datos, seleccione la nueva instancia de SQL ServerSQL Server y haga clic en Conectar.On the Database page, select the new SQL ServerSQL Server instance, and then click Connect.

  12. Seleccione la base de datos del servidor de informes que acaba de mover y haga clic en Aplicar.Select the report server database that you just moved, and then click Apply.

  13. En la página Claves de cifrado, haga clic en Restaurar.On the Encryption Keys page, click Restore. Especifique el archivo que contiene la copia de seguridad de las claves y la contraseña para desbloquear el archivo.Specify the file that contains the backup copy of the keys and the password to unlock the file.

  14. Reinicie el servicio del servidor de informes.Restart the Report Server service.

Realizar copias de seguridad de las bases de datos del servidor de informes y restaurarlasBacking Up and Restoring the Report Server Databases

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.If you cannot take the report server offline, you can use backup and restore to relocate the report server databases. Debe usar instrucciones Transact-SQLTransact-SQL para realizar copias de seguridad y restauraciones.You must use Transact-SQLTransact-SQL statements to do the backup and restore. 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.After you restore the databases, you must configure the report server to use the database on the new server instance. Para obtener más información, vea las instrucciones que se incluyen al final de este tema.For more information, see the instructions at the end of this topic.

Usar BACKUP y COPY_ONLY para la copia de seguridad de las bases de datos del servidor de informesUsing BACKUP and COPY_ONLY to Backup the Report Server Databases

Cuando realice copias de seguridad de las bases de datos, establezca el argumento COPY_ONLY.When backing up the databases, set the COPY_ONLY argument. Asegúrese de incluir ambas bases de datos y los archivos de registro en la copia de seguridad.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  

Usar RESTORE y MOVE para cambiar la ubicación de las bases de datos del servidor de informesUsing RESTORE and MOVE to Relocate the Report Server Databases

Al restaurar las bases de datos, no olvide incluir el argumento MOVE para especificar una ruta de acceso.When restoring the databases, be sure to include the MOVE argument so that you can specify a path. 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.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. En el último paso se repite la operación RESTORE con el argumento RECOVERY.The final step repeats the RESTORE operation with the RECOVERY argument.

El argumento MOVE utiliza el nombre lógico del archivo de datos.The MOVE argument uses the logical name of the data file. Para encontrar el nombre lógico, ejecute la siguiente instrucción: RESTORE FILELISTONLY FROM DISK='C:\ReportServerData.bak';To find the logical name, execute the following statement: 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.The following examples include the FILE argument so that you can specify the file position of the log file to restore. Para encontrar la posición del archivo, ejecute la siguiente instrucción: RESTORE HEADERONLY FROM DISK='C:\ReportServerData.bak';To find the file position, execute the following statement: 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.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  

Configurar la conexión de la base de datos del servidor de informesHow to Configure the Report Server Database Connection

  1. Inicie el Administrador de configuración de Reporting ServicesReporting Services y abra una conexión con el servidor de informes.Start the Reporting ServicesReporting Services Configuration Manager and open a connection to the report server.

  2. En la página Base de datos, haga clic en Cambiar base de datos.On the Database page, click Change Database. Haga clic en Siguiente.Click Next.

  3. Haga clic en Elija una base de datos del servidor de informes existente.Click Choose an existing report server database. Haga clic en Siguiente.Click Next.

  4. Seleccione SQL ServerSQL Server que ahora aloja la base de datos del servidor de informes y haga clic en Probar conexión.Select the SQL ServerSQL Server that now hosts the report server database and click Test Connection. Haga clic en Siguiente.Click Next.

  5. En Nombre de la base de datos, seleccione la base de datos del servidor de informes que desea utilizar.In Database Name, select the report server database that you want to use. Haga clic en Siguiente.Click Next.

  6. En Credenciales, especifique las credenciales que utilizará el servidor de informes para conectarse a la base de datos del servidor de informes.In Credentials, specify the credentials that the report server will use to connect to the report server database. Haga clic en Siguiente.Click Next.

  7. Haga clic en Siguiente y, a continuación, en Finalizar.Click Next and then Finish.

Nota

Una instalación de Reporting ServicesReporting Services requiere que la instancia Motor de base de datos de SQL ServerSQL Server Database Engine incluya el rol RSExecRole .A Reporting ServicesReporting Services installation requires that the Motor de base de datos de SQL ServerSQL Server Database Engine instance include the RSExecRole role. 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 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. 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.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. Es posible que tenga que escribir código WMI para que el servidor de informes esté disponible.You might have to write WMI code to make the report server available. Para obtener más información, vea Obtener acceso al proveedor WMI de Reporting Services.For more information, see Access the Reporting Services WMI Provider.

Pasos siguientesNext steps

Crear el RSExecRole Create the RSExecRole
Iniciar y detener el servicio del servidor de informes Start and Stop the Report Server Service
Configurar una conexión de base de datos del servidor de informes Configure a Report Server Database Connection
Configurar la cuenta de ejecución desatendida Configure the Unattended Execution Account
Administrador de configuración de Reporting Services Reporting Services Configuration Manager
rsconfig (utilidad) rsconfig Utility
Configurar y administrar las claves de cifrado Configure and Manage Encryption Keys
Base de datos de servidor de informesReport Server Database

¿Más preguntas?More questions? Pruebe a formular el foro de Reporting ServicesTry asking the Reporting Services forum