我们的服务器崩溃了。我们将其备份并运行,但是,上述数据库已损坏。
是否有编程/自动方式重建或重新安装SSRS数据库?
如果不:
最佳答案
1。
您可以通过在setup.exe中使用.ini文件来自动执行SQL的初始安装。在那之后,您应该备份数据库。但是似乎您还没有。
如果仍然要重建数据库,则可以删除然后使用SSRS配置工具来重建它们。
如果要自动执行此操作,则需要编写一个数据库删除脚本,创建角色创建(RSExecRole),然后运行此处的Catalog.sql和CatalogTempDB.sql脚本,但是我认为您不应该这样做这样做,只需备份-更轻松!
X:\ Program Files \ Microsoft SQL Server \ MSRS10.X \ Reporting Services \ ReportServer
2。
我将使用RSScripter移动需要运行Web服务的对象。看来您只能访问数据库,这使您的工作更加困难。您需要确定哪些表包含订阅数据,然后将这些数据移到新数据库中。您还需要将旧的报告ID转换为新的报告ID,因为它们在新安装中已更改-如果它们是唯一的,则可以通过匹配报告名称来完成。如果可能的话,我将尝试手动重建它们。
这是我用来查看订阅的查询,也许会有所帮助...
USE ReportServer
go
WITH
[Sub_Parameters] AS
(
SELECT
[SubscriptionID],
[Parameters] = CONVERT(XML,a.[Parameters])
FROM [Subscriptions] a
),
[MySubscriptions] AS
(
SELECT DISTINCT
[SubscriptionID],
[ParameterName] = QUOTENAME(p.value('(Name)[1]', 'nvarchar(max)')),
[ParameterValue] = p.value('(Value)[1]', 'nvarchar(max)')
FROM
[Sub_Parameters] a
CROSS APPLY [Parameters].nodes('/ParameterValues/ParameterValue') t(p)
),
[SubscriptionsAnalysis] AS
(
SELECT
a.[SubscriptionID],
a.[ParameterName],
[ParameterValue] =
(SELECT
STUFF((
SELECT [ParameterValue] + ', ' as [text()]
FROM [MySubscriptions]
WHERE
[SubscriptionID] = a.[SubscriptionID]
AND [ParameterName] = a.[ParameterName]
FOR XML PATH('')
),1, 0, '')
+'')
FROM [MySubscriptions] a
GROUP BY a.[SubscriptionID],a.[ParameterName]
)
SELECT
a.[SubscriptionID],
c.[UserName] AS Owner,
b.Name,
b.Path,
a.[Locale],
a.[InactiveFlags],
d.[UserName] AS Modified_by,
a.[ModifiedDate],
a.[Description],
a.[LastStatus],
a.[EventType],
a.[LastRunTime],
a.[DeliveryExtension],
a.[Version],
e.[ParameterName],
LEFT(e.[ParameterValue],LEN(e.[ParameterValue])-1) as [ParameterValue],
SUBSTRING(b.PATH,2,LEN(b.PATH)-(CHARINDEX('/',REVERSE(b.PATH))+1)) AS ProjectName
FROM
[Subscriptions] a
INNER JOIN [Catalog] AS b
ON a.[Report_OID] = b.[ItemID]
LEFT OUTER JOIN [Users] AS c
ON a.[OwnerID] = c.[UserID]
LEFT OUTER JOIN [Users] AS d
ON a.MODIFIEDBYID = d.Userid
LEFT OUTER JOIN [SubscriptionsAnalysis] AS e
ON a.SubscriptionID = e.SubscriptionID
ORDER BY projectname
关于sql - 如何重建/重新安装ssrs(reportserver,reportservertempdb)数据库?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16929132/