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) 如何使分区停止服务?我读过关于切换的内容,但似乎只有当您想在同一数据库内的分区之间移动数据时才有效。我希望能够简单而安全地将一系列数据脱机(并在必要时将其重新联机)。
我无法给你问题1)的答案。
但要回答问题2):
您所要求的被称为“滑动窗口场景”。
如果您想删除包含不再需要的数据的分区,您必须执行以下步骤:
MERGE RANGE ...
有关此内容的更多详细信息,请访问http://technet.microsoft.com/en-us/library/aa964122.aspx以及有关分区的白皮书,请访问http://msdn.microsoft.com/en-us/library/ dd578580%28v=sql.100%29.aspx。