Friday, March 9, 2012

Problem migrating RS 2000 database to RS 2005

Hi all,
I have RS 2000 SP2 (8.00.1038.00) installed on one server. RS 2005 is
installed on another server and I followed the steps from Migrating Reporting
Services (SQL Server 2005 Books Online).
I managed to copy the MDF files ReportServer and ReportServerTempDB and
their associated log files from the SQL 2000 server to the SQL 2005 server.
They were attached in SQL 2005 successfully.
However error occurred when I tried to upgrade the database from the RS
Configuration Manager.
"There was a problem applying the database upgrade script."
----
System.Data.SqlClient.SqlException: Cannot find the user 'RSExecRole',
because it does not exist or you do not have permission.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception,
Boolean breakConnection)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException
exception, Boolean breakConnection)
at
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,
SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet
bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String
methodName, Boolean async)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult
result, String methodName, Boolean sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at ReportServicesConfigUI.SqlClientTools.SqlTools.ApplyScript(String
connectionString, String script)
The weird thing is when I repeated the procedure, I didn't see the above
error again and it managed to proceed but with errors.
"Creating a Grant Rights script for NT AUTHORITY\NetworkService
The grant rights script was generated successfully."
"The Reporting Services rights were not applied properly. The user may
still not have appropriate access to Reporting Services resources.
----
System.Data.SqlClient.SqlException: The role 'RSExecRole' does not exist in
the current database.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception,
Boolean breakConnection)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException
exception, Boolean breakConnection)
at
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,
SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet
bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String
methodName, Boolean async)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult
result, String methodName, Boolean sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at ReportServicesConfigUI.SqlClientTools.SqlTools.ApplyScript(String
connectionString, String script)
The creation of grant right script was repeated.
"Creating a Grant Rights script for NT Authority\NetworkService
The grant rights script was generated successfully."
"The Reporting Services rights were not applied properly. The user may
still not have appropriate access to Reporting Services resources.
-----
System.Data.SqlClient.SqlException: The role 'RSExecRole' does not exist in
the current database.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception,
Boolean breakConnection)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException
exception, Boolean breakConnection)
at
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,
SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet
bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String
methodName, Boolean async)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult
result, String methodName, Boolean sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at ReportServicesConfigUI.SqlClientTools.SqlTools.ApplyScript(String
connectionString, String script)
It looks like the main culprit is 'RSExecRole'. Any idea how to correct this?
Thanks.
--
Best regards,
JudeHi all,
After some investigations, I managed to get it to work and thought I'd share
it here for the benefit of all.
To migrate a RS 2000 database from a SQL Server 2000 server to another
server running SQL Server 2005, follow the steps in SQL Server 2005 Books
Online under Migrating Reporting Services.
As mentioned in my previous post, it failed at the step where the database
was upgraded. The workaround is: create a new RS database in the RS
Configuration Manager before upgrading. Do not give it the same name as the
RS database.
When this is done, you can upgrade the RS 2000 database. I managed to
migrate the RS 2000 database to RS 2005 successfully using this workaround.
Good luck.
Best regards,
Jude
"Jude Wong" wrote:
> Hi all,
> I have RS 2000 SP2 (8.00.1038.00) installed on one server. RS 2005 is
> installed on another server and I followed the steps from Migrating Reporting
> Services (SQL Server 2005 Books Online).
> I managed to copy the MDF files ReportServer and ReportServerTempDB and
> their associated log files from the SQL 2000 server to the SQL 2005 server.
> They were attached in SQL 2005 successfully.
> However error occurred when I tried to upgrade the database from the RS
> Configuration Manager.
> "There was a problem applying the database upgrade script."
> ----
> System.Data.SqlClient.SqlException: Cannot find the user 'RSExecRole',
> because it does not exist or you do not have permission.
> at System.Data.SqlClient.SqlConnection.OnError(SqlException exception,
> Boolean breakConnection)
> at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException
> exception, Boolean breakConnection)
> at
> System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
> stateObj)
> at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,
> SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet
> bulkCopyHandler, TdsParserStateObject stateObj)
> at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String
> methodName, Boolean async)
> at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult
> result, String methodName, Boolean sendToPipe)
> at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
> at ReportServicesConfigUI.SqlClientTools.SqlTools.ApplyScript(String
> connectionString, String script)
> The weird thing is when I repeated the procedure, I didn't see the above
> error again and it managed to proceed but with errors.
> "Creating a Grant Rights script for NT AUTHORITY\NetworkService
> The grant rights script was generated successfully."
> "The Reporting Services rights were not applied properly. The user may
> still not have appropriate access to Reporting Services resources."
> ----
> System.Data.SqlClient.SqlException: The role 'RSExecRole' does not exist in
> the current database.
> at System.Data.SqlClient.SqlConnection.OnError(SqlException exception,
> Boolean breakConnection)
> at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException
> exception, Boolean breakConnection)
> at
> System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
> stateObj)
> at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,
> SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet
> bulkCopyHandler, TdsParserStateObject stateObj)
> at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String
> methodName, Boolean async)
> at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult
> result, String methodName, Boolean sendToPipe)
> at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
> at ReportServicesConfigUI.SqlClientTools.SqlTools.ApplyScript(String
> connectionString, String script)
> The creation of grant right script was repeated.
> "Creating a Grant Rights script for NT Authority\NetworkService
> The grant rights script was generated successfully."
> "The Reporting Services rights were not applied properly. The user may
> still not have appropriate access to Reporting Services resources."
> -----
> System.Data.SqlClient.SqlException: The role 'RSExecRole' does not exist in
> the current database.
> at System.Data.SqlClient.SqlConnection.OnError(SqlException exception,
> Boolean breakConnection)
> at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException
> exception, Boolean breakConnection)
> at
> System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
> stateObj)
> at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,
> SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet
> bulkCopyHandler, TdsParserStateObject stateObj)
> at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String
> methodName, Boolean async)
> at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult
> result, String methodName, Boolean sendToPipe)
> at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
> at ReportServicesConfigUI.SqlClientTools.SqlTools.ApplyScript(String
> connectionString, String script)
> It looks like the main culprit is 'RSExecRole'. Any idea how to correct this?
> Thanks.
>
> --
> Best regards,
> Jude

No comments:

Post a Comment