El caso es que la operativa que seguimos era la de actualizar in-place dicho servicio, pues no se disponía de otra máquina en la que instalar desde cero. Así que, una vez salvados todos los archivos de configuración, todas las bases de datos y demás objetos importantes del sistema, ejecutamos el programa de instalación de SQL Server 2005, marcando la opción de Reporting Services. Indicamos que queremos actualizar el servicio actualmente instalado y comienza la migración. Fácil, limpio, sencillo…
Bueno, pues cuál fue la cara de sorpresa cuando de repente aparece el siguiente mensaje de error en mitad del proceso (el texto está copiado de los logs de instalación):
UpgradeInstruction = Connect to SQL instance nombre_máquinanombre_instancia as sysadmin
sqlupgrademessage = el programa de instalación de sql server ha encontrado el siguiente problema: [sql server][sql native client][sql server] no se puede buscar el usuario ‘rsexecrole’ porque no existe o el usuario no tiene permiso.. Para continuar, corrija el problema y vuelva a ejecutar la instalación
No sé vosotros, pero a mí se me quedó una cara cuando vi este mensaje cuanto menos curiosa. RSExecRole es una función que debe existir en las bases de datos de informes (ReportServer y ReportServerTempDB) para que el servicio de informes funcione correctamente, y no había ninguna razón para que apareciera ese mensaje. De hecho, ni siquiera indicaba que no existiera la función, sino el usuario rsexecrole. Aún así investigué en esas bases de datos, me conecté con el usuario que usaba el servicio, probé la funcionalidad… nada hacía indicar un error relativo a dicho rol.
Como tenía esa opción, probé a instalar Reporting Services 2005 como una nueva instancia en ese servidor y usar las mismas bases de datos de informes del servicio antiguo (que por supuesto había dejado de funcionar), para posteriormente actualizarlas a la nueva versión (es posible hacer esto desde la configuración de Reporting). Y nuevamente ese paso de actualizar las bases de datos falló. Mismo mensaje, mismo error, misma situación.
Así que recurrí a Google, para ver si alguien había tenido ese mismo problema. Después de mucho buscar, encontré una pequeña respuesta en una pregunta de un foro en la que decía que la única solución que había encontrado era crear nuevas bases de datos y posteriormente seleccionar las antiguas. Así que probé… y funcionó!!!!
Bueno, supongo que a errores absurdos le corresponden soluciones igual de absurdas. Así que ya sabes, si alguna vez te encuentras con el mensaje anterior al intentar actualizar el esquema de una base de datos de Reporting Services 2000 a 2005, prueba a crear primeramente las bases de datos (que posteriormente podrás eliminar porque estarán vacías de contenido) para luego seleccionar las antiguas. La actualización del esquema debería funcionar ahora sin problemas.