Я намагаюся створити базу даних для цілей розробки на локальному SQL Server Developer Edition 12.0.2000.8 мого ПК. У мене є повне резервне копіювання бази даних та окремі файли резервного копіювання лише журналів транзакцій, які були надіслані мені по мережі.
Коли я намагаюся відновити з повного резервного копіювання, через деякий час (~ 1 годину, можливо, база даних має розмір ~ 270 ГБ), я отримую помилку:
System.Data.SqlClient.SqlError: Під час обробки журналу "ім'я бази даних" сталася помилка. Якщо можливо, відновіть із резервної копії. Якщо резервна копія недоступна, може знадобитися відновити журнал. (Microsoft.SqlServer.SmoExtended)
Після цього db перебуває у стані «Відновлення ..».
Я хотів запустити щось на кшталт (отримав це з цього питання)
ALTER DATABASE recovery_test_2 SET EMERGENCY;
ALTER DATABASE recovery_test_2 SET SINGLE_USER;
DBCC CHECKDB (recovery_test_2, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS, ALL_ERRORMSGS;
проти цього, але, природно, я не можу, оскільки база даних перебуває у стані "Відновлення ..". Перезапуск процесу відновлення на ній призводить до того ж повідомлення про помилку, випадання та відновлення знову також не допомогло.
Як мені налаштувати db і працювати? Транзакційна консистенція для мене не має значення.
Сценарій відновлення SSS, створений автоматично:
USE [master]
RESTORE DATABASE [database_name] FROM DISK = N'D:\database_name.bak' WITH FILE = 1,
MOVE N'database_name' TO N'D:\MSSQL\MSSQL12.MSSQLSERVER\MSSQL\DATA\database_name.mdf',
MOVE N'database_name_index' TO N'D:\MSSQL\MSSQL12.MSSQLSERVER\MSSQL\DATA\database_name_index.ndf',
MOVE N'database_name_log' TO N'D:\MSSQL\MSSQL12.MSSQLSERVER\MSSQL\DATA\database_name_log.ldf',
NOUNLOAD,
STATS = 5
GO
Результат запиту, запропонований @Craig Efrein
Журнал не може бути відновлений, тому що при закритті бази даних були відкриті транзакції / користувачі, в базі даних не відбулося жодної контрольної точки, або база даних була лише для читання. Ця помилка може статися, якщо файл журналу транзакцій було видалено або загублено вручну через помилку обладнання або середовища.