Не удается найти указанный файл sql server
Под сбоем следует понимать потерю базы (аппаратный, невосстановимый сбой системы хранения). В таких случаях служба сервера баз данных не может быть запущена.
Сбой и восстановление базы данных TempDB
1) Запустить службу сервера БД в минимальной конфигурации из командной строки:
Sqlservr.exe -m -c -f -T3608 -T4022
Нужно указывать полный путь к файлу sqlservr.exe (или запустить CMD.EXE из каталога, где лежит этот файл):
"C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVE R\MSSQL\Binn\sqlservr.exe " -m -c -f -T3608 -T4022
Описание параметры запуска:
-m: запускает SQL Server в однопользовательском режиме, Контрольная точка не срабатывает;
-с: ускоряет запуск из Командной строки. Запускается в отдельном окне как приложение, а не как служба;
-f: запускает SQL Server в минимальной конфигурации;
-T: включает определённый флаг трассировки. 3608: запрещает автоматически запускать и восстанавливать все БД, кроме master (используется для перемещения системных БД).
4022: обход автоматически запускаемых процедур.
2) Подключиться к запущенному серверу БД с помощью программы sqlcmd.exe:
2.1) Переход в каталог с утилитами SQL Server:
cd "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\"
2.2) Запуск sqlcmd с параметрами подключение к серверу под sa
sqlcmd -S Server -U sa -P 111
Описание параметров sqlcmd:
-S: имя сервера БД к которому происходит подключение;
-U: Логин (имя входа) под которым происходит подключение к серверу;
-P: пароль.
3) Изменить пути к файлам БД TempDB с помощью T-SQL (указать новые существующие пути):
Ответ сервера на успешный запрос:
Файл "templog" был изменен в системном каталоге. Данный новый путь будет использ
ован при следующем запуске этой базы данных.
Для проверки изменений можно выполнить следующий запрос:
SELECT name, physical_name AS CurrentLocation, state_desc FROM sys.master_files WHERE database_id = DB_ID(N'tempdb');
GO
4) Закрыть sqlcmd и командное окно сервера SQL Server через нажатие клавиш Ctrl+C;
5) Запустить сервер SQL Server в нормальном режиме (через запуск службы).
Сбой и восстановление баз данных msdb и model
Для восстановления системных баз msdb и model необходимо выполнить скрипт T-SQL (через панель объектов в Management Studio не получится), его можно выполнить либо в Management Studio, либо через утилиту sqlcmd.exe.
Скрипт для восстановления БД msdb (аналогичный скрипт будет работать и для БД model):
RESTORE DATABASE [msdb] FROM DISK = N'D:\Backup\SYS\msdb.rez' WITH FILE = 1,
MOVE N'MSDBData' TO N'C:\MSDBData.mdf',
MOVE N'MSDBLog' TO N'C:\MSDBLog.ldf',
NOUNLOAD, REPLACE
GO
Сбой и восстановление базы данных master
Для восстановления работоспособности БД master (и всего сервера БД) нужно выполнить:
1. Перестроение системных БД
Для выполнения этой операции нужен дистрибутив SQL Server 2008. Нужно запустить инсталлятор setup.exe со специальными параметрами:
2. Восстановление системной БД master из резервной копии
Для восстановления БД master необходимо запустить сервер SQL Server в однопользовательском режиме (сначала нужно остановить службу MSSQLSERVER):
Затем нужно подключиться к серверу под sa (можно из Management Studio) и выполнить инструкция T-SQL:
RESTORE DATABASE [master] FROM DISK = N'D:\ Backup\SYS\master.rez' WITH FILE = 1 WITH REPLACE
GO
3. После восстановления БД master необходимо восстановить системные БД msdb и model (см. выше).
Читайте также: