Jump to content

Recommended Posts

iiwanc25
Posted (edited)

Здравствуйте!

Решил обновить KSC 13.2 до 15

База в SQLExpress 12.0.2000

Перед обновлением решил сделать бэкап.

Задача резервного копирования в KSC 13.2 и утилита klbackup выдают:

База данных повреждена. Generic db error: "1823 'Невозможно создать моментальный снимок базы данных из-за ошибки ее запуска.{42000};' LastStatement='DBCC CHECKDB('KAV') WITH NO_INFOMSGS;'"

 

Не поможете с решением проблемы?

Edited by iiwanc25
durtuno
Posted
30 минут назад, iiwanc25 сказал:

База данных повреждена

И при этом "KSC" работает?

Возможно, что пользователю, из-под которого выполняется klbackup каких-нибудь прав не хватает?

Попробуйте сделать дамп БД с помощью средств MSSQL, ошибку покажет?

Гляньте системный журнал, может там будет какая-нибудь подсказка?

Какой объём файла БД, свободного места на томе хватает?

iiwanc25
Posted
1 час назад, andrew75 сказал:

Выполнил запрос к базе по рекомендации по ссылке:

DBCC CHECKDB('KAV');

 

Результат:

Сообщение 1823, уровень 16, состояние 2, строка 1
Невозможно создать моментальный снимок базы данных из-за ошибки ее запуска.
Сообщение 1823, уровень 16, состояние 8, строка 1
Невозможно создать моментальный снимок базы данных из-за ошибки ее запуска.
Сообщение 5170, уровень 16, состояние 1, строка 1
Невозможно создать файл "C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\KAV.mdf_MSSQL_DBCC7", так как он уже существует. Измените путь файла или его имя, после чего повторите операцию.
Сообщение 7928, уровень 16, состояние 1, строка 1
Не удалось создать моментальный снимок базы данных для проверки в сети. Причина содержится либо в предыдущем сообщении об ошибке, либо в том, что один из используемых дисковых томов не поддерживает разреженные файлы или дополнительные потоки. Производится попытка получить монопольный доступ для запуска проверки вне сети.
Сообщение 5030, уровень 16, состояние 12, строка 1
Базу данных нельзя заблокировать монопольно для выполнения операции.
Сообщение 7926, уровень 16, состояние 1, строка 1
Инструкция проверки отменена. База данных не может быть проверена, так как не удалось создать ее моментальный снимок, и база данных или таблица не может быть заблокирована. Более подробно о том, когда возникает данная ситуация и какие существуют обходные пути, см. электронную документацию. См. также предыдущие сообщения об ошибках.

 

Не совсем понимаю, что нужно сделать дальше.

Буду рад рекомендациям.

 

durtuno
Posted (edited)
23 минуты назад, iiwanc25 сказал:

Невозможно создать файл "C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\KAV.mdf_MSSQL_DBCC7", так как он уже существует. Измените путь файла или его имя, после чего повторите операцию.

Это может означать, что ранее уже начиналась проверка файла БД, но она по какой-то причине не удалась, а временный файл остался.

Какой датой создан указанный файл?

Как вариант, временно перенести этот файл в др. расположение и повторить проверку.

Edited by durtuno
  • Like 1
  • Solution
andrew75
Posted

Можно попробовать:

DBCC CHECKDB (KAV) WITH TABLOCK;

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

https://learn.microsoft.com/ru-ru/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver16

https://www.mssqltips.com/sqlservertip/2399/minimize-performance-impact-of-sql-server-dbcc-checkdb/

Или надо проверять права на файлы базы. Они должны быть не только на чтение.

https://forum.mista.ru/topic.php?id=811691

durtuno
Posted

Исходя из ошибки первого поста, проблема при доступе/ созданию файла при попытке выполнения проверки БД. Поэтому и были заданы наводящие вопросы про доступное место, права доступа и пр.

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

Поэтому следующим шагом предлагается установить дату и время создания этого временного файла, сопоставить с событиями на сервере, а после от этого файла избавиться.

  • Like 1
andrew75
Posted
2 минуты назад, durtuno сказал:

Поэтому следующим шагом предлагается установить дату и время создания этого временного файла, сопоставить с событиями на сервере, а после от этого файла избавиться.

согласен. Файл не просто так появился, нужно на него посмотреть.

iiwanc25
Posted
3 часа назад, andrew75 сказал:

Можно попробовать:

DBCC CHECKDB (KAV) WITH TABLOCK;

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

https://learn.microsoft.com/ru-ru/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver16

https://www.mssqltips.com/sqlservertip/2399/minimize-performance-impact-of-sql-server-dbcc-checkdb/

Или надо проверять права на файлы базы. Они должны быть не только на чтение.

https://forum.mista.ru/topic.php?id=811691

Спасибо. Помогло.

А временный файл появился после попытки проверки базы, но сервер завис. Принудительно отменял задачу. Сервер слабый.

Обновил KSC. всем спасибо большое 

  • Like 1

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now


×
×
  • Create New...