Я использую Process Explorer, чтобы определить, какой процесс заблокировал конкретный файл базы данных Fox Pro в Windows.
Это говорит мне, что система заблокировала это. Когда я иду убить процесс "System" (что, если вы спросите меня, звучит не очень хорошо), он спрашивает меня, уверен ли я, что хочу убить процесс System. Я не ответил yes
все же.
Это сервер компании, и я думаю, что, возможно, мой единственный выход - сказать всем, чтобы они отключились от него и перезагрузились.
Есть ли у меня другие варианты?
У вас есть много других вариантов, но вам нравится пытаться убить System
процесс, большинство из них тоже плохие идеи. (И, кстати, маловероятно, что увольнение каждого пользователя тоже поможет.)
Прежде всего, это файл базы данных. Таким образом, на нем есть блокировка файла, потому что что-то, например, механизм базы данных, читает или записывает в этот файл. Между прочим, это то, что происходит в 100% случаев, когда база данных находится в сети или доступна. Файл базы данных заблокирован. Так должно быть; так должно быть. Вам действительно не следует выполнять операции на уровне файлов с файлом базы данных, если вы действительно не знаете, что делаете в любом случае, что, простите меня за наблюдение, не похоже на описание, которое вам подходит.
Если вы должны выполнять операции на уровне файлов с базой данных, правильным решением является использование консоли управления базой данных и / или запросов SQL / ODBC, чтобы перевести базу данных в автономный режим и / или «отсоединить» ее. Вы можете сделать это, пока база данных находится в оперативном режиме, только если у вас включены кластеризация, зеркальное отображение или другие функции высокой доступности. (Если вам нужно спросить, вы этого не сделаете. Или вам следует очень усердно молиться, чтобы вы этого не сделали.) Когда база данных больше не используется, вы можете поиграть с файлом, сколько душе угодно, хотя, опять же, вы не следует, если вы действительно не знаете, что делаете.
Если это невозможно, что время от времени случается, лучше всего остановить механизм базы данных, который будет работать как служба. Это должно быть возможно сделать из командной строки с помощью net stop
или через оснастку GUI MMC services.msc
или, в крайнем случае, через диспетчер задач, завершив процесс. Это должно снять блокировку и позволить вам делать с файлом все, что вы собираетесь делать, что, опять же, вероятно, плохая идея. Если служба не может быть остановлена и процесс не может быть уничтожен, вы смотрите на перезагрузку системы, так как служба зависает в ожидании ресурса ядра и не снимает блокировку файла.
Теперь, прежде чем вы броситесь и попытаетесь остановить процесс, может быть, стоит еще один вопрос о том, как достичь того, чего вы в конечном итоге пытаетесь достичь. По крайней мере, мне кажется, это более разумный подход.