У меня есть одна база данных на моем сервере, которая постоянно становится недоступной. Чтобы исправить, я отключаю его, а затем снова в сети. При просмотре программы просмотра событий быстро сменяются три ошибки:
FCB :: Open failed: не удалось открыть файл C: ... \ MyDatabase.mdf для файла номер 1. Ошибка ОС: 32 (процесс не может получить доступ к файлу, потому что он используется другим процессом.).
FCB :: Open failed: не удалось открыть файл C: ... \ MyDatabase_1.ldf для файла номер 2. Ошибка ОС: 32 (процесс не может получить доступ к файлу, потому что он используется другим процессом.).
Произошла ошибка активации файла. Физическое имя файла "C: ... \ MyDatabase_1.ldf" может быть неправильным. Диагностируйте и исправьте дополнительные ошибки и повторите операцию.
Если посмотреть на свойства базы данных, путь к файлу журнала выглядит правильным. Я не совсем администратор базы данных, но играю в него по необходимости. Что еще мне здесь нужно искать?
(SQL Server 2008 Express с пакетом обновления 1)
Как сказал Рэндольф, у вас, вероятно, есть AV-процесс, удерживающий рассматриваемые файлы. Чтобы убедиться в этом, загрузите Process Explorer или handle.exe (или оба!) Из Sysinternals в Microsoft. Изучите и полюбите все их инструменты.
Если это не AV, а что-то еще, что заблокировало эти файлы, исправьте что бы то ни было.
Кроме того, вам не нужны файлы данных или журналов на системном томе (обычно на диске C: \). Если они заполняют диск, вы отключили свой сервер. Вероятно, вы захотите, чтобы они были на другой громкости. Предостережение - с SQL Express ваш максимальный размер БД может быть меньше, чем количество свободного места, которое у вас когда-либо будет на диске, но хотите ли вы рассчитывать, что это всегда будет правдой?
Я тоже пытался исправить эту ошибку целую вечность! Различные форумы на www не предоставляют постоянного исправления, но мне кажется, что правильным решением является использование обозревателя процессов, такого как EMCO UnlockIt, чтобы доказать, что при возникновении ошибки файл журнала или файл mdf, который ваш веб-сайт пытается открыть, определенно в этот момент блокируется sql server express (даже после того, как вы закрыли экспресс-приложение sql server). Таким образом, после закрытия SQL Server вы по-прежнему получаете сообщение об ошибке при входе на свой веб-сайт.
Думаю, ошибка вполне верна. Недостаточно процессов, которым разрешен доступ ни к файлу журнала, ни к базе данных, ни к обоим. Если у вас есть веб-сайт, открытый на вашем рабочем столе, и, следовательно, он обращается к базе данных, и, возможно, какой-то другой пользователь тоже пытается сделать это (возможно, даже в другую базу данных, если у вас более одного размещенного веб-сайта). Что ж, вам нужно как минимум 2 одновременных процесса, и это до того, как SQL Server сохранил один, поэтому вам понадобятся 3 процесса и еще один, когда другие пользователи подключаются, еще больше. Могу ошибаться, я не специалист в этом вопросе. Тем не мение:-
Если вы откроете SQLSERVER EXPRESS и щелкните правой кнопкой мыши корневой узел, вы можете увеличить порог для заблокированных процессов на вкладке «Дополнительно», а также можете увеличить максимальное количество одновременных подключений. Мне кажется, что это решение, в любом случае я увеличил свой порог для заблокированных процессов с 0 до 12, и пока он работает нормально. Возможно, уже довольно поздно, поэтому не многие пользователи пытаются подключиться, но в любом случае это кажется мне разумным решением!
Удачи. Фрэнки, Лидс, Западный Йоркшир, Великобритания