Friday, March 23, 2012

reporting services 2000 and 2005 - same database server

We have reporting services 2000 running, with the reportserver and
reportservertemp databases on sql server 2005 on another machine. I
wanted to install reporting services 2005 on a separte machine (3rd
machine), but create the system report server databases (with
different names) on the same sql server as the current database
server, where reporting services 2000 system databases are present.
I installed reporting services, and when I use the configuration tool
to make the database setup, I'm getting the error that the databases
cannot be created, probably because I do not have sufficient
permissions. In spite of this message, the databases are created on
the server. I am the local administrator the sql server machine and
the machine on which I am trying to install reporting services 2005.
Also I am sysadmin on sql server.
When I try to set up the reporting services system databases on a
different sql server it works fine. So my question is whether it is
not possible to install system databases of 2000 and 2005 reporting
services on a single sql server 2005 database server? If yes, can you
please recomment some troubleshooting tips?
Thanks,
JohnIt does not seem to be a problem of two different versions of
reporting services databases on the same sql server. On further
testing, I found that I can set the reporting services system
databases on some remote database servers and not on some; whether the
database server already has a reporting service system database
doesn't seem to be causing the error.
Still looking for ways to troubleshoot.
John|||I figured what was the problem. First I used the reporting services
configuration tool to generate the scripts, and then ran the scripts
on the database server. The problem is that the reporting services
2005 sp2 configuration tool created script is not perfect, if the
system database is named other than ReportServer.
Portion of the generated script is attached below. Note that the
system database I specified was ReportServer2005 and so the other db
would be ReportServer2005TempDB. Now towards the end of the script,
note that it is referring to ReportServerTempdb, instead of
ReportServer2005TempDB, and that was really giving the error. Can't
believe Microsoft could had messed up like that!
IF NOT EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name =N'ReportServer2005') CREATE DATABASE [ReportServer2005] COLLATE
Latin1_General_CI_AS_KS_WS
GO
IF NOT EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name =N'ReportServer2005TempDB') CREATE DATABASE [ReportServer2005TempDB]
COLLATE Latin1_General_CI_AS_KS_WS
GO
...
ELSE BEGIN
INSERT INTO [ReportServerTempdb].[dbo].[ChunkData] (
ChunkId, SnapshotDataId, ChunkFlags, ChunkName,
ChunkType, Version, MimeType, Content )
SELECT
NEWID(), @.SnapshotId, @.ChunkFlags, @.ChunkName,
@.ChunkType, @.Version, @.MimeType, ISNULL(Linked.Content,
Original.Content)
FROM [Catalog] Original
LEFT OUTER JOIN [Catalog] Linked WITH (INDEX(PK_Catalog)) ON
(Original.LinkSourceId = Linked.ItemId)
WHERE Original.ItemId = @.ItemId AND
NOT EXISTS (
SELECT *
FROM [ReportServerTempdb].[dbo].[ChunkData]
WHERE SnapshotDataId = @.SnapshotId AND
ChunkName = @.ChunkName AND
ChunkType = @.ChunkType )
END

No comments:

Post a Comment