Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Что означает "FCB::Open failed: Could not open file"  [new]
Chitago
Member

Откуда:
Сообщений: 311
Привет,

Коротко о себе - полный дуб в SQL Server. Занимаюсь больше 15 лет Oracle'ом, а тут заставили ещё и SQL Server'ом.

Проблема - в SCOM горит алёрт:
FCB::Open failed: Could not open file D:\INFRA\clonet\c481cf6d-6d32-4266-b4bb-c5a07b6d125b\infra\complinet_tms5_system.mdf for file number 1. OS error: 3(The system cannot find the path specified.).

Но когда я выполняю:
sp_helpdb;

Complinet_TMS5	   7221.75 MB	DOMAIN\username	17	Jul 17 2014	Status=ONLINE, Updateability=READ_ONLY, UserAccess=MULTI_USER, Recovery=FULL, Version=706, Collation=Latin1_General_CI_AS, SQLSortOrder=0, IsTornPageDetectionEnabled, IsAutoCreateStatistics, IsAutoUpdateStatistics, IsFullTextEnabled	100

SELECT physical_name
FROM master.sys.master_files
WHERE database_id = 17;
go

то вижу:
D:\INFRA\Complinet_TMS5_SYSTEM.MDF
F:\INFRA\Complinet_TMS5_LOG.ldf
D:\INFRA\Complinet_TMS5_TABLES.MDF
D:\INFRA\Complinet_TMS5_INDEX.MDF

Так что такое "\clonet\c481cf6d-6d32-4266-b4bb-c5a07b6d125b\" и откуда оно взялось?
3 ноя 14, 12:38    [16792277]     Ответить | Цитировать Сообщить модератору
 Re: Что означает "FCB::Open failed: Could not open file"  [new]
Glory
Member

Откуда:
Сообщений: 104751
OS error: 3(The system cannot find the path specified.).
3 ноя 14, 13:14    [16792280]     Ответить | Цитировать Сообщить модератору
 Re: Что означает "FCB::Open failed: Could not open file"  [new]
Chitago
Member

Откуда:
Сообщений: 311
Glory
OS error: 3(The system cannot find the path specified.).

Вопрос почему в алёрте в пути к файлу присутствует "\clonet\c481cf6d-6d32-4266-b4bb-c5a07b6d125b\infra\", а когда я получаю путь из master.sys.master_files, то пути к файлам очень простые: D:\INFRA\ и F:\INFRA\
3 ноя 14, 13:16    [16792287]     Ответить | Цитировать Сообщить модератору
 Re: Что означает "FCB::Open failed: Could not open file"  [new]
Glory
Member

Откуда:
Сообщений: 104751
Chitago
Вопрос почему в алёрте в пути к файлу присутствует "\clonet\c481cf6d-6d32-4266-b4bb-c5a07b6d125b\infra\", а когда я получаю путь из master.sys.master_files, то пути к файлам очень простые: D:\INFRA\ и F:\INFRA\

А почему вы думаете, что это сообщение относится к базе Complinet_TMS5 ?
3 ноя 14, 13:18    [16792293]     Ответить | Цитировать Сообщить модератору
 Re: Что означает "FCB::Open failed: Could not open file"  [new]
Chitago
Member

Откуда:
Сообщений: 311
Glory
Chitago
Вопрос почему в алёрте в пути к файлу присутствует "\clonet\c481cf6d-6d32-4266-b4bb-c5a07b6d125b\infra\", а когда я получаю путь из master.sys.master_files, то пути к файлам очень простые: D:\INFRA\ и F:\INFRA\

А почему вы думаете, что это сообщение относится к базе Complinet_TMS5 ?
Потому что D:\INFRA\clonet\c481cf6d-6d32-4266-b4bb-c5a07b6d125b\infra\complinet_tms5_system.mdf. А могут быть варианты?
3 ноя 14, 13:19    [16792295]     Ответить | Цитировать Сообщить модератору
 Re: Что означает "FCB::Open failed: Could not open file"  [new]
Glory
Member

Откуда:
Сообщений: 104751
Chitago
Потому что D:\INFRA\clonet\c481cf6d-6d32-4266-b4bb-c5a07b6d125b\infra\complinet_tms5_system.mdf.

железобетонная логика
Т.е. любой файл с баквами complinet_tms5 в именовании совершенно точно относится к вашей базе ?

Chitago
А могут быть варианты?

Узнать, что заставило SCOM искать этот файл
3 ноя 14, 13:22    [16792299]     Ответить | Цитировать Сообщить модератору
 Re: Что означает "FCB::Open failed: Could not open file"  [new]
Chitago
Member

Откуда:
Сообщений: 311
Glory
Chitago
Потому что D:\INFRA\clonet\c481cf6d-6d32-4266-b4bb-c5a07b6d125b\infra\complinet_tms5_system.mdf.

железобетонная логика
Т.е. любой файл с баквами complinet_tms5 в именовании совершенно точно относится к вашей базе ?
Ну как будто есть некие стандарты именования.

Glory
Chitago
А могут быть варианты?

Узнать, что заставило SCOM искать этот файл

Вот я и хотел узнать куда смотреть.
3 ноя 14, 13:25    [16792316]     Ответить | Цитировать Сообщить модератору
 Re: Что означает "FCB::Open failed: Could not open file"  [new]
Glory
Member

Откуда:
Сообщений: 104751
Chitago
Вот я и хотел узнать куда смотреть.

В хелп SCOM-а наверное
Он же какой то файл хочет открыть, а не MSSQL
3 ноя 14, 13:31    [16792334]     Ответить | Цитировать Сообщить модератору
 Re: Что означает "FCB::Open failed: Could not open file"  [new]
Chitago
Member

Откуда:
Сообщений: 311
У алёрта следующие свойства:
Source: "имя инстанса SQL Server"
Full Path Name: "SERVER\INSTANCE"
Alert Rule: "Failed to open primary database file"
Description: "FCB::Open failed: Could not open file D:\INFRA\clonet\c481cf6d-6d32-4266-b4bb-c5a07b6d125b\infra\complinet_tms5_system.mdf for file number 1. OS error: 3(The system cannot find the path specified.)."

Такой же алёрт есть для журнального файла.

Мне кажется, что это всё-таки приходит со стороны SQL Server'а
3 ноя 14, 13:37    [16792355]     Ответить | Цитировать Сообщить модератору
 Re: Что означает "FCB::Open failed: Could not open file"  [new]
Glory
Member

Откуда:
Сообщений: 104751
Chitago
Мне кажется, что это всё-таки приходит со стороны SQL Server'а

Тогда это должно быть видно в логах самого SQL Server'а
3 ноя 14, 13:38    [16792361]     Ответить | Цитировать Сообщить модератору
 Re: Что означает "FCB::Open failed: Could not open file"  [new]
o-o
Guest
Chitago
Glory
Chitago
Потому что D:\INFRA\clonet\c481cf6d-6d32-4266-b4bb-c5a07b6d125b\infra\complinet_tms5_system.mdf. А могут быть варианты?


железобетонная логика
Т.е. любой файл с баквами complinet_tms5 в именовании совершенно точно относится к вашей базе ?
Ну как будто есть некие стандарты именования.
Вот я и хотел узнать куда смотреть.


смотреть сюда:
SELECT *
FROM sys.master_files
WHERE physical_name = 'D:\INFRA\clonet\c481cf6d-6d32-4266-b4bb-c5a07b6d125b\infra\complinet_tms5_system.mdf';

узнаете, это mdf какой-то базы (и какой именно) или просто так.
---

пример по поводу "Ну как будто есть некие стандарты именования".
наименования есть, но, допустим, мной руководят не стандарты, а лень, я хочу иметь копию базы db0
под новым названием db_test (см. на картинке проделанное в комментарии).
копирую файлы базы db0 пока та в оффлайне, создаю базу db_test, не переименовывая файлы.
заметьте, все работает.

а теперь я хочу вашу ошибку воспроизвести и действительно переименовываю db0.mdf + restart.
аналогичный вашему запрос покажет мне обе базы в онлайне.
и даже студия желтым отрисует. хотя и не откроет.
а в errorlog сервера имеем:
FCB::Open failed: Could not open file C:\_new_location\db0.mdf for file number 1. OS error: 2(failed to retrieve text for this error. Reason: 1815).
правда у меня OS error: 2, а у вас 3.
наверное, если папку совсем затереть, то и будет 3.

К сообщению приложен файл. Размер - 74Kb
3 ноя 14, 14:49    [16792589]     Ответить | Цитировать Сообщить модератору
 Re: Что означает "FCB::Open failed: Could not open file"  [new]
Chitago
Member

Откуда:
Сообщений: 311
o-o,

Спасибо, подтолкнуло в правильном направлении. Glory тоже на это намекал.

Всего в sys.master_files нашлось четыре "неправильных" файла, для всех database id равен 13.
Но в таблице, возвращаемой sp_helpdb такого id нет. Но зато есть БД Complinet_TMS6 в состоянии Recovery Pending. Вероятно кто-то делал копию (наверняка должно было быть cloned, а не clonet) и что-то потом случилось.

Я не нашёл связи между БД и файлами. Если я удалю БД, то файлы исчезнут из sys.master_files или надо будет дополнительно что-то делать?
3 ноя 14, 16:41    [16792850]     Ответить | Цитировать Сообщить модератору
 Re: Что означает "FCB::Open failed: Could not open file"  [new]
o-o
Guest
Chitago
Но в таблице, возвращаемой sp_helpdb такого id нет.

еще бы. к ней же нет доступа.
кроме вкладки Results, в Output-е есть еще вкладка Messages,
там посмотрите, наверняка найдете "No permission to access database ...".
база была, а потом ей каталог с файлами переименовали или грохнули совсем (да,
при несуществующем имени каталога ошибка именно 3)
теперь если вам база не нужна, можно ее дропнуть (drop database ...).

но вообще-то она же зачем-то была создана?

select name, state_desc
from sys.databases
where database_id = 13

тут RECOVERY_PENDING, да?

сервер надеется когда-нибудь найти файлы базы там, где указано.
3 ноя 14, 17:25    [16793021]     Ответить | Цитировать Сообщить модератору
 Re: Что означает "FCB::Open failed: Could not open file"  [new]
Chitago
Member

Откуда:
Сообщений: 311
o-o
Chitago
Но в таблице, возвращаемой sp_helpdb такого id нет.

еще бы. к ней же нет доступа.
кроме вкладки Results, в Output-е есть еще вкладка Messages,
там посмотрите, наверняка найдете "No permission to access database ...".

Так и есть: No permission to access database 'Complinet_TMS6'.
o-o
база была, а потом ей каталог с файлами переименовали или грохнули совсем (да,
при несуществующем имени каталога ошибка именно 3)
теперь если вам база не нужна, можно ее дропнуть (drop database ...).

но вообще-то она же зачем-то была создана?

Каталоги, кстати, существуют и для файлов данных, и для журналов. Но они пустые.
Судя по названию БД - Complinet_TMS6 и именам файлов с TMS5 это была явно копия для каких-нибудь тестов.

o-o
select name, state_desc
from sys.databases
where database_id = 13

тут RECOVERY_PENDING, да?

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

Да, там RECOVERY_PENDING. Но файлов уже явно не найти. Значит я могу с чистой совестью удалить БД.
Спасибо большое, узнал много нового, пока разбирался.
3 ноя 14, 18:08    [16793157]     Ответить | Цитировать Сообщить модератору
 Re: Что означает "FCB::Open failed: Could not open file"  [new]
o-o
Guest
Chitago
Каталоги, кстати, существуют и для файлов данных, и для журналов. Но они пустые.

странно, были бы пустые, не находил бы сами файлы, ошибка была бы 2.
а она именно что 3, т.е. не находит именно папки.
ну ладно, раз не нужна, то какая уже разница, drop database и no problem :)
3 ноя 14, 18:32    [16793202]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить