MS SQL Server, проблема- недоступен диск где размещалась база tempdb. Решено

На днях возникла такая проблема- есть некий сервер, вследствие переноса устройств (LUN) диск на котором находилась база tempdb оказался недоступен. Базу нужно было бы перенести на диск D:
При запуске сообщение об ошибке:

2021-05-27 10:43:00.03 spid7s CREATE FILE encountered operating system error 3(The system cannot find the path specified.) while attempting to open or create the physical file ‘H:\TempDB\tempdb.mdf’.
2021-05-27 10:43:00.03 spid7s Error: 17204, Severity: 16, State: 1.
2021-05-27 10:43:00.03 spid7s FCB::Open failed: Could not open file H:\TempDB\tempdb.mdf for file number 1. OS error: 3(The system cannot find the path specified.).
2021-05-27 10:43:00.03 spid7s Error: 5120, Severity: 16, State: 101.
2021-05-27 10:43:00.03 spid7s Unable to open the physical file «H:\TempDB\tempdb.mdf». Operating system error 3: «3(The system cannot find the path specified.)».
2021-05-27 10:43:00.03 spid7s Error: 1802, Severity: 16, State: 4.
2021-05-27 10:43:00.03 spid7s CREATE DATABASE failed. Some file names listed could not be created. Check related errors.
2021-05-27 10:43:00.03 spid7s Could not create tempdb. You may not have enough disk space available. Free additional disk space by deleting other files on the tempdb drive and then restart SQL Server. Check for additional errors in the event log that may indicate why the tempdb files could not be initialized.
2021-05-27 10:43:00.03 spid7s SQL Server shutdown has been initiated

Что было сделано- сервер (сервис) запущен в аварийном режиме:
NET START MSSQLSERVER /f /T3608

В sqlcmd выполнены команды:

USE master;
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev, FILENAME = ‘D:\DATA\tempdb.mdf’);
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = templog, FILENAME = ‘D:\DATA\templog.ldf’);
GO

После чего сервер был запущен штатным образом, дальше работал нормально.

Такой метод универсален. На днях знакомый обратился, наглое молодое дарование изменило на сервере максимально доступную память. Но вместо 128 Гб человек поставил 128 Мб. Сервер при запуске валится с сообщением:

insufficient memory in resource pool ‘internal’ to run this query

Как лечить- запуск точно таким же образом:

NET START MSSQLSERVER /f /T3608
sqlcmd

И там уже выполняется команда с указанием памяти достаточной для запуска сервера. Лучше заранее задать несколько меньшее значение, достаточное для запуска, допустим, 8 Гб:

EXEC sp_configure ‘show advanced option’, ‘1’;
RECONFIGURE WITH OVERRIDE;
EXEC sp_configure ‘max server memory (MB)’,8000;
RECONFIGURE WITH OVERRIDE;

После чего сервер запускается шатным образом- и уже после еще раз изменяется этот же параметр.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *