Имеет ли значение разделение Data, Logs и TempDB при использовании SAN с SQL 2008
Я не администратор сервера. Так что будь нежным. Но я был только на конференции, и на одном из учебных занятий инструктор объяснил некоторые лучшие практики SQL DBA. Одним из них было разделение Mdf,Ldf и TempDB на разные диски для повышения производительности.
Теперь у нас в офисе сан. Системные администраторы создали 3 дисков San, один для данных, один для журналов и один для TempDB.
Моя интуиция говорит мне, что это было напрасным усилием... не так ли?
Я не знаю многих деталей, но если вы спросите, я постараюсь заполнить все спецификации, необходимые для точного ответа на этот вопрос.
3 ответа
Файлы базы данных, файлы журнала транзакций и временные файлы данных обычно размещаются на разных томах, чтобы уменьшить конфликты ввода-вывода между ними, и это также можно расширить, создав несколько файлов данных для каждой базы данных, распределив их по еще большему количеству томов и сообщив SQL Сервер, на котором должны храниться определенные таблицы и индексы; так что да, это обычная практика для администраторов баз данных, и она действительно может привести к значительному увеличению производительности.
Это также верно, чем то, что может стать совершенно бессмысленным при использовании SAN; в зависимости от того, как на самом деле была настроена эта сеть SAN, различные LUN (тома) могут быть сопоставлены с любым набором физических дисков, RAID-массивов и контроллеров хранилища, и, таким образом, конфликт ввода-вывода между двумя LUN может варьироваться от "полностью изолированного" до "эффективно использовать одни и те же диски". Таким образом, если администратор баз данных не работает в тесном контакте с администратором хранилища, запрос различных LUN для распределения файлов базы данных между ними действительно может оказаться напрасной тратой усилий.
Однако разделение файлов базы данных и файлов журналов транзакций считается оптимальной практикой не только для производительности, но и для надежности: из-за механизма хранения транзакций, используемого SQL Server (и аналогичных механизмов, используемых практически любой существующей СУБД), файлы журнала может использоваться для воспроизведения транзакций в сценарии аварийного восстановления, позволяя системе восстановить то, что произошло после последнего резервного копирования. Но для того, чтобы это работало, вы не хотите терять файлы данных и файлы журналов одновременно, поэтому лучше, по крайней мере, разместить их на разных томах, даже если от этого не будет выигрыша в производительности.
Причина, по которой вы отделяете файлы базы данных от файлов журнала, заключается в том, что доступ к базе данных является случайным, а доступ к журналу - последовательным. Согласно рекомендациям, вы не должны смешивать эти два типа ввода-вывода на одном и том же диске независимо от того, как этот диск представлен серверу (локальный, DAS, iSCSI и т. Д.). Так что нет, это были не напрасные усилия.
Что касается tempdb, похоже, что Microsoft рекомендует отделить ее от баз данных:
http://msdn.microsoft.com/en-us/library/ms175527(v=sql.105).aspx
Ввод / вывод на диск для журналов будет последовательным, только если он содержит только один файл журнала. Добавьте еще один, и вы получите случайный ввод / вывод.