维护规划服务器数据库

更新: 2009-04-30

本文内容:

  • Background of Planning Server databases

  • Application databases in Planning Server

  • Staging databases in Planning Server

  • Outbound databases in Planning Server

  • Analysis Services databases in Planning Server

  • Planning Server physical database storage design

本文适用于 规划服务器数据库管理员。它概述了某些特定于 Microsoft Office PerformancePoint Server 2007 的数据库实现方面。我们建议数据库管理员在准备生产系统实现时阅读本文档。

规划服务器数据库的背景信息

物理数据库存储设计直接影响数据库的性能。通常,在设计系统数据库的物理存储属性时,规划服务器用户具有一定程度的灵活性。本文介绍的是维护规划服务器数据库使其获得最佳服务器系统性能的设计准则。

规划系统数据库和规划服务数据库

安装的每个规划服务器都包含一个规划系统数据库 (PPSPlanningSystem) 和一个规划服务数据库 (PPSPlanningService)。

规划系统数据库包含以下组件:

  • 规划系统安全数据

  • 计划类型库数据

  • 规划系统级配置数据

  • 规划应用程序级元数据

规划系统数据库和规划服务数据库都较小,并且会保持相对较小的状态。

规划系统数据库和规划服务数据库可以手动创建或在运行 规划服务器配置管理器时创建。

如果选择让规划服务器配置管理器为您创建这两个数据库,则这两个数据库将放置在主文件组中,默认的数据文件大小设置为 50 MB,并按每次 50 MB 自动增长。默认的日志文件大小设置为 20 MB,并按每次 20 MB 自动增长。

如果选择手动创建这两个数据库,则可以选择文件组并更改初始数据库大小和日志文件大小的默认设置。

规划服务器中的应用数据库

规划系统可由多个规划应用程序组成。每个规划应用程序都有一个规划应用数据库。此应用数据库包含所有规划应用程序数据,其中包括规划应用程序元数据、引用数据、事实数据、工作流程相关数据和 Service Broker 数据。此数据库可以增加到很大,具体取决于您的数据保留策略以及相应规划应用程序内的模型站点数和模型数。

应用数据库是在创建应用程序过程中创建的。您可以选择以手动或自动方式创建应用数据库。

在 规划管理控制台中,您可以从“创建应用程序”用户界面中选中“生成可手动执行的应用程序创建脚本”选项****,以便数据库管理员在应用程序创建过程中自定义 CREATE DATABASE/CREATE TABLE。更明确地说,数据库管理员可在创建应用数据库时添加文件组信息,并指定初始数据文件的大小和初始日志文件的大小。在应用程序创建过程中生成 Microsoft SQL Server 2005 脚本之后,数据库管理员可以编辑 CreateAppDB.sql 和 TypeLibMasterSchema.sql,将文件组信息以及数据文件大小和日志文件大小添加到这些脚本中,然后再手动加以执行。

另一种方法是从“创建应用程序”用户界面中选择“自动执行应用程序创建脚本”选项****。系统会为您创建应用数据库,默认的初始数据文件大小设置为 50 MB,并按每次 50 MB 自动增长。默认的日志文件大小设置为 20 MB,并按每次 20 MB 自动增长。

规划服务器中的临时数据库

每个规划应用程序都有一个规划临时数据库。此临时数据库可以在应用程序创建过程中创建,也可以在以后手动创建。对于版本 1,临时数据库必须位于其对应的应用数据库所在的数据库服务器上。

规划服务器中的出站数据库

规划出站数据库包含用于其他目的的规划服务器数据。您可以使用规划管理控制台,将数据库创建或注册为数据目标。

规划服务器中的 Analysis Services 数据库

规划服务器应用程序的模型站点始终对应于单个 Microsoft SQL Server 2005 Analysis Services 数据库。该 Analysis Services 数据库的名称由规划服务器自动生成。默认名称为 <application label>_<model site label>

您可以将规划应用程序的所有模型站点配置为指向同一 Analysis Services 服务器,而每个模型站点分别指向不同的 Analysis Services 数据库。也可以将您的配置设置为使规划应用程序内的所有模型站点都指向其他 Analysis Services 服务器上的 Analysis Services 数据库。您可以通过以下方式管理这些配置:使用规划管理控制台并导航到“编辑模型站点”窗口。在“Analysis Services 服务器名称”字段为****每个模型站点输入值。有关完整的详细信息,请参阅规划管理控制台帮助。

注意注意:

如果删除一个模型站点或子站点,则需要手动删除 Analysis Services 多维数据集。

规划服务器物理数据库存储设计

设计规划服务器数据库的物理存储时,请遵循 SQL Server 中的数据库存储设计主题进行操作。物理数据库存储设计对规划服务器系统的总体性能至关重要。良好的物理数据库实现可以得到更好的性能和更好的系统运行状况。

本部分说明物理数据库存储设计的以下方面:数据库数据文件和日志文件位置、初始文件大小、正确配置日志文件以获得良好性能、文件组设计、规划服务器系统的良好 TempDB 设计和数据库恢复模型。SQL Server 中介绍了许多常用设计准则。

数据库数据文件和日志文件

SQL Server 2005 将数据库映射到一组操作系统文件。数据和日志信息永远不会混合在同一文件中,单个文件仅供一个数据库使用。有关数据库数据文件和日志文件的详细信息,请参阅 SQL Server

对于所有由规划服务器自动创建的规划服务器数据库,默认的初始数据文件大小设置为 50 MB,并按每次 50 MB 自动增长。

对于应用数据库和临时数据库,我们建议客户的规划服务器数据库管理员进行容量规划,并使用组织的数据和数据保留策略来确定初始数据文件的合理大小。例如,确定他们希望该应用程序中包含多少个模型站点,以及每个模型站点中又包含多少个模型。

设计数据库数据文件和日志文件时应遵循的一些通用准则包括:

  • 允许数据库数据文件和日志文件自动增长。

  • 为数据库和日志文件分配合理的初始大小。

  • 设置数据文件的最大大小,以避免耗尽磁盘空间(在存在多个数据库时尤为重要)。

  • 将数据文件的大小增量设置为合理的大小(首选项:固定增量小于或等于 1 GB,即时文件初始化会非常有用)。

  • 考虑启用数据文件即时初始化。

  • 考虑将 RAID 技术用于数据文件和日志文件。

  • 只分配一个日志文件。

  • 将日志文件放置在单独的驱动器上(为获得更好的性能,应将日志文件和数据文件分别放置在不同的物理磁盘上)。

监控日志文件也很重要。您可运行以下查询来监控日志文件的状态:

select * from 
sys.dm_os_performance_counters 
where counter_name like '%Log%'
and instance_name = 'Alpine_Ski_House_AppDB'

有关详细信息,请参阅 SQL Server

预先分配日志文件大小

为了最大限度地减小日志文件的自动增长率,我们建议您向日志预先分配适当的大小。日志文件的大小取决于以下两个因素:日志备份的频率和规划服务器系统的活动情况。

尽管通用准则是将日志文件的大小预先分配为数据库文件大小的 10% 或 15%,但实际的日志文件大小取决于日志备份的频率。

如果您每五分钟备份一次日志文件,并且规划活动情况正常,我们建议您按以下方式分配日志文件的初始大小:

  • 规划系统数据库:50 MB

  • 规划服务数据库:200 MB

  • 规划应用数据库:1 GB

  • 规划临时数据库:1 GB

  • 规划出站数据库:400 MB

您可以根据自己的日志备份频率更改这些数字。例如,如果您每 10 分钟备份一次日志,则需要将日志文件的初始大小设置得大一些。如果您每两分钟备份一次日志文件,则可以分配一个较小的日志文件大小。

除了适当的初始日志文件大小之外,我们还建议您将日志文件设置为按固定的自动增长量(而不是百分比)自动增长,并设置日志可以增大到的最大大小。(请不要将大小设置为无限增长)。

最大限度地减小虚拟日志文件 (VLF) 对 SQL Server 的性能也很重要。有关执行此任务的详细信息,请参阅 SQL Server

备份日志文件

定期备份日志文件非常重要。在生产系统中,强烈建议您安排运行 SQL Server 的计算机定期执行日志备份(例如每 5 分钟或 10 分钟)以避免数据丢失。如果您的数据库恢复模式为“完全”并且长时间没有备份日志,则日志会持续增长直到您收到错误“日志已满”。

执行日志备份所耗的开销很小,因此频繁的备份并不会耗费很多资源。日志文件越是零碎,日志备份所需的开销就越多。这就是务必要给系统预先分配一个大小合理的日志文件的原因;它将使日志备份获得更好的性能。

如果日志文件已满,您可以执行的唯一操作就是备份该日志。备份日志将清除非活动日志,日志文件将会缩小。备份日志时不会清除活动日志,因为事务尚未提交。

在不需要考虑数据丢失问题的非生产环境中,您可以采取截断方式来清除日志。但是,只有在可接受数据丢失的原型、开发或测试系统中才能这么做。

在生产系统或非生产系统中,您必须处理日志文件(备份或截断);否则,日志文件将快速增长并会影响规划系统的性能。

示例脚本

此部分包括用于执行日志备份或截断的示例脚本。安排运行 SQL Server 的计算机运行下面的脚本非常重要。如果您是在测试或原型环境中工作,并且不想花时间来处理此日志备份或截断问题,则可以修改 SQL Server Management Studio 中的数据库属性页,以便将数据库恢复模式从默认的“完全”模式设置为“简单”模式。

重要说明重要:

在生产系统中决不应使用“简单”模式。有关数据库恢复模式的详细信息,请参阅 SQL Server

-- Truncate Log sample script
-- Use only if you are in testing environment and do not care about DB backup.
BACKUP LOG 'Alpine_Ski_House_AppDB WITH NO_LOG
GO
BACKUP LOG 'Alpine_Ski_House_AppDB WITH TRUNCATE_ONLY
GO

USE 'Alpine_Ski_House_AppDB
GO
EXEC sp_helpfile 
GO
-- get the log file name for this DB

-- now shrink the log file
USE 'Alpine_Ski_House_AppDB
GO
DBCC SHRINKFILE(Alpine_Ski_House_AppDB_log, TRUNCATEONLY)
GO

-- Backup log sample script
-- For any DB that you care about data loss, you should back up DB and the 
-- log, that is the only good way to clear the inactive logs.

-- Create dump devices first
EXEC sp_addumpdevice 'disk', 'ServiceDBData', 
'C:\work\ServiceDBData.bak';
GO

EXEC sp_addumpdevice 'disk', 'ServiceDBLog', 
'C:\work\ServiceDBLog.bak';
GO

-- Back up database and log file
USE PPSPlanningService
GO
BACKUP DATABASE PPSPlanningService TO ServiceDBLog;
GO
BACKUP LOG PPSPlanningService TO ServiceDBLog
GO
DBCC SHRINKFILE(PPSPlanningService_log, TRUNCATEONLY)
GO
重要说明重要:

您必须截断非生产系统中的日志,或将运行 SQL Server 的计算机设置为定期备份日志,以减小日志文件的大小从而获得更好的性能以及避免数据丢失。如果让日志文件增长得太大,规划服务器的性能将显著下降。随着时间的推移,不断增长的日志文件还将最终消耗掉大量磁盘空间。

TempDB

TempDB 的大小会影响系统的性能。例如,如果为 TempDB 定义的大小太小,则每次重新启动 SQL Server (MSSQLSERVER) 服务时,可能会将部分系统处理负载用于自动增长数据库,使其达到支持工作负荷所需的大小。可以通过增加 TempDB 的大小来避免此开销。

为 TempDB 设置物理位置和数据库选项时应遵循的一般建议包括:

  • 允许 TempDB 根据需要自动增大。

  • 将 TempDB 文件的初始大小设置为合理的值,以避免在需要更多空间时自动增大文件。如果 TempDB 增大得太频繁,性能可能会受到影响。

  • 将文件大小增量百分比设置为合理的值,以避免 TempDB 文件按太小的增量增长。如果与写入到 TempDB 的数据量相比文件增量太小,数据库可能必须不断增大。这会影响性能。

  • 将 TempDB 放置在快速输入/输出子系统上可确保获得良好的性能。将 TempDB 分段放置在多个磁盘上可获得更好的性能。将 TempDB 置于不同于用户数据库所使用的磁盘上。有关如何将 TempDB 移到新位置的详细信息,请参阅 SQL Server

SQL Server 重新启动时,TempDB 的大小会恢复到最初配置的大小并根据需要增长。这会使 TempDB 产生碎片,从而增加开销。这会影响工作负荷的性能。我们建议您给 TempDB 预先分配适当的大小。

因为规划服务器数据库通过行版本控制功能来使用“读取已提交数据”隔离级别,所以应将 TempDB 的大小设置为较大的合理值以获得更好的性能。为了获得更好的性能,请将 TempDB 的初始大小至少设置为 500 MB。为了获得更佳的性能,请将 TempDB 的初始大小设置为 1 GB。

监控 TempDB 的可用空间非常重要。有关详细信息,请参阅 SQL Server

文件组

为便于分配和管理,您应该将数据库对象和文件分成若干个文件组。

规划系统数据库和规划服务数据库可在规划服务器安装过程中创建,也可以由用户在安装规划服务器软件之前手动创建。如果您让规划服务器配置管理器创建这两个数据库,则您没有机会为其指定文件组。这两个数据库相对较小,因此为其使用文件组的需求也最小。

规划应用数据库是在创建应用程序过程中创建的。创建应用数据库时有两个选项。用户可以从规划管理控制台中的“创建应用程序”用户界面指定“生成可手动执行的应用程序创建脚本”选项****,以便数据库管理员在应用程序创建过程中自定义 CREATE DATABASE/CREATE TABLE。更明确地说,数据库管理员可在创建应用数据库时添加文件组信息。在应用程序创建过程中生成 SQL Server 脚本之后,数据库管理员可以编辑 CreateAppDB.sql 和 TypeLibMasterSchema.sql,并将文件组信息添加到这些脚本中,然后再加以运行。

注意注意:

您可以通过 CREATE DATABASE 或 ALTER DATABASE 创建文件组。可以通过 CREATE TABLE 将文件组指定给表。创建新的文件组时,请确保先将文件添加到新的文件组,然后再使用新的文件组。

有关文件组的详细信息,请参阅 SQL Server

另请参阅