我有 5 个数据库,它们使用 SQL Express 在单独的服务器上运行。其中一些包括 Citrix Datastore、Citrix Edgesite Server、AV db、Time and Billing App 以及文档管理程序。如上所述,它们目前都在使用 SQL Express 的单独服务器上运行。
我正在考虑整合到一个中央 SQL 数据库,以便为整个 SQL 2008 R2 平台提供更大的数据库大小和其他好处。为了省钱,我想使用一台配备一个四核 CPU 的服务器,使用每个插槽的 SQL 许可证。我拥有的服务器配备了 SATA 驱动器。
我到底应该如何对所有内容进行分区/RAID 才能提供最佳性能?所有数据库应该放在一个 RAID 集上还是全部分开?我看到的大多数配置似乎都显示了对仅运行单个数据库的服务器进行分区的建议。
任何指导都将不胜感激。
答案1
数据库存储配置更像是一门艺术,而不是一门科学。以下是一些简单的指导原则:
- 将您的日志和数据保存在不同的突袭组中
- 谨慎选择硬盘:如果您需要大量 IO,请选择尺寸较小、主轴速度更快的硬盘
- Raid 不是备份。仅仅因为您可以热备份驱动器并不意味着您的数据库不需要备份 :P
我经常看到的是小型 raid 1 或 raid 10 上的日志文件,以及大型 raid 10 上的数据。与某些非基于奇偶校验的 raid 类型(如 raid 1 和 10)相比,raid 5 和 6 会降低性能(以每秒 IO 或 IOPS 为单位)。但代价是,您只能使用所购买容量的一半以上。如果您拥有不错的硬件 raid 控制器,性能损失是可以控制的,但是对于任何大型驱动器(900GB 及以上),您最好使用 raid 6。
答案2
从 50,000 英尺的视角来看,您希望为日志设置单独的镜像对,并为数据设置 RAID-10。备份媒体的成本将远远超过 RAID-5 或 RAID-10 设置之间的存储媒体成本差异。
现代存储的磁盘非常大,因此带宽限制可能比容量限制更大。如果您担心数据量,那么您可能会发现 RAID-10 可以用更少的磁盘提供相同的 I/O 带宽。这很可能在存储空间之前就成为问题,特别是如果您使用的是 SATA 磁盘。
如果您的日志流量超过单个 RAID-1 可以处理的量,您可以将其扩展为多个 RAID-1 日志卷或 RAID-10 卷。
除非一个数据库比其他数据库占用更多的资源,否则它们都可以驻留在相同的数据和日志卷上,只要这些卷具有足够的磁盘带宽。如果您有一个使用率特别高的数据库,您可能希望将其移动到自己的磁盘卷上。
答案3
更小的驱动器 + 更多主轴 = 任何 Raid 5 的读取/写入时间更快。按数据类型分离信息。从完全独立的物理和逻辑卷启动操作系统。