0. Gilev.Vyacheslav 1841 13.11.13 04:47 Сейчас в теме

Не стартует TempDB (MS SQL Server)

Если после переноса tempdb перестал запускаться MS SQL Server, не паникуйте, прочтите эту статью, как решить проблему.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. baton_pk 399 13.11.13 13:18 Сейчас в теме
Дааа :) Писал своим подобную инструкцию, когда перенесли tempdb на RAM-диск. Всё, как полагается: сделали на RAM-диске папку TEMP, положили туда tempdb, но вот незадача - после перезагрузки сервера папка-то сама не создаётся :-D

По статье бы сделал два дополнения:
1) Как узнать, что не запускается именно из-за tempdb - тут надо лезть в журнал событий Windows
2) Лучше предварительно остановить службу сервера 1С:Предприятия, потому что если 1Ска уже успеет подключиться к MS SQL, то вы со своим SQLCMD пролетаете :)
В нашем случае нельзя останавливать сервер 1С, потому как есть боевые базы, которые работают на другом SQL и должны продолжать работать. Тогда начинаются пляски с песнями:
1: остановил SQL, 2: запустил SQL, 3: запустил SQLCMD, 4: Успех? - работаем, нет? - goto :1.
корум; Gilev.Vyacheslav; +2 Ответить
2. B2B 262 13.11.13 21:03 Сейчас в теме
(1) Расскажите, пожалуйста, подробнее о вашем опыте с tempdb на RAM-диске
3. baton_pk 399 13.11.13 21:55 Сейчас в теме
(2) B2B,
В целом всё довольно просто, потому ограничусь возникавшими проблемами:
1) нужно сразу создать дополнительную файловую группу на физическом диске. Это нужно для того, чтобы в случае, если RAM-диск переполнится, то запросы могли продолжать выполняться. В противном случае пользователи быстро увидят сообщение от MSSQL.
2) если хотите на RAM-диске создавать папку, как мы, то надо либо
(а) добавить в автозапуск BAT-ник по созданию папки, чтобы он выполнялся до запуска MS SQL
(б) мы просто отключили перезагрузку сервера, потому как вариант (а) надо было согласовывать с админами и тому подобное
3) в MS SQL Management Studio в свойствах базы tempdb будет показываться неестественный размер базы (вплоть до отрицательного) - это какая-то особенность работы на RAM-диске, проблем из-за этого не возникает.
4) в случае, если возникла ситуация из пункта 1, то это может резко и заметно сказаться на производительности. у нас это вылечилось просто увеличением размера RAM-диска. у нас на сервере SQL 280 ГБ оперативки, мы можем себе позволить RAM-диск до 40 ГБ при базе в 500 ГБ.
Точное название проги сейчас не скажу, в офисе буду - посмотрю. Помню, что баран нарисован на логотипе :)
4. Gilev.Vyacheslav 1841 13.11.13 22:22 Сейчас в теме
(3) baton_pk,
1) нужно сразу создать дополнительную файловую группу на физическом диске. Это нужно для того, чтобы в случае, если RAM-диск переполнится, то запросы могли продолжать выполняться. В противном случае пользователи быстро увидят сообщение от MSSQL.

а не достаточно просто еще один файл добавить в текущую файловую группу?
baton_pk; +1 Ответить
6. baton_pk 399 13.11.13 22:29 Сейчас в теме
(4)
простите негодяя, ночь, жена, дети...
конечно же проще просто добавить файл в файловую группу.
(5) прогу завтра уточню. помню только, что с бараном. у нас её админы ставили, потому я не запомнил.
5. Gilev.Vyacheslav 1841 13.11.13 22:23 Сейчас в теме
(3) baton_pk,
3) в MS SQL Management Studio в свойствах базы tempdb будет показываться неестественный размер базы (вплоть до отрицательного) - это какая-то особенность работы на RAM-диске, проблем из-за этого не возникает.
а какой RAM-диск вы используете?
8. baton_pk 399 14.11.13 07:47 Сейчас в теме
(5)
Вот этот у нас стоит:
SoftPerfect RAM Disk
Бесплатная. Пока что бед мы с ней не ведали.
lobanov1983; Gilev.Vyacheslav; +2 Ответить
9. comol 4160 15.11.13 13:41 Сейчас в теме
(5) такую же штуку делал... SuperSpeed RamDisk Pro. Не бесплатная конечно, но есть серверная версия вызывает хоть какое-то доверие...

Правда всё равно проблемы при перезагрузке сервера возникают :(. "Разорились" в итоге на IO Accelerator. Разница особо не ощутима... программку же успешно используем на отдельном сервере для "монопольного восстановления последовательности" :).


12. Gilev.Vyacheslav 1841 15.11.13 15:32 Сейчас в теме
(9) comol, SuperSpeed используем для крупного клиента, работает отлично, только стоит хорошо
13. almas 198 23.12.14 12:46 Сейчас в теме
(3) baton_pk,
Привет опыт бесценный, не мог бы ты подробно расписать порядок создания файловой группы.
Правильно ли я понимаю, что если temp.db вдруг съел всю ram память, то он начинает использовать вторую файловую группу?
7. Gilev.Vyacheslav 1841 13.11.13 22:30 Сейчас в теме
некоторые RАМ-диски не понравились, например этот пришлось отключить
10. comol 4160 15.11.13 13:43 Сейчас в теме
p.s. сам "рецепт" из статьи давно пора уже на ИТС 1С-овцам разместить... а то чем только люди не занимаются получив подобную ошибку...
11. Gilev.Vyacheslav 1841 15.11.13 14:48 Сейчас в теме
(10) comol, так оно так и будет, сначала пишу я, потом 1с )))
baton_pk; +1 Ответить
14. Denic_01 28 07.12.16 17:08 Сейчас в теме
так самого главного не написали )
хорош ли "выхлоп" от переноса tempdb ?
в моем случае имею сервер с 30 гб ОЗУ, из них 20 не особо то используются,
баз много, пользователей тоже
tempdb показывает размер порядка 600 мб (мдф + лог)
как думаете стоит заморачиваться с переносом ?
15. AlexO 128 24.10.18 10:56 Сейчас в теме
(14) так весь "выхлоп" и заключается в том, что освобождается место от гигантских объемов tempdb, переносом tempdb.mdf и tempdb.ldf на другой диск (а то и сами базу и журнал - еще по разным дискам можно разнести).
Скорость здесь не особо повысится - разве что сами диски будут существенно быстрее, типа SSD (для чего, например, и заморачиваются с переносом на RAM диск).
В вашем случае вообще беспокоится не о чем - 600 Мб tempdb - это критично, если диск размером в 1ГБ )
А так - tempdb.mdf может достигать и нескольких десятков ГБ, и сотен ГБ (да еще размер журнала tempdb.ldf тоже не маленький), вот в этом случае и занимаются отделением tempdb и переносом на более емкие диски.
16. Denic_01 28 24.10.18 15:34 Сейчас в теме
По прошествии времени могу поделится наблюдениями - то что я описывал относилось к второстепенному серверу. Решился перенести на основном

для начала надо понять что происходит на сервере для этого используем монитор ресурсов и т.п. он показывает нагрузку на диск - заморачиваться стоит, если эта нагрузка велика, плюс наблюдаем за средней очередью диска в утилите perfmon, в идеале она должна "болтатся" не больше десятых (0.1)
от чего это зависит нагрузка понять конечно не просто, есть подозрение что нагрузка идет при большом количестве пользователей и обилии запросов к виртуальным таблицам, в теории файл этот виртуальные таблицы и обслуживает, почему это надо делать на диске, а не в памяти, для меня загадка
на практике у меня
база объемом 200+ ГБ
tempdb 16ГБ - вот этот размер тоже не понятно откуда берется, ОЗУ менялась с 32 на 64 гб, ограничения в самом SQL сняты, ограничений по дискам ессно нет смотрим по факту что имеем то имеем опять же
пользователей около 250
в принципе, имеется избыточная оператива при 64 гб сами rphost жрут весьма скромно гигобайты, sql может расти до 30 гб, т.е. эти 16 гб можно было бы выделить и в оперативе

у меня в периоды наибольшей нагрузки идет постоянная запись/чтение порядка 20мБ - казалось бы, цифра не велика, но надо учитывать, что это чтение состоит из мелких операций у "бытовых" винтов рандомное чтение может не тянуть и больше 5мБ, серверных около 20 может быть пределом - это при том что последовательная запись/чтение более 600мБ

таким образом анализируя обращение к файлам temp.db и следует принимать решение - если оно велико толк однозначно будет
у меня после переноса на отдельный ssd очередь диска стала весьма мала до этого прыгала до единиц и десятков - есть подозрение, что именно в эти моменты происходит подвисание
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Краснодар
зарплата от 70 000 руб.
Полный день

Старший консультант-аналитик 1С БИТ.Финанс
Москва
зарплата от 150 000 руб. до 180 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 110 000 руб. до 150 000 руб.
Полный день

Ведущий программист 1С
Москва
зарплата от 170 000 руб. до 200 000 руб.
Полный день

Программист 1С
Москва
зарплата до 160 000 руб.
Полный день