Mover una base de datos del servidor de informes a otro equipo

Actualizado: 14 de abril de 2006

Las bases de datos del servidor de informes que se utilizan en la instalación actual se pueden mover a una instancia del motor de base de datos de SQL Server que se encuentre en un equipo diferente. Las bases de datos reportserver y reportservertempdb deben moverse o copiarse en conjunto. Una instalación de Reporting Services requiere las dos; la base de datos reportservertempdb debe estar relacionada por nombre con la base de datos reportserver primaria 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 Servidor de informes de Windows. Las suscripciones, los informes almacenados en caché y las instantáneas se mantienen en la base de datos que se ha movido. Los datos temporales de informes y de sesión de usuario que se almacenan en reportservertempdb permanecerán 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 si hay requisitos de tiempo de actividad. La manera más sencilla de mover bases de datos del servidor de informes es adjuntarlas y separarlas. Sin embargo, este método requiere la desconexión del servidor de informes 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, concretamente mediante el Asistente para copiar bases de datos, ya que no se mantiene la configuración de permisos de la base de datos.

ms156421.note(es-es,SQL.90).gifImportante:
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 utiliza la base de datos), se requiere volver a configurar la conexión y volver a establecer una clave de cifrado. Para obtener más información sobre la migración de una instalación de Reporting Services, vea Migrar Reporting Services.

Separar y adjuntar bases de datos del servidor de informes

Si es factible la desconexión del servidor de informes, existe la opción de separar las bases de datos para moverlas a la instancia de SQL Server que se desee utilizar. Con este método, se conservan los permisos de las bases de datos. Si se utiliza una base de datos de SQL Server 2005, deberá moverse a otra instancia del motor de base de datos de SQL Server 2005. 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. Detenga el servicio de Windows y el servicio Web del servidor de informes. Para detener el servicio Web del servidor de informes, puede detener el grupo de aplicaciones que aloja el servicio.
  2. Inicie SQL Server Management Studio y abra una conexión con la instancia de SQL Server que aloja las bases de datos del servidor de informes.
  3. 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.
  4. 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.
  5. En Management Studio, abra una conexión con la nueva instancia de SQL Server que alojará las bases de datos del servidor de informes.
  6. Haga clic con el botón secundario en el nodo Bases de datos y, a continuación, haga clic en Adjuntar.
  7. 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.
  8. Una vez adjuntadas las bases de datos, compruebe que RSExecRole existe como función de 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, creación, actualización, eliminación y referencia en las tablas de base de datos del servidor de informes, y permisos de ejecución en los procedimientos almacenados.
  9. Inicie la herramienta de configuración de Reporting Services y abra una conexión al servidor de informes.
  10. En la página Instalación de base de datos, seleccione la nueva instancia de SQL Server y haga clic en Conectar.
  11. Seleccione la base de datos del servidor de informes que acaba de mover y haga clic en Aplicar.
  12. Reinicie el servicio de Windows y el servicio Web del servidor de informes.

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

Si no es posible desconectar el servidor de informes, puede realizar una copia de seguridad de las bases de datos del servidor de informes y restaurarlas para cambiar su ubicación. Para realizar las operaciones de copia de seguridad y restauración, debe utilizar instrucciones Transact-SQL. SQL Server Management Studio no es compatible con las copias de seguridad de sólo copia. 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_ALL 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_ALL. 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\MSSQL.1\MSSQL\BACKUP\ReportServerData.bak'

-- Create a logical backup device, ReportServerLog.
USE master
GO
EXEC sp_addumpdevice 'disk', 'ReportServerLog', 
'C:\Program Files\Microsoft SQL Server\MSSQL.1\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\MSSQL.1\MSSQL\BACKUP\ReportServerTempDBData.bak'

-- Create a logical backup device, ReportServerTempDBLog.
USE master
GO
EXEC sp_addumpdevice 'disk', 'ReportServerTempDBLog', 
'C:\Program Files\Microsoft SQL Server\MSSQL.1\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\MSSQL.1\MSSQL\Data\ReportServer.mdf', 
      MOVE 'ReportServer_log' TO
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\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\MSSQL.1\MSSQL\Data\ReportServer.mdf', 
      MOVE 'ReportServer_log' TO
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\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\MSSQL.1\MSSQL\Data\ReportServerTempDB.mdf', 
      MOVE 'ReportServerTempDB_log' TO
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\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\MSSQL.1\MSSQL\Data\ReportServerTempDB.mdf', 
      MOVE 'ReportServerTempDB_log' TO
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\REportServerTempDB_Log.ldf';
GO

-- Perform final restore
RESTORE DATABASE ReportServer
   WITH RECOVERY
GO

-- Perform final restore
RESTORE DATABASE ReportServerTempDB
   WITH RECOVERY
GO

Cómo configurar la conexión de la base de datos del servidor de informes

  1. Inicie la herramienta de configuración de Reporting Services y abra una conexión al servidor de informes.
  2. En la página Instalación de base de datos, seleccione el servidor SQL Server que aloja ahora la base de datos del servidor de informes y haga clic en Conectar.
  3. En Nombre de la base de datos, seleccione la base de datos del servidor de informes que desea utilizar y haga clic en Aplicar.

[!NOTA] Una instalación de Reporting Services requiere que la instancia del motor de base de datos de SQL Server incluya la función RSExecRole. La creación de funciones, el registro de inicio de sesión y las asignaciones de funciones 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 de línea de comandos rsconfig.exe, para configurar la conexión, el servidor de informes no estará en estado de funcionamiento. Deberán ejecutarse otras secuencias de comandos para que el servidor de informes esté disponible. Para obtener más información, vea Secuencias de comandos para tareas administrativas y de implementación.

Vea también

Conceptos

Iniciar y detener el servicio de Windows del servidor de informes
Configurar una cuenta para procesar informes en modo desatendido
Herramienta de configuración de Reporting Services
Administrar claves de cifrado
Instalación de la base de datos del servidor de informes

Otros recursos

Información general de copia de seguridad (SQL Server)
Copias de seguridad de sólo copia
rsconfig (utilidad)

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

14 de abril de 2006

Contenido nuevo:
  • Instrucciones para realizar operaciones de adjuntar y separar.
  • Secuencia de comandos de ejemplo e instrucciones para realizar operaciones de copia de seguridad y restauración.