powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Восстановление базы из журнала транзакций
25 сообщений из 38, страница 1 из 2
Восстановление базы из журнала транзакций
    #39752897
Siver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени уважаемые форумчане.
По необходимости появилась необходимость восстановить базу из резервной копии по состоянию на 17 декабря. Все хорошо, бэкапы делаются, взялся за восстановление. Пользовался MSSQL Studio. Вроде как все просто. Создаем новую базу, По необходимой базе кликаем правой кнопкой, Восстановить, указываем в качестве источника родительскую базу, в качестве результата - тестовую. В интервале времени - выбираем нужную дату и вперед.
И вот на этом этапе начинаются чудеса. База исходная встает на "Восстановление из копии" С тестовой базой ничего не происходит.
Через некоторое время, я обнаружил, что бэкапы из SQL не выполнялись по причине переноса виртуальной машины с сервером 1С и MSSQL на другой RAID-контроллер, в следствии чего скуль ругался на изменение размера кластера на устройстве резервного копирования. Как итог, резервные копии базы есть только от 16-06-2018 и бэкап файла журнала транзакций, размеров в 1,6ГБ.
-
Внимание вопрос: Есть ли хотя бы теоретическая возможность на основании имеющихся данных - восстановить утраченные за 3 месяца данные?
-
Я совсем новичок в вопросах MSSQL и понимаю, что я где то накосячил. Вопрос в том где именно и как избежать повторения таких ситуаций в будущем? Систему резервного копирования я переделал, пересоздал устройства резервного копирования и выполнил тестовое задание по резервированию баз. Теперь все работает нормально. Мне очень нужна Ваша помощь!
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39752907
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Siver,

Что в результате с бекапами? "Все хорошо, бэкапы делаются" или бэкапы из SQL не выполнялись?

Вы хотели восстановить бекап в новую базу с другим именем? Там нужно указывать восстановление с перемещением, новые имена файлов. У SSMS заметил особенность: начали восстанавливать в тестовую базу, выбрали бекап с диска - название перезаписываемой базы изменилось на ту, что была в бекапе. Это нужно отследить и поправить обратно, иначе с включенной перезаписью можно потерять исходную.

Исходная база в каком состоянии, случаем не по схеме из моего прошлого пункта пошло?
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39752916
Siver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Danion,

я был уверен, в том, что бэкапы делаются. так как бекапы проводятся в 2 этапа, первый это сам скуль бэкапит базы на локальный диск, второй, это сторонняя софтина забирает данные с локального диска, запихивает их в зашифрованный архив и складывает на сетевую шару. Вот второй этап - работал без сбоев, создавая на шаре архивы с датами, все как положено. Проблема в том, что во всех этих архивах информация от 16-08-2017. То есть первый этап как остановился на 16 августа, так эта инфа и множилась. А мозгов, для того что бы проверить содержимое архива - у меня не хватило.
-
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39752957
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выполните
Код: sql
1.
2.
restore headeronly from disk = резервная копии базы есть только от 16-06-2018
restore headeronly from disk = бэкап файла журнала транзакций


И покажите FirstLSN и LastLSN из результирующих наборов.
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39752975
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiverКак итог, резервные копии базы есть только от 16-06-2018 и бэкап файла журнала транзакций, размеров в 1,6ГБ.То есть бакапов журнала тоже нет? Новых не делалось, либо старые стирались?
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39753039
Siver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg,

простите мне мою неосведомленность - но я не знаю =) имеется только то, что я указал выше а именно резервная копия БД от 16-08 и резервная копия журнала транзакций этой же базы от 24-12 сего года.
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39753040
Siver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm,

сейчас уже дома и не смог подключиться к серверу по удаленке. Завтра прямо с утра сделаю. Буду очень признателен, если подскажете сразу, где именно это нужно выполнить?
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39753057
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiverБуду очень признателен, если подскажете сразу, где именно это нужно выполнить?В Management Studio.
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39753163
Siver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm,

Я понял, что используется Management Studio. У меня там 16 баз. мне нужно кликнуть по нужной бази и выбрать "создать запрос" ? или "Задачи" - "Создать резервную копию" и там по отдельности создать еще раз бэкап старой базы и повторно по тем же меню, но создать бекап файла транзакций ?
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39753167
Siver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня есть 2 фала
база - backup_UZBI.bak (1 205 397 KB) от 16 08 2018
журнал - UZBI_LogBackup_2018_12_24_21_10_23.bak (1 675 642 KB) от 24 12 2018
-
в самом SQL сейчас есть база UZBI которая развернута из фала базы. При подключении в 1С к этой базе там последняя запись от 16 08 2018.
-
Я действительно только что столкнулся с MSSQL вообще и с подобными проблемами в частности. Я готов заплатить за решение если оно есть и предоставить удаленный доступ. Просто я боюсь, что моей компетенции нулевой - не хватит даже для того что бы последовать Вашим советам. Я не ленивый, правда, у меня просто нет времени от слова совсем. Три рабочих дня осталось...
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39753180
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siver,

в студии нажмите кнопку New Query и выполните команды, которые попросил invm ("И покажите FirstLSN и LastLSN из результирующих наборов.")

Код: sql
1.
2.
restore headeronly from disk='...\backup_UZBI.bak'
restore headeronly from disk='...\UZBI_LogBackup_2018_12_24_21_10_23.bak'



замените три точки на полный путь до файла
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39753183
Siver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad,

спасибо большое!!!
--
для базы - FirstLSN 224000002606800131, LastLSN 224000002613100001
для файла журнала FirstLSN 194000002252800289, LastLSN 247000008034300001
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39753245
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siverдля базы - FirstLSN 224000002606800131, LastLSN 224000002613100001
для файла журнала FirstLSN 194000002252800289, LastLSN 247000008034300001Можно восстановить БД и накатить бекап лога.
Только сначала на кошках потренируйтесь.
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39753250
Siver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm,

буду категорически Вам признателен, если Вы мне на пальцах объясните как это сделать! Потому что я не в состоянии ... навыков и знаний не хватает
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39753254
Siver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все что смог найти в интернете - не помоглопробовал создавать пустую базу и накатывать туда сначала бекап базы - потом оставшийся файл транзакций, и получал сообщение либо о невозможности восстановить данные потому что путь не согласован либо что то типа "отсутствуют файлы для наката"
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39753281
Siver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все что смог найти в интернете - не помоглопробовал создавать пустую базу и накатывать туда сначала бекап базы - потом оставшийся файл транзакций, и получал сообщение либо о невозможности восстановить данные потому что путь не согласован либо что то типа "отсутствуют файлы для наката"
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39753306
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Восстановить в текущую БД
Код: sql
1.
2.
3.
4.
5.
use master;
alter database MyDB set single_user with rollback immediate;

restore database MyDB from disk = 'полный бекап' with replace, norecovery;
restore log MyDB from disk = 'бекап журнала' with recovery;



Восстановить в новую БД
Код: sql
1.
2.
3.
4.
5.
6.
restore database MyNewDB from disk = 'полный бекап' with
 move 'Логическое имя1' to 'Новое расположение файла1',
 ...
 move 'Логическое имяN' to 'Новое расположение файлаN',
 norecovery;
restore log MyNewDB from disk = 'бекап журнала' with recovery;

Соответствие логических имен файлам можно узнать из результата
Код: sql
1.
restore filelistonly from disk = 'полный бекап';



Прежде чем что-то делать изучите документацию - https://docs.microsoft.com/ru-ru/sql/relational-databases/backup-restore/back-up-and-restore-of-sql-server-databases?view=sql-server-2017
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39753326
Siver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm,

выполнил Вашу инструкцию следующим образом:
1. создал базу TEST
2. выполнил скрипт вида
DBCC CHECKDB
restore database TEST from disk = 'G:\backup\1111\1\backup_UZBI.bak' with
move 'F:\1c\UZBI.mdf' to 'G:\backup\1111\1\UZBI.mdf',
move 'D:\logs\UZBI_log.ldf' to 'G:\backup\1111\1\UZBI_log.ldf',
norecovery;
restore log TEST from disk = 'G:\backup\1111\1\uzbi.bak' with recovery;

где путь G:\backup\1111\1\ - временное хранилище в котором лежат файлы полной копии и файл журнала
команда restore filelistonly from disk = 'G:\backup\1111\1\backup_UZBI.bak'; выдала следующий результат
LogicalName PhysicalName
UZBI F:\1c\UZBI.mdf
UZBI_log D:\logs\UZBI_log.ldf

в итоге выполнение восстановления в новую БД заняло около 20 секунд и выдало результат
Результаты DBCC для "UZBI".
CHECKDB обнаружил 0 ошибок размещения и 0 ошибок согласованности в базе данных "UZBI".
Выполнение DBCC завершено. Если DBCC выдает сообщения об ошибках, обратитесь к системному администратору.
Сообщение 3154, уровень 16, состояние 4, строка 2
Резервный набор данных содержит копию базы данных, отличной от существующей базы данных "TEST".
Сообщение 3013, уровень 16, состояние 1, строка 2
RESTORE DATABASE прервано с ошибкой.
Сообщение 3154, уровень 16, состояние 4, строка 6
Резервный набор данных содержит копию базы данных, отличной от существующей базы данных "TEST".
Сообщение 3013, уровень 16, состояние 1, строка 6
RESTORE LOG прервано с ошибкой.

--
куда копать дальше ? или что я сделал не так?
-
за ссылку большое спасибо, обязательно прочту!
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39753329
Siver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm,

попытка выполнить запрос вида
use master;
alter database UZBI set single_user with rollback immediate;

restore database UZBI from disk = 'G:\backup\1111\1\backup_UZBI.bak' with replace, norecovery;
restore log UZBI from disk = 'G:\backup\1111\1\UZBI.bak' with recovery;

привела к результату
Неуточненные транзакции проходят откат. Предварительно выполнение отката: 0%.
Неуточненные транзакции проходят откат. Предварительно выполнение отката: 100%.
Обработано 151384 страниц для базы данных "UZBI", файл "UZBI" для файла 1.
Обработано 4 страниц для базы данных "UZBI", файл "UZBI_log" для файла 1.
RESTORE DATABASE успешно обработал 151388 страниц за 15.211 секунд (77.754 MБ/сек).
Сообщение 4330, уровень 16, состояние 1, строка 5
Невозможно применить резервный набор данных, так как он находится на пути восстановления, который не согласован с базой данных. Путь восстановления - это последовательность данных и резервных копий журналов, проходя через которые, база данных достигает определенной точки восстановления. Найдите совместимую резервную копию для восстановления или восстановите остальную часть базы данных для соответствия точке восстановления в пределах данного резервного набора, который восстановит базу данных к другому моменту времени. Дополнительные сведения о путях восстановления см. в электронной документации по SQL Server.
Сообщение 3013, уровень 16, состояние 1, строка 5
RESTORE LOG прервано с ошибкой.
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39753460
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Siver,

Restor с move у Вас кривой.
По Вашему примеру:
Код: sql
1.
2.
3.
4.
5.
restore database TEST from disk = 'G:\backup\1111\1\backup_UZBI.bak' with
move 'UZBI' to 'G:\backup\1111\1\UZBI.mdf',
move 'UZBI_log' to 'G:\backup\1111\1\UZBI_log.ldf',
norecovery;
restore log TEST from disk = 'G:\backup\1111\1\uzbi.bak' with recovery;



Файлов UZBI.mdf и UZBI_log.ldf по пути G:\backup\1111\1\ сейчас же нет?

После move нужно указать логическое имя файла из бекапа, а не физическое mdf\ldf.
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39753479
Siver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Danion,

Спасибо Вам за помощь. В результате выполнения написанного Вами запроса ответ получился таким
Сообщение 3154, уровень 16, состояние 4, строка 2
Резервный набор данных содержит копию базы данных, отличной от существующей базы данных "UZBI".
Сообщение 3013, уровень 16, состояние 1, строка 2
RESTORE DATABASE прервано с ошибкой.
Сообщение 3154, уровень 16, состояние 4, строка 6
Резервный набор данных содержит копию базы данных, отличной от существующей базы данных "UZBI".
Сообщение 3013, уровень 16, состояние 1, строка 6
RESTORE LOG прервано с ошибкой.
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39753500
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Siver,

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

До этого спрашивал:
"Файлов UZBI.mdf и UZBI_log.ldf по пути G:\backup\1111\1\ сейчас же нет?"
Для перезаписи используется replace, но Вы можете и что-то нужное перезаписать...

Попробуйте этот вариант. И текущее не перезапишите и вряд ли база\файлы TEST1234 есть.
Код: sql
1.
2.
3.
4.
5.
6.
 USE [master]
restore database TEST1234 from disk = 'G:\backup\1111\1\backup_UZBI.bak' with
move 'UZBI' to 'G:\backup\1111\1\TEST1234.mdf',
move 'UZBI_log' to 'G:\backup\1111\1\TEST1234_log.ldf',
norecovery;
restore log TEST from disk = 'G:\backup\1111\1\uzbi.bak' with recovery;
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39753508
Siver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Danion,

Обработано 151384 страниц для базы данных "TEST1234", файл "UZBI" для файла 1.
Обработано 4 страниц для базы данных "TEST1234", файл "UZBI_log" для файла 1.
RESTORE DATABASE успешно обработал 151388 страниц за 13.058 секунд (90.574 MБ/сек).
Сообщение 4330, уровень 16, состояние 1, строка 6
Невозможно применить резервный набор данных, так как он находится на пути восстановления, который не согласован с базой данных. Путь восстановления - это последовательность данных и резервных копий журналов, проходя через которые, база данных достигает определенной точки восстановления. Найдите совместимую резервную копию для восстановления или восстановите остальную часть базы данных для соответствия точке восстановления в пределах данного резервного набора, который восстановит базу данных к другому моменту времени. Дополнительные сведения о путях восстановления см. в электронной документации по SQL Server.
Сообщение 3013, уровень 16, состояние 1, строка 6
RESTORE LOG прервано с ошибкой.
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39753515
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Siver,

Да, до этого была попытка перезаписать существующие файлы.

invm написал:
"Можно восстановить БД и накатить бекап лога.
Только сначала на кошках потренируйтесь. "

Я, честно говоря, не помню, как по LSN определить относятся ли файлы к одной цепочке бекапов. Но у меня возник вопрос:
У бекапа лога расширение .trn, что тогда такое:
"журнал - UZBI_LogBackup_2018_12_24_21_10_23.bak (1 675 642 KB) от 24 12 2018" Это не diff случаем?
...
Рейтинг: 0 / 0
Восстановление базы из журнала транзакций
    #39753517
Siver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Danion,

я писал выше, этот файл сформировался как раз в момент ошибочной перезаписи базы, после, когда я пробовал своими силами и мыслишкой все восстановить - при перезаписи тестовой базы - у меня формировались похожие файлы и в процессе их создания писалось что то вроде "бэкап журнала транзакций". Поэтому я решил, что это он и есть.
...
Рейтинг: 0 / 0
25 сообщений из 38, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Восстановление базы из журнала транзакций
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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