Перенос tempdb в Microsoft SQL и как вернуть обратно, если sql не стартует.

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

Но есть вариант быстрого отдельного диска, да ещё и бесплатного!

RAM-диск рекомендует сам Гилёв (оптимизатор от 1С).

Тему использования ram-диска надо изучать весьма глубоко. Попробовал перенести tempdb на ram-диск, предварительно его выделив из оперативной памяти на сервере 1С. Использовал Qsoft RAMDisk - он для россиян бесплатен (был во всяком случае). Тема на 4pda.ru. Сайт производителя - тут.

В общем настроил по найденным гайдам и собственной интуиции. Сервер потребовал пререзагрузку. После перезагрузки перенёс tempDB известными запросами:

 

USE master;
GO
ALTER DATABASE TEMPDB
MODIFY FILE (NAME='tempdb', FILENAME='B:\TempDB_Data\tempdb.mdf');
GO
ALTER DATABASE TEMPDB
MODIFY FILE (NAME='templog', FILENAME='B:\TempDB_Log\templog.ldf');

Всё работало несколько недель. Но косяк таки случился. Что именно быстрое чтение логов не позволило найти.

 

Но из них стало понятно, что есть проблемы старта sql из-за невозможности создания tempdb по новому расположению.

 

Самообладание не позволило поддастся эмоциям и переустановить SQL. Метод сработал бы, но он не правильный. Правильный - снова перенести tempdb в надёжное расположение.

 

Для этого нужно запустить сервер sql в монопольном режиме:

NET START MSSQLSERVER /f /T3608

 

Выполнить:

SQLCMD -s PCNAME\administrator  

 

где PCNAME - имя сервера, administrator - пользователь имеющий права администратора sql-сервера. Утилита SQLCMD нашлась в моём случае по адресу C:\Program Files\Microsoft SQL Server\100\Tools\Binn.

 

И вновь выполняем запрос по переносу, но уже с иным расположением tempdb.

Решение подглядел тут (снова Гилёв Вячеслав:)).

Write a comment

Comments: 1
  • #1

    Максим (Wednesday, 13 March 2024 14:03)

    Поделитесь пожалуйста решением проблемы. Столкнулся с тем же самым. Всё перерыл уже, и не могу понять в чём проблема :(