gifts2017

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

Опубликовал Вячеслав Гилёв (Gilev.Vyacheslav) в раздел Администрирование - Системное

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

Если в результате перемещений файлов базы данных tempdb Вы доигрались до того, что служба MS SQL Server больше не запускается, то скорее всего у вас проблемы либо с диском, куда указали файл, либо с размерами tempdb, либо с правами на доступ.

Если разобраться по логам скуля с этой проблемой вы не смогли, то надо вернуть назад или в другое место файлы.

Для этого запустите службу в ограниченном режиме (в командной строке)

NET START MSSQLSERVER /f /T3608

Если у Вас не экземпляр по умолчанию, а именованный, то строка будет иметь вид

NET START MSSQL$instancename /f /T3608

Вызовите через командную строку подключение под учетной записью Windows, имеющей права SYSADM (в моем случае это будет administrator)

SQLCMD -s COMPUTERNAME\administrator

Теперь снова измените путь

USE master
GO
ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = ‘C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\tempdb.mdf’)
GO
ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = ‘C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\tempdblog.ldf’)
GO

У Вас пусть может отличаться. Ну вот, собственно, и все, теперь рестартуйте службу, и все заработает.

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. Сергѣй Батанов (baton_pk) 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
2. B2B (B2B) 13.11.13 21:03
(1) Расскажите, пожалуйста, подробнее о вашем опыте с tempdb на RAM-диске
3. Сергѣй Батанов (baton_pk) 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) 13.11.13 22:22
(3) baton_pk,
1) нужно сразу создать дополнительную файловую группу на физическом диске. Это нужно для того, чтобы в случае, если RAM-диск переполнится, то запросы могли продолжать выполняться. В противном случае пользователи быстро увидят сообщение от MSSQL.

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

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


10. Олег Филиппов (comol) 15.11.13 13:43
p.s. сам "рецепт" из статьи давно пора уже на ИТС 1С-овцам разместить... а то чем только люди не занимаются получив подобную ошибку...
11. Вячеслав Гилёв (Gilev.Vyacheslav) 15.11.13 14:48
(10) comol, так оно так и будет, сначала пишу я, потом 1с )))
baton_pk; +1 Ответить
12. Вячеслав Гилёв (Gilev.Vyacheslav) 15.11.13 15:32
(9) comol, SuperSpeed используем для крупного клиента, работает отлично, только стоит хорошо
13. Алексей Захаров (almas) 23.12.14 12:46
(3) baton_pk,
Привет опыт бесценный, не мог бы ты подробно расписать порядок создания файловой группы.
Правильно ли я понимаю, что если temp.db вдруг съел всю ram память, то он начинает использовать вторую файловую группу?
14. Денис Буры (Denic_01) 07.12.16 17:08
так самого главного не написали )
хорош ли "выхлоп" от переноса tempdb ?
в моем случае имею сервер с 30 гб ОЗУ, из них 20 не особо то используются,
баз много, пользователей тоже
tempdb показывает размер порядка 600 мб (мдф + лог)
как думаете стоит заморачиваться с переносом ?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа