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

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

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

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

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


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

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

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

Я понял, что используется Management Studio. У меня там 16 баз. мне нужно кликнуть по нужной бази и выбрать "создать запрос" ? или "Задачи" - "Создать резервную копию" и там по отдельности создать еще раз бэкап старой базы и повторно по тем же меню, но создать бекап файла транзакций ?
...
Рейтинг: 0 / 0
26.12.2018, 00:12
    #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
26.12.2018, 00:52
    #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
26.12.2018, 01:11
    #39753183
Siver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы из журнала транзакций
komrad,

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

буду категорически Вам признателен, если Вы мне на пальцах объясните как это сделать! Потому что я не в состоянии ... навыков и знаний не хватает
...
Рейтинг: 0 / 0
26.12.2018, 10:05
    #39753254
Siver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы из журнала транзакций
все что смог найти в интернете - не помоглопробовал создавать пустую базу и накатывать туда сначала бекап базы - потом оставшийся файл транзакций, и получал сообщение либо о невозможности восстановить данные потому что путь не согласован либо что то типа "отсутствуют файлы для наката"
...
Рейтинг: 0 / 0
26.12.2018, 10:32
    #39753281
Siver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы из журнала транзакций
все что смог найти в интернете - не помоглопробовал создавать пустую базу и накатывать туда сначала бекап базы - потом оставшийся файл транзакций, и получал сообщение либо о невозможности восстановить данные потому что путь не согласован либо что то типа "отсутствуют файлы для наката"
...
Рейтинг: 0 / 0
26.12.2018, 11:05
    #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
26.12.2018, 11:38
    #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
26.12.2018, 11:53
    #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
26.12.2018, 15:20
    #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
26.12.2018, 15:40
    #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
26.12.2018, 16:04
    #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
26.12.2018, 16:14
    #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
26.12.2018, 16:30
    #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
26.12.2018, 16:33
    #39753517
Siver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы из журнала транзакций
Danion,

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


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