我们的服务器崩溃了。我们将其备份并运行,但是,上述数据库已损坏。

是否有编程/自动方式重建或重新安装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/

    10-11 01:59
    查看更多