Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема с восстановлением базы / 25 сообщений из 35, страница 1 из 2
27.02.2018, 22:11
    #39608177
neorus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
Здравствуйте.
Версия сервера Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64)
Oct 19 2012 13:38:57
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
После перезагрузки сервера база ушла в режим (Ожидание восстановления). Пробовал использовать часто встречающийся в поиске скрипт:
ALTER DATABASE scout_storage SET EMERGENCY;
GO

ALTER DATABASE scout_storage SET SINGLE_USER;
GO

DBCC CHECKDB (scout_storage)
GO

ALTER DATABASE scout_storage SET MULTI_USER;
GO

ALTER DATABASE scout_storage SET ONLINE;
В сообщении появляются ошибки:

Сообщение 5120, уровень 16, состояние 101, строка 1
Не удалось открыть физический файл "C:\Program Files\Microsoft SQL Server\MSSQL11.KGKRSQL\MSSQL\DATA\scout_storage.mdf". Ошибка операционной системы 32: "32(Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.)".
Сообщение 5120, уровень 16, состояние 101, строка 2
Не удалось открыть физический файл "C:\Program Files\Microsoft SQL Server\MSSQL11.KGKRSQL\MSSQL\DATA\scout_storage.mdf". Ошибка операционной системы 32: "32(Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.)".
Сообщение 945, уровень 14, состояние 2, строка 2
Не удалось открыть базу данных "scout_storage" вследствие недоступности файлов, нехватки памяти или места на диске. Подробности см. в журнале ошибок SQL Server.
Сообщение 5120, уровень 16, состояние 101, строка 2
Не удалось открыть физический файл "C:\Program Files\Microsoft SQL Server\MSSQL11.KGKRSQL\MSSQL\DATA\scout_storage.mdf". Ошибка операционной системы 32: "32(Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.)".
Сообщение 5120, уровень 16, состояние 101, строка 2
Не удалось открыть физический файл "C:\Program Files\Microsoft SQL Server\MSSQL11.KGKRSQL\MSSQL\DATA\scout_storage.mdf". Ошибка операционной системы 32: "32(Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.)".
Сообщение 5120, уровень 16, состояние 101, строка 2
Не удалось открыть физический файл "C:\Program Files\Microsoft SQL Server\MSSQL11.KGKRSQL\MSSQL\DATA\scout_storage_log.ldf". Ошибка операционной системы 32: "32(Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.)".
Сообщение 5181, уровень 16, состояние 5, строка 2
Невозможно повторно перезапустить базу данных "scout_storage". Возвращение к предыдущему состоянию.
Сообщение 5069, уровень 16, состояние 1, строка 2
Не удалось выполнить инструкцию ALTER DATABASE.

Попробовал метод из статьи http://blog.vb76.com/vosstanovlenie-bazy-ms-sql-posle-udaleniya-fajla-logov-_log-ldf/

Но к сожалению это тоже не дало положительного эффекта. Не могу разобраться как вычислить процесс который мешает выполнить восстановление базы.
Судя по всему проблема возникла из-за выросшего файла логов (вот https://habrahabr.ru/sandbox/40161/ что то похожее описывают) - scout_storage_log.ldf вырос до 4,01 Гб.
Метод из песочницы хабра так же не работает. Ошибка доступа к файлу scout_storage.mdf.
...
Рейтинг: 0 / 0
27.02.2018, 22:24
    #39608184
Col
Col
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
neorus ,
process explorer --> ctrl+f
...
Рейтинг: 0 / 0
28.02.2018, 10:15
    #39608317
neorus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
К сожалению этот вариант я пробовал. Кроме самой БД в данный момент с файлом никто не общается.
...
Рейтинг: 0 / 0
28.02.2018, 10:28
    #39608326
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
что написано в еррорлоге?
переводится ли база в оффлайн?
...
Рейтинг: 0 / 0
28.02.2018, 11:31
    #39608364
neorus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
В оффлайн режим базу перевел. Правда теперь обратно не возращается - выдает ошибку


Приложил лог файл
...
Рейтинг: 0 / 0
28.02.2018, 11:41
    #39608369
Minamoto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
neorusВ оффлайн режим базу перевел. Правда теперь обратно не возращается - выдает ошибку


Приложил лог файл
Покажите
Код: sql
1.
select * from master.sys.master_files as mf 
...
Рейтинг: 0 / 0
28.02.2018, 11:47
    #39608375
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
пока база в оффлайне, попробуйте файлы скопировать в другое место.
потом создайте другую базу через create database for attach
теперь можно старую дропнуть, а новую переименовать в старую
...
Рейтинг: 0 / 0
28.02.2018, 11:52
    #39608382
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
в еррорлоге фигурирует еще некая база scout_storage_bad.
уж не на тех же ли она файлах основана?
а то поди она-то и держит эти файлы
...
Рейтинг: 0 / 0
28.02.2018, 12:09
    #39608391
neorus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
Вы имеете в виду выполнить такой запрос:

USE master;
GO
CREATE DATABASE scout_storage+
ON PRIMARY (NAME = scout_storage+,
(NAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.KGKRSQL\MSSQL\DATAscout_storage.mdf);
GO

?
...
Рейтинг: 0 / 0
28.02.2018, 14:21
    #39608488
neorus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
Yasha123в еррорлоге фигурирует еще некая база scout_storage_bad.
уж не на тех же ли она файлах основана?
а то поди она-то и держит эти файлы

база scout_storage_bad моя попытка решить проблему в прошлый раз. Так же сыпались ошибки про занятость в итоге переименовал эту базу. создал новую с таким же именем и развернул бекап свежий. Беда в том что в тот раз я сменил пароль sa, а вот сделать это в скрипте бекапа забыл. Соответственно 2 недели я жил без бекапов, поэтому и пытаюсь воскресить текущую базу scout_storage.
...
Рейтинг: 0 / 0
28.02.2018, 15:15
    #39608530
Minamoto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
neorus, еще раз, приведите результаты скрипта

Код: sql
1.
select * from master.sys.master_files as mf 



Может вы ту базу с теми же именами файлов восстановили, и сейчас пытаетесь второй раз те же файлы использовать.
...
Рейтинг: 0 / 0
28.02.2018, 15:24
    #39608537
neorus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
Minamoto,







После очередной перезагрузки и возвращении файлов на место - база перешла в статус подозрительная
...
Рейтинг: 0 / 0
28.02.2018, 15:30
    #39608545
neorus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
Minamoto,

Возможно вы правы, переименование базы в scout_storage_bad проводил через оснастку Ms SQL server management studio. Файлы базы переименовались в scout_storage_bad.mdf и scout_storage_bad_log.ldf
Во всяком случае эти файлы есть в каталоге DATA.
Кстати метод восстановления который до этого ни в какую не работал на scout_storage_bad сейчас отработал нормально и база в нормальном статусе, увы там нет данных за 2 недели и хотелось бы починить текущую.
...
Рейтинг: 0 / 0
28.02.2018, 15:32
    #39608548
Minamoto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
neorus, хм, как раз нужных данных вы и не показали - на скриншоте полный путь обрезан.
Скопируйте, вставьте просто таблицей сюда.
...
Рейтинг: 0 / 0
28.02.2018, 16:01
    #39608572
neorus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
Minamoto,

Не пойму как выдернуть в виде файла результат и сюда приложить


Написал вам в почту указанную в профиле.
...
Рейтинг: 0 / 0
28.02.2018, 16:42
    #39608610
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
ну так еще раз вопрос читаем:
Yasha123в еррорлоге фигурирует еще некая база scout_storage_bad .
уж не на тех же ли она файлах основана?
а то поди она-то и держит эти файлы
ваша база scout_storage_bad физически и есть те самые mdf, ldf от исходной базы.
вы 2 базы умудрились присобачить к одним и тем же физическим файлам.
разумеется, как только база scout_storage_bad поднимается,
сам сервер и захапывает доступ к этим файлам
...
Рейтинг: 0 / 0
28.02.2018, 17:20
    #39608626
neorus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
Yasha123,

а откуда появилась связь?
Я же переименовал базу. изменилось имя файла базы и файла логов.
Потом создал новую и развернул в нее бекап из bak файла (тип полная резервная копия). Откуда связь взялась?
...
Рейтинг: 0 / 0
28.02.2018, 17:27
    #39608628
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
neorusYasha123,

а откуда появилась связь?
Я же переименовал базу. изменилось имя файла базы и файла логов.
Потом создал новую и развернул в нее бекап из bak файла (тип полная резервная копия). Откуда связь взялась?
наверное, когда бэкап разворачивали,
не указали WITH MOVE.
в результате развернулось по умолчанию,
т.е. по тому пути, где и было.
получилось, что уже и новая база смотрит на старые файлы.

только такое могло произойти лишь в том случае,
когда старая база в оффлайне была.
иначе бы не получилось безнаказанно перезаписать ее файлы
...
Рейтинг: 0 / 0
28.02.2018, 17:36
    #39608635
neorus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
Yasha123,
Разобрался вроде бы в чем беда. Но даже если 2 базы смотрят на одни файлы. Но запись приложение вело только в базу scout_storage. Вторая база просто лежала в режиме ожидание восстановления. Могло это повлиять на свеже созданную?
...
Рейтинг: 0 / 0
28.02.2018, 17:41
    #39608638
Minamoto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
Yasha123neorusYasha123,

а откуда появилась связь?
Я же переименовал базу. изменилось имя файла базы и файла логов.
Потом создал новую и развернул в нее бекап из bak файла (тип полная резервная копия). Откуда связь взялась?
наверное, когда бэкап разворачивали,
не указали WITH MOVE.

Я честно попробовал. Нифига. Нужны какие то особые танцы с бубнами.
Вот что получается, если попытаться в файлы offline-базы восстановиться:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Msg 1834, Level 16, State 1, Line 2
The file 'D:\database\Data\test_offline.mdf' cannot be overwritten.  It is being used by database 'test_offline'.
Msg 3156, Level 16, State 4, Line 2
File 'test_offline' cannot be restored to 'D:\database\Data\test_offline.mdf'. Use WITH MOVE to identify a valid location for the file.
Msg 1834, Level 16, State 1, Line 2
The file 'D:\database\Data\test_offline_log.ldf' cannot be overwritten.  It is being used by database 'test_offline'.
Msg 3156, Level 16, State 4, Line 2
File 'test_offline_log' cannot be restored to 'D:\database\Data\test_offline_log.ldf'. Use WITH MOVE to identify a valid location for the file.
Msg 3119, Level 16, State 1, Line 2
Problems were identified while planning for the RESTORE statement. Previous messages provide details.
Msg 3013, Level 16, State 1, Line 2
RESTORE DATABASE is terminating abnormally.

Ситуацию это, собственно, не меняет, мне просто любопытно, что конкретно нужно сделать, чтобы получить две базы, смотрящие на одни файлы.
...
Рейтинг: 0 / 0
28.02.2018, 17:42
    #39608639
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
neorusYasha123,
Разобрался вроде бы в чем беда. Но даже если 2 базы смотрят на одни файлы. Но запись приложение вело только в базу scout_storage. Вторая база просто лежала в режиме ожидание восстановления. Могло это повлиять на свеже созданную?
вы меня запутали.
какая база лежала, а какая работала?

допустим, лежала база scout_storage_bad,
а в базу scout_storage все писалось.

тогда проблема у вас началась, когда кто-то сервер перезагрузил,
и вместо scout_storage в онлайн первой вышла scout_storage_bad.

тогда сейчас отправьте в оффлайн scout_storage_bad,
после этого scout_storage выйдет в онлайн.
...
Рейтинг: 0 / 0
28.02.2018, 17:44
    #39608641
neorus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
Вывел базу scout_storage_bad в offline
Теперь статус scout_storage стал подозрительный.
Каким скриптом ее теперь починить лучше?
...
Рейтинг: 0 / 0
28.02.2018, 17:47
    #39608645
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
MinamotoYasha123пропущено...

наверное, когда бэкап разворачивали,
не указали WITH MOVE.

Я честно попробовал. Нифига. Нужны какие то особые танцы с бубнами.
Вот что получается, если попытаться в файлы offline-базы восстановиться:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Msg 1834, Level 16, State 1, Line 2
The file 'D:\database\Data\test_offline.mdf' cannot be overwritten.  It is being used by database 'test_offline'.
Msg 3156, Level 16, State 4, Line 2
File 'test_offline' cannot be restored to 'D:\database\Data\test_offline.mdf'. Use WITH MOVE to identify a valid location for the file.
Msg 1834, Level 16, State 1, Line 2
The file 'D:\database\Data\test_offline_log.ldf' cannot be overwritten.  It is being used by database 'test_offline'.
Msg 3156, Level 16, State 4, Line 2
File 'test_offline_log' cannot be restored to 'D:\database\Data\test_offline_log.ldf'. Use WITH MOVE to identify a valid location for the file.
Msg 3119, Level 16, State 1, Line 2
Problems were identified while planning for the RESTORE statement. Previous messages provide details.
Msg 3013, Level 16, State 1, Line 2
RESTORE DATABASE is terminating abnormally.

Ситуацию это, собственно, не меняет, мне просто любопытно, что конкретно нужно сделать, чтобы получить две базы, смотрящие на одни файлы.
ну я сейчас попробую.
хотя я помню ситуацию, когда в порядке эксперимента
мне довелось восстановить мастер одного сервера (2008) на другом (2012).
оба сервера локальные, на одном ноуте жили.
и вот копия мастера 2008 апгрэйдилась, сервер (2012) поднялся,
но базы-то у него уже были не свои, а от 2008.
и тут мне зачем-то понадобился 2008.
так вот у него ни одна юзерская база в онлайн не вышла,
и все базы вот эту самую ошибку писали, что уже файлы заняты
...
Рейтинг: 0 / 0
28.02.2018, 17:55
    #39608648
Minamoto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
Yasha123Minamotoпропущено...

Я честно попробовал. Нифига. Нужны какие то особые танцы с бубнами.
Вот что получается, если попытаться в файлы offline-базы восстановиться:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Msg 1834, Level 16, State 1, Line 2
The file 'D:\database\Data\test_offline.mdf' cannot be overwritten.  It is being used by database 'test_offline'.
Msg 3156, Level 16, State 4, Line 2
File 'test_offline' cannot be restored to 'D:\database\Data\test_offline.mdf'. Use WITH MOVE to identify a valid location for the file.
Msg 1834, Level 16, State 1, Line 2
The file 'D:\database\Data\test_offline_log.ldf' cannot be overwritten.  It is being used by database 'test_offline'.
Msg 3156, Level 16, State 4, Line 2
File 'test_offline_log' cannot be restored to 'D:\database\Data\test_offline_log.ldf'. Use WITH MOVE to identify a valid location for the file.
Msg 3119, Level 16, State 1, Line 2
Problems were identified while planning for the RESTORE statement. Previous messages provide details.
Msg 3013, Level 16, State 1, Line 2
RESTORE DATABASE is terminating abnormally.

Ситуацию это, собственно, не меняет, мне просто любопытно, что конкретно нужно сделать, чтобы получить две базы, смотрящие на одни файлы.
ну я сейчас попробую.
хотя я помню ситуацию, когда в порядке эксперимента
мне довелось восстановить мастер одного сервера (2008) на другом (2012).
оба сервера локальные, на одном ноуте жили.
и вот копия мастера 2008 апгрэйдилась, сервер (2012) поднялся,
но базы-то у него уже были не свои, а от 2008.
и тут мне зачем-то понадобился 2008.
так вот у него ни одна юзерская база в онлайн не вышла,
и все базы вот эту самую ошибку писали, что уже файлы заняты
Получилось через attach.

вот вижу теперь эту волшебную ошибку:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Set offline failed for Database 'test_offline'. 

Unable to open the physical file "D:\database\Data\test_offline.mdf". Operating system error 32: 
"32(Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.)".
Unable to open the physical file "D:\database\Data\test_offline_log.ldf". Operating system error 32: 
"32(Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.)".
Could not restart database "test_offline". Reverting to the previous status.
ALTER DATABASE statement failed. (Microsoft SQL Server, Error: 5120)

И база при этом перешла в Recovery pending.

Если вторую базу вывести в offline, первая успешно выводится в online, что логично.
...
Рейтинг: 0 / 0
28.02.2018, 18:03
    #39608662
neorus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с восстановлением базы
Minamoto,

Ну вот собственно и убедился как руки чайника могут сотворить ситуацию, которую потом не могут повторить спецы.

Еще раз опишу ситуацию с самого начала.
12.02
Приложение перестало работать. Когда запустил менеджер SQL. У базы scout_storage стоял статус подозрительный . Тех поддержка сопровождающая предложение посоветовала выполнить скрипт
EXEC sp_resetstatus [scout_storage];
ALTER DATABASE [scout_storage] SET EMERGENCY
DBCC checkdb([scout_storage])
ALTER DATABASE [scout_storage] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DBCC CheckDB ([scout_storage], REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE [scout_storage] SET MULTI_USER

Но появлялась ошибка - файл занят. Как я полагаю надо было прежде чем запускать скрипт - вывести его в оффлайн режим. Я же только отключил приложение которое писало в эту базу.

В итоге я решил переименовать базу в scout_storage-bad - это мне сделать удалось после очередной перезагрузки сервера. статус базы так и остался ждет восстановления.
Затем я создал в ручную без скрипта новую базу scout_storage и развернул туда последний бекап из bak файла (режим копии полная).

И все работало до перезагрузки спустя 2 недели.

Не могу понять почему при переименовании сменилось имя базы в менеджере, файлы в папке тоже переименовались, а вот ссылки остались на прежние scout_storage. Видимо из-за того что переименовывал тоже руками через менеджер.

Т.е. у меня теперь вот такая ситуация:




Как можно вернуть базу в рабочее состояние?
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема с восстановлением базы / 25 сообщений из 35, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]