如何使分区或文件组停止服务

Sco*_*ott 6 sql-server sql-server-2008-r2 partitioning

我是一位经验丰富的 SQL Server DBA,但不熟悉分区,我有几个问题。使用 SQL Server 2008 R2 企业版。

我继承了一个每天增长约 10 GB 的大型客户指标数据库。该数据库目前由一个文件组 (PRIMARY) 中的一个大数据文件组成。所有表都有一个名为 的日期时间列InsertedDate。我想对数据进行水平分区InsertedDate,每个日历周使用一个单独的数据文件。

在测试环境中,我将所需的附加文件组和数据文件添加到该数据库中,InsertedDate在每个表中放置了聚集索引,并设置了分区功能和分区方案。通过查询sys.partitions和其他系统表,我确认数据现在物理上驻留在正确的分区和数据文件中。

其中,目标是:

  • 通过仅备份PRIMARY当前日期范围内的文件组和文件组来减少备份时间(我目前正在运行每晚完整备份)。一旦日期范围过去,该分区将永远不会被再次写入,因此我想将文件组设置为只读并最后一次备份它。

  • 能够最终使分区“停止服务”。3 个月后,不再需要将旧数据保持在线,因此我想将这些数据离线(但如果需要,可以再次将这些数据重新在线)。

问题:

1) 如何在不备份整个数据库的情况下对这个分区数据库执行备份?我可以备份单个文件组,但要恢复它需要数据库的其余部分,这违背了使用多个较小数据文件的目的。

2) 如何使分区停止服务?我读过关于切换的内容,但似乎只有当您想在同一数据库内的分区之间移动数据时才有效。我希望能够简单而安全地将一系列数据脱机(并在必要时将其重新联机)。

sar*_*rnu 2

我无法给你问题1)的答案。
但要回答问题2):
您所要求的被称为“滑动窗口场景”。
如果您想删除包含不再需要的数据的分区,您必须执行以下步骤:

  • 在与要删除的分区相同的文件组上创建一个表(通常,该表称为临时表)。
    该表必须具有与分区表完全相同的结构,包括索引。
  • 将分区切换到暂存表
  • 您必须从分区函数 vie 中删除对文件组的引用MERGE RANGE ...
  • 现在您可以截断临时表并将其删除。剩下的是一个空文件组,您也可以删除。

有关此内容的更多详细信息,请访问http://technet.microsoft.com/en-us/library/aa964122.aspx以及有关分区的白皮书,请访问http://msdn.microsoft.com/en-us/library/ dd578580%28v=sql.100%29.aspx