powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Восстановить базу
35 сообщений из 35, показаны все 2 страниц
Восстановить базу
    #39976867
rauol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток. Пришла беда, откуда не ждали. Увалилась база. MSSQL висит Recovering Pending.
Создал новую, с таким же именем, стопнул сервер, заменил MDF, запустил сервер, сделал следующее:
USE master
GO
sp_configure 'allow updates', 1
reconfigure WITH override
GO
ALTER DATABASE db_name SET EMERGENCY, SINGLE_USER
GO
Получил
Configuration option 'allow updates' changed from 1 to 1. Run the RECONFIGURE statement to install.
Msg 601, Level 12, State 3, Line 6
Could not continue scan with NOLOCK due to data movement.
Could not continue scan with NOLOCK due to data movement. - это приговор, как это победить???
Прошу у Вас помощи.
...
Рейтинг: 0 / 0
Восстановить базу
    #39976873
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rauol,

версия сервера какая?

allow updates начиная с 2005 не оказывает никакого влияния, чего вы этим хотели добиться?
...
Рейтинг: 0 / 0
Восстановить базу
    #39976875
rauol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff,сильно тапками не закидывайте... 17-я версия.
База в Recovering Pending. Подскажите, как ее реанимировать...? Буду признателен.
...
Рейтинг: 0 / 0
Восстановить базу
    #39976881
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Восстановить из бэкапа.
...
Рейтинг: 0 / 0
Восстановить базу
    #39976883
rauol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич,
восстановил бы и этой темы здесь не было, но что случилось, то случилось... Если знаете, как восстановить, подмогните.
...
Рейтинг: 0 / 0
Восстановить базу
    #39976888
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rauol
Гавриленко Сергей Алексеевич,
восстановил бы и этой темы здесь не было, но что случилось, то случилось... Если знаете, как восстановить, подмогните.
Штатными средствами база восстанавливается из бэкапа. Еще можно пошаманить с DBCC CHECKDB (как правило, с печальными результатами).
...
Рейтинг: 0 / 0
Восстановить базу
    #39976890
rauol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич,
Еще раз повторюсь, про бекап в курсе, и темы бы не было. Терять все равно уже нечего, поэтому буду признателен, если подскажите про DBCC CHECKDB. Загвоздка в том ,что затыкается, не дойдя до DBCC CHECKDB
...
Рейтинг: 0 / 0
Восстановить базу
    #39976892
Артем Falcon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выполни ЭТИ пять запросов подряд на своей зависшей базе, - ЗАРАБОТАЕТ:
alter database имя_твоей_базы set emergency
dbcc checkdb('имя_твоей_базы')
alter database имя_твоей_базы set single_user
dbcc checkdb('имя_твоей_базы', repair_allow_data_loss)
alter database имя_твоей_базы set multi_user
...
Рейтинг: 0 / 0
Восстановить базу
    #39976893
rauol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Артем Falcon,
Сейчас попробую. Спасибо. Отпишу по результату.
...
Рейтинг: 0 / 0
Восстановить базу
    #39976902
rauol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Артем Falcon,
Запрос
alter database имя_твоей_базы set emergency
В ответ
Msg 601, Level 12, State 3, Line 1
Could not continue scan with NOLOCK due to data movement.
Запрос
dbcc checkdb('имя_твоей_базы')
Ответ
Msg 945, Level 14, State 2, Line 1
Database 'имя_твоей_базы' cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details.

Запрос
alter database имя_твоей_базы set single_user
Ответ
Msg 601, Level 12, State 3, Line 1
Could not continue scan with NOLOCK due to data movement.
Остальные запросы не делал, нет смысла, и так понятно, воткнулась на первом запросе, НО в EMERGENCY перешла.
...
Рейтинг: 0 / 0
Восстановить базу
    #39976904
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rauol,

DBCC CHECKDB(MY_DATABASE) WITH PHYSICAL_ONLY
...
Рейтинг: 0 / 0
Восстановить базу
    #39976906
rauol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Relic Hunter,
Msg 945, Level 14, State 2, Line 1
Database 'MY_DATABASE' cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details.
...
Рейтинг: 0 / 0
Восстановить базу
    #39976907
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rauol
Relic Hunter,
Msg 945, Level 14, State 2, Line 1
Database 'MY_DATABASE' cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details.
И что там в SQL Server errorlog?
...
Рейтинг: 0 / 0
Восстановить базу
    #39976908
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rauol
Relic Hunter,
Msg 945, Level 14, State 2, Line 1
Database 'MY_DATABASE' cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details.
Права у сервиса на подмененные файла точно есть? С именами ничего не напутали? Ато мы тут расследуем что-то, а вы где-то просто описАлись ))
...
Рейтинг: 0 / 0
Восстановить базу
    #39976925
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rauol
cannot be opened due to inaccessible files or insufficient memory or disk space.

А эта фраза вас ни на какие размышления не приводит?
И да! Покажите что у вас в errorlog.
...
Рейтинг: 0 / 0
Восстановить базу
    #39976926
rauol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL2008,
Проверял, есть. Пользователь, от которого работает служба sql, имеет полный доступ на папку и файл. В качестве теста, раскатал бекап другой базы, в проблемную, работает.
...
Рейтинг: 0 / 0
Восстановить базу
    #39976984
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rauol,

в третий раз: покажите errorlog

попробуйте это с копией файла данных, может сработает
https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-attach-single-file-db-transact-sql
...
Рейтинг: 0 / 0
Восстановить базу
    #39977027
rauol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad,

07/07/2020 03:10:18,Logon,Unknown,Login failed for user 'SERVER1C\Администратор'. Reason: Failed to open the explicitly specified database 'my_base'. [CLIENT: <local machine>]
07/07/2020 03:10:18,Logon,Unknown,Error: 18456<c/> Severity: 14<c/> State: 38.
07/07/2020 03:10:08,Logon,Unknown,Login failed for user 'SERVER1C\Администратор'. Reason: Failed to open the explicitly specified database 'my_base'. [CLIENT: <local machine>]
07/07/2020 03:10:08,Logon,Unknown,Error: 18456<c/> Severity: 14<c/> State: 38.
07/07/2020 03:08:16,spid51,Unknown,An error occurred while processing the log for database 'my_base'. If possible<c/> restore from backup. If a backup is not available<c/> it might be necessary to rebuild the log.
07/07/2020 03:08:16,spid51,Unknown,Error: 9004<c/> Severity: 21<c/> State: 1.
07/07/2020 03:08:16,spid51,Unknown,Starting up database 'my_base'.
07/07/2020 03:08:16,spid51,Unknown,Setting database option ONLINE to ON for database 'my_base'.
07/07/2020 03:08:16,spid51,Unknown,An error occurred while processing the log for database 'my_base'. If possible<c/> restore from backup. If a backup is not available<c/> it might be necessary to rebuild the log.
07/07/2020 03:08:16,spid51,Unknown,Error: 9004<c/> Severity: 21<c/> State: 1.
07/07/2020 03:08:16,spid51,Unknown,Starting up database 'my_base'.
07/07/2020 03:08:16,spid51,Unknown,Setting database option ONLINE to ON for database 'my_base'.
07/07/2020 03:06:13,spid51,Unknown,Setting database option OFFLINE to ON for database 'my_base'.
...
Рейтинг: 0 / 0
Восстановить базу
    #39977032
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас битый лог. Или вы подсунули неправильный файл лога после ваших манипуляций.

С бэкапами мы уже разобрались -- у вас их нет. Поэтому делайте ребилд логу.

https://www.sqlrx.com/rebuild-lost-or-deleted-transaction-log-files/
...
Рейтинг: 0 / 0
Восстановить базу
    #39977036
rauol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич,
Правильно понимаю, вот эти запросы мне нужны?
USE master

GO

ALTER DATABASE [dbname] SET EMERGENCY

GO

ALTER DATABASE [dbname] SET SINGLE_USER

GO

ALTER DATABASE [dbname] REBUILD LOG ON

(NAME= logicalname, FILENAME=’Drive path to new file location\Log file name.ldf’) — Like ‘E:\MSSQL\LOGS\DB_Log.ldf’

GO

DBCC CHECKDB ([dbname])

GO

— DBCC CHECKDB ([dbname], REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS, ALL_ERRORMSGS;

— GO

ALTER DATABASE [dbname] SET MULTI_USER

GO
...
Рейтинг: 0 / 0
Восстановить базу
    #39977060
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rauol
Гавриленко Сергей Алексеевич,
Правильно понимаю, вот эти запросы мне нужны?
USE master

GO

ALTER DATABASE [dbname] SET EMERGENCY

GO



уже первый alter ... emergency не сработает, как не срабатывал ранее

попробуйте приаттачить файл данных, без лога, ссылку давал выше
...
Рейтинг: 0 / 0
Восстановить базу
    #39977238
rauol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad,
Запрос
USE master;
GO
EXEC sp_attach_single_file_db @dbname = 'my_base',
@physname =
N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\my_base.mdf';
Ответ
File activation failure. The physical file name "C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\my_base_log.ldf" may be incorrect.
The log cannot be rebuilt because there were open transactions/users when the database was shutdown, no checkpoint occurred to the database, or the database was read-only. This error could occur if the transaction log file was manually deleted or lost due to a hardware or environment failure.
Msg 1813, Level 16, State 2, Line 3
Could not open new database 'my_base'. CREATE DATABASE is aborted.
LOG
07/07/2020 23:25:11,spid52,Unknown,FileMgr::StartLogFiles: Operating system error 2(Не удается найти указанный файл.) occurred while creating or opening file 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\my_base_log.ldf'. Diagnose and correct the operating system error<c/> and retry the operation.
07/07/2020 23:25:11,spid52,Unknown,Error: 17207<c/> Severity: 16<c/> State: 1.
07/07/2020 23:25:11,spid52,Unknown,Starting up database 'my_base'.
...
Рейтинг: 0 / 0
Восстановить базу
    #39977244
rauol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выполнил запрос
USE master;

CREATE DATABASE [my_base]
ON ( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\my_base.mdf' )
FOR ATTACH_FORCE_REBUILD_LOG;
GO
Ответ
File activation failure. The physical file name "C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\my_base_log.ldf" may be incorrect.
New log file 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\my_base_log.ldf' was created.
Msg 1813, Level 16, State 2, Line 6
Could not open new database 'my_base'. CREATE DATABASE is aborted.
Msg 605, Level 21, State 3, Line 6
Attempt to fetch logical page (1:37115) in database 5 failed. It belongs to allocation unit 72057598646288384 not to 281474980642816.
...
Рейтинг: 0 / 0
Восстановить базу
    #39977245
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rauol,

там в конце попробуйте рекомендацию с traceon 3604


https://www.mssqltips.com/sqlservertip/3579/how-to-attach-a-sql-server-database-without-a-transaction-log-and-with-open-transactions/
...
Рейтинг: 0 / 0
Восстановить базу
    #39977660
rauol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Relic Hunter,
Запрос
USE master
GO

DBCC TRACEON(3604)
GO

ALTER DATABASE my_base SET EMERGENCY
GO

ALTER DATABASE my_base SET SINGLE_USER
GO

DBCC CHECKDB('my_base', REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS
GO

ALTER DATABASE my_base SET MULTI_USER
GO
Ответ
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Msg 601, Level 12, State 3, Line 7
Could not continue scan with NOLOCK due to data movement.
Msg 601, Level 12, State 3, Line 10
Could not continue scan with NOLOCK due to data movement.
Msg 945, Level 14, State 2, Line 13
Database 'my_base' cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details.
Msg 601, Level 12, State 3, Line 16
Could not continue scan with NOLOCK due to data movement.
LOG
Date,Source,Severity,Message
07/08/2020 23:26:38,spid53,Unknown,The database 'my_base' is marked EMERGENCY_MODE and is in a state that does not allow recovery to be run.
07/08/2020 23:26:38,spid53,Unknown,Starting up database 'my_base'.
07/08/2020 23:26:38,spid53,Unknown,Setting database option MULTI_USER to ON for database 'my_base'.
07/08/2020 23:26:38,spid53,Unknown,The database 'my_base' is marked EMERGENCY_MODE and is in a state that does not allow recovery to be run.
07/08/2020 23:26:38,spid53,Unknown,Starting up database 'my_base'.
07/08/2020 23:26:38,spid53,Unknown,Setting database option SINGLE_USER to ON for database 'my_base'.
07/08/2020 23:26:38,spid53,Unknown,The database 'my_base' is marked EMERGENCY_MODE and is in a state that does not allow recovery to be run.
07/08/2020 23:26:38,spid53,Unknown,Starting up database 'my_base'.
07/08/2020 23:26:38,spid53,Unknown,Setting database option EMERGENCY to ON for database 'my_base'.
07/08/2020 23:26:38,spid53,Unknown,DBCC TRACEON 3604<c/> server process ID (SPID) 53. This is an informational message only; no user action is required.

Есть мысли? Уже руки опускаются!!!
...
Рейтинг: 0 / 0
Восстановить базу
    #39977673
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rauol,

Код: sql
1.
2.
3.
4.
5.
6.
USE master;

CREATE DATABASE [my_base]
ON ( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\my_base.mdf' )
FOR ATTACH_FORCE_REBUILD_LOG;
GO




вот эту хрень нужно выполнять на серверe испод админ учетки, ане клиентской машине. как и другие команды.
...
Рейтинг: 0 / 0
Восстановить базу
    #39977681
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а не, там лог уже пересоздался я смотрю. тогда в топку))
...
Рейтинг: 0 / 0
Восстановить базу
    #39977706
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rauol,

Насколько я помню, ошибка "Could not continue scan with NOLOCK due to data movement." не лечится.
БД у вас уже в emergency. Поэтому можете создавть рядом новую пустую БД аналогичной структуры и перелить в нее хоть какие-то данные из погибшей.
...
Рейтинг: 0 / 0
Восстановить базу
    #39977729
rauol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm,
вопрос в том, как эти данные перелить? Подскажите?
И в целом, может кто то посодействовать в этом вопросе, за разумное вознаграждение?
...
Рейтинг: 0 / 0
Восстановить базу
    #39977730
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rauol
invm,
вопрос в том, как эти данные перелить? Подскажите?
И в целом, может кто то посодействовать в этом вопросе, за разумное вознаграждение?
Ищите на просторах интернета специализированные конторы или задавайте этот вопрос вот тут: https://www.sql.ru/forum/job
...
Рейтинг: 0 / 0
Восстановить базу
    #39977733
rauol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич,
База труп, как думаете?
...
Рейтинг: 0 / 0
Восстановить базу
    #39977836
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rauol
Гавриленко Сергей Алексеевич,
База труп, как думаете?


может удастся что-нибудь вытащить

https://www.stellarinfo.com/sql-recovery.php
...
Рейтинг: 0 / 0
Восстановить базу
    #39978077
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rauol
Гавриленко Сергей Алексеевич,
База труп, как думаете?


попробуй следующее:
поскольку база в emergency, в нее можно зайти и выполнить команду

Код: sql
1.
2.
3.
4.
5.
6.
7.
select 
schema_name(schema_id) [schema]
,name [table]
,'bcp '+quotename(db_name())+'.'+quotename(schema_name(schema_id))+'.'+quotename(name)+' out '+quotename(schema_name(schema_id))+'_'+quotename(name)+'.dat -S '+convert(varchar(50),@@servername)+ ' -T -n > '+quotename(schema_name(schema_id))+'_'+quotename(name)+'_extract.txt' [extract command]
,'bcp NEWDB.'+quotename(schema_name(schema_id))+'.'+quotename(name)+' in '+quotename(schema_name(schema_id))+'_'+quotename(name)+'.dat -S '+convert(varchar(50),@@servername)+ ' -T -n > '+quotename(schema_name(schema_id))+'_'+quotename(name)+'_upload.txt' [upload command]
from sys.objects 
where type='U'



это даст список таблиц и команд на выгрузку и загрузку данных

сохрани вывод и попробуй выгрузить данные командами из [extract command]
выполнять из командной строки; можно по одной, можно обернуть в батник
по умолчанию выгружать будет в текущую директорию в файлы .dat, поэтому проверь место или поправь пути

по окончании процесса проанализируй файлы _extract.txt на предмет ошибок выгрузки
битые таблицы можно попробовать выгружать по частям, разбивая таблицу на диапазоны и используя ключи -F -L

заливать данные можно используя команды из upload command в базу NEWDB, анализируя результат в файлах _upload.txt

остальные объекты можно взять из старого бекапа или выковырять их код из sys.comments и т.п.
...
Рейтинг: 0 / 0
Восстановить базу
    #39980798
rauol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad, можно как то с Вами связаться лично, по почте например?
...
Рейтинг: 0 / 0
Восстановить базу
    #39980833
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rauol,
см профиль
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Восстановить базу
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]