抱歉,如果这一次不仅仅是一个问题,那么请继续。
同样在 Windows Server 2008 上运行 SQL Server 2008。我们现在有一个超过 200gb 的大型数据库(它包含扫描的文档图像,第 3 方应用程序正在使用图像列。它还有一些其他访问的数据,包括程序的许可信息)
它的数据文件仍然在 c 驱动器上,因为有人决定那样设置它。它一直在一点一点地增长,驱动器的空间越来越低,危险。我有一个 iScsi 驱动器,我想在任何坏事发生之前将它移动到(这个驱动器上现在有日志文件,但它有大量的可用空间,我现在真的没有任何其他选择),但我首先需要确定几件事。
我想找到一个很好的方法来衡量文件的 i/o 速率,因为它目前存在,但即使在搜索之后我也不确定在一两天的过程中最好的方法来获得一个好的主意。
我还想测试我计划使用的新驱动器的吞吐量,以确保它是合适的。我正在考虑为此使用 SQLIO,但还没有深入研究。
最后,以防万一出现一些严重的性能问题,我认为进行某种复制设置可能是个好主意,可能是异步的以避免性能问题,这样我们就可以快速恢复到原始文件而不必丢失任何数据或等待新文件再次复制回来。
谢谢
您可以使用perfmon来测量磁盘性能和争用。我会为适当的驱动器(都在物理磁盘下)测量以下计数器:
您想要在一段时间内监控这些值以查看它们的趋势。如果您定期捕获它们(默认为每 15 秒),将它们放入 Excel 并计算您在标准工作期间的合理时间段内的最小值、最大值和平均值,以确定您当前的基线。
接下来,对于测试驱动器,SQLIO 是一个很好的工具。我可能会将它与 perfmon 计数器结合使用,以衡量磁盘与当前设置相比的性能。这将使您大致了解磁盘的性能。
对于复制,您可以复制数据库和单个对象,但不能复制文件。因此,为了实现您的目标,您基本上需要创建数据库的完整副本以复制到并处理不同的命名/连接字符串。话虽如此,我认为这是对问题的过度思考。如果您预先做了足够的基线和测试,您甚至在采取行动之前就会知道它将如何执行。