SQL中的ReportServer数据库是什么数据库?
里面的数据库有个4个
2个文件夹是系统数据库和数据库快照
下面还2个数据库是
ReportServer和ReportServerTempDB
请问这两个数据库是干什么的?有什么用? 展开
一、Report Server数据库:
是一个SQL Server数据库。它能够存储SSRS配置部分,报告定义,报告元数据,报告历史,缓存政策,快照,资源,安全设置,加密的数据,调度和提交数据,以及扩展信息。
注意事项:尽管用户能够直接存取在SSRS目录下的数据库并且能够直接修改SSRS使用的对象;但在实践中,不推荐(或不支持)这样做,因为在SSRS目录下的内在数据和结构不能被保证与不同版本的SSRS、服务包或补丁相兼容。
需要把Report Server数据库当作产品数据库之一来对待。尽管许多开发人员都习惯把RDL存储在一个单独的仓库中,并因此导致经常恢复RDL。但是,损失快照数据能够带来消极的业务影响。
例如,用户可能使用快照的报告"相对静止"数据的能力来作一些业务决定。
二、ReportServerTempDB数据库:
是SSRS使用的临时数据库。这个数据库负责存储中间处理结果,例如报表服务器生成的会话和执行数据、缓存报表以及工作表。
正常情况下,Report Server能够周期性地清ReportServerTempDB中的到期的和孤立的数据。后台进程定期清理时间间隔由参数CleanupCycleMinutes控制,这个参数位于
<Installation Drive>\<Program Files or Program Files(x86)>\Microsoft SQL Server\<SSRS Instance>\Reporting Services\ReportServer 下的rsreportserver.config配置文件中。
注意事项:为了把临时快照存储在文件系统而不是数据库中,管理员应该完成下列步骤。
1、修改RSReportServer.config,并把WebServiceUseFileShareStorage和WindowsServiceUseFileShareStorage设置为True。
2、把FileShareStorageLocation设置为一个全称路径。默认路径是"C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\RSTempFiles"。
不同于SQL Server的tempdb,当在ReportServerTempDB中的数据存储时限超过SQL Server时,Report Server将会重启。
而且,Report Server能够周期性地清除ReportServerTempDB中的到期的和孤立的数据。 在任何时间,所有的ReportServerTempDB中的数据都能够被以最小(或毫无)影响删除掉。
扩展资料:
ReportServerTempDB增长异常的处理:
1、首先停止SSRS服务,删除SessionDate表的数据。
2、 然后启动SSRS服务,收缩ReportServerTempDB数据库。
如果磁盘空间足够的情况下,就不要收缩ReportServerTempDB数据库了。如果磁盘空间实在紧张,那么收缩也是必须的。
如果还存在dbo.SessionData不断增长的情况,最好创建做一个作业,每天定期清理那些过期的会话信息。
参考资料:
一、Report Server数据库:
是一个SQL Server数据库。它能够存储SSRS配置部分,报告定义,报告元数据,报告历史,缓存政策,快照,资源,安全设置,加密的数据,调度和提交数据,以及扩展信息。
注意事项:尽管用户能够直接存取在SSRS目录下的数据库并且能够直接修改SSRS使用的对象;但在实践中,不推荐(或不支持)这样做,因为在SSRS目录下的内在数据和结构不能被保证与不同版本的SSRS、服务包或补丁相兼容。
需要把Report Server数据库当作产品数据库之一来对待。尽管许多开发人员都习惯把RDL存储在一个单独的仓库中,并因此导致经常恢复RDL。但是,损失快照数据能够带来消极的业务影响。
例如,用户可能使用快照的报告"相对静止"数据的能力来作一些业务决定。
二、ReportServerTempDB数据库:
是SSRS使用的临时数据库。这个数据库负责存储中间处理结果,例如报表服务器生成的会话和执行数据、缓存报表以及工作表。
正常情况下,Report Server能够周期性地清ReportServerTempDB中的到期的和孤立的数据。后台进程定期清理时间间隔由参数CleanupCycleMinutes控制,这个参数位于
<Installation Drive>\<Program Files or Program Files(x86)>\Microsoft SQL Server\<SSRS
Instance>\Reporting Services\ReportServer 下的rsreportserver.config配置文件中。
扩展资料
ReportServer数据库代码:
1,exec sp_reset_connection
2,exec GetMyRunningJobs @ComputerName=N'WAXDOLL',@JobType=0
3,exec sp_reset_connection
4,exec ObjectExists @Path=N'/Test1/TestReport',@AuthType=1
5,exec ObjectExists @Path=N'/Test1',@AuthType=1
这段T-SQL语句的作用就是调用ReportServer数据库中的存储过程完成报表的部署工作,分析如下:
第1行sp_reset_connection多次出现,这是SQL Server的一个系统存储过程,查不到相关文档,不过不用去管它,知道它是SQL Server用于在重新使用连接之前重置该连接的选项和设置就可以了;
第2行的存储过程GetMyRunningJobs用于获取当前用户正在运行的任务,该存储过程其实只有一个SELECT操作,可能用于返回某种标志,但不会对部署报表产生绝对影响,实在不行可以在客户端等待当前任务运行完成或直接Kill掉;
第4行的存储过程ObjectExists分别用于判断报表/Test1/TestReport是否存在,并返回下面语句中需要用到的变量@SnapshotDataID的值;
第5行的存储过程ObjectExists分别用于判断文件夹/Test1是否存在,并返回下面语句中需要用到的变量@ParentID的值;
参考资料:百度百科 - SqlServer
注意 尽管用户能够直接存取在SSRS目录下的数据库并且能够直接修改SSRS使用的对象;但在实践中,不推荐(或不支持)这样做,因为在SSRS目录下的内在数据和结构不能被保证与不同版本的SSRS、服务包或补丁相兼容。
请把Report Server数据库当作产品数据库之一来对待。尽管许多开发人员都习惯把RDL存储在一个单独的仓库中,并因此导致经常恢复RDL;但是,损失快照数据能够带来消极的业务影响。例如,用户可能使用快照的报告"相对静止"数据的能力来作一些业务决定。
SSRS使用的另一个数据库是Report Server临时数据库。这个数据库负责存储中间处理产品,例如缓冲的报告、会话和执行数据等。
注意 为了把临时快照存储在文件系统而不是数据库中,管理员应该完成下列步骤。
首先,修改RSReportServer.config,并把WebServiceUseFileShareStorage和WindowsServiceUseFileShareStorage设置为True。
然后,把FileShareStorageLocation设置为一个全称路径;默认路径是"C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\RSTempFiles"。
不同于SQL Server的tempdb,当在ReportServerTempDB中的数据存储时限超过SQL Server时,Report Server将会重启。而且,Report Server能够周期性地清除ReportServerTempDB中的到期的和孤立的数据。
在任何时间,所有的ReportServerTempDB中的数据都能够被以最小(或毫无)影响删除掉。例如,这种用户可能体验到的最小的影响是带来一种暂时的性能减弱(由于损失了缓存数据,而且失去了一个执行状态)。执行状态被存储在表SessionData中。执行状态结果的损失可能导致一个错误:"Execution 'j4j3vfblcanzv3qzcqhvml55' cannot be found (rsExecutionNotFound)"。为了解决执行状态损失问题,用户需要重新打开一个报告。
提示 SSRS不能恢复数据库中删除的ReportServerTempDB或表。为了快速地从数据库中对象的错误删除中进行恢复,应该保留一个脚本或一个空ReportServerTempDB的备份。
在一个向外扩展的发布中,SSRS目录是被跨该发布中所有的报告服务器共享的。
SQL网站教程
参考资料: http://www.etaonet.com