文件组的好处以及将文件组设置为只读


11

在将多个文件组更改为只读是一个不错的选择以及何时使用它们的情况下,有人可以引用我的真实场景吗?如果将其设置为只读,会有什么好处?

在具有多个文件组的数据库上,您是否需要对整个数据库进行备份,还必须备份该文件组中的每个文件?您还能给我一个何时使用文件组备份的示例吗?我不明白为什么只备份整个数据库对备份文件组会有好处。希望我能获得现实的经验,此文件组备份将是理想的选择

Answers:


13

您的问题范围很广,但是其中一些要点如下。

多个文件组,通常:

  • 假设它们是物理隔离的,则可以提高性能。通常,您可以为群集索引创建一个文件组,为非群集索引创建一个文件组,为堆创建一个文件组。或者,您可以在分区情况下创建多个文件组。

  • 可以通过逐块还原来提高可恢复性。零碎还原可用于使关键生产数据快速联机,同时允许还原存档数据不影响联机活动。请注意,在线分段还原是“仅限企业”选项。我已经在SQLServerScience.com上写了一篇博客文章,展示了如何进行分段还原。

  • 不需要单独备份,但是可以单独备份,这对于VLDB可能是必需的。注意,备份单个文件组时,还必须备份主文件组。

只读文件组:

  • 可用于减少仅报告数据的争用。

  • 显然可以用来防止对数据的修改。

  • 使数据库联机时,无需运行恢复过程。这可以大大缩短VLDB的恢复时间。

  • 此外,虽然读写文件组不能与基于NTFS文件系统的压缩一起使用,但只读文件组可以。这意味着对于一组非常有限的系统,通过压缩磁盘上的只读文件组文件,您可能能够看到驻留在速度较慢的磁盘上的VLDB数据的轻微性能改进。当然,这需要根据具体情况进行评估,而不是在从磁盘读取NTFS群集时解压缩NTFS群集所需的CPU开销。

关于只读文件组的误解:

  • “永远不会更新只读文件组中存储的表的统计信息。” 这完全不正确,可以通过创建测试平台来证明这一点,如我在SQLServerScience.com上的博客文章中所示。感谢@PaulWhite向我指出这一点。

  • “在只读数据库中不会发生锁定。这可以提高查询性能 ”。除非整个数据库都是只读的,否则这是不正确的。单独的只读文件组不允许跳过共享锁


如果您的数据库具有多个文件组,而没有使用文件组备份,而仅使用完整备份和T日志备份,那么还原该数据库的不利之处是什么?
基思·里维拉

使用事务日志备份进行完全备份没有缺点。你可以做一个文件组的备份(只要你还备份PRIMARY),但你并不需要到。
Max Vernon
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.