powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Опять вопросы по восстановлению transaction logs.
25 сообщений из 27, страница 1 из 2
Опять вопросы по восстановлению transaction logs.
    #39883488
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.

Есть большая БД (10Тб), есть её новая копия на другом сервере, на исходнике делаю бэкап лога транзакций и этот лог разворачиваю на получателе. Но при первом развертывании лога транзакций на получателе процесс затянулся, я вижу сессию вот в таком виде:

автор80 SUSPENDED NT SERVICE\SQLSERVERAGENT V-BGS01 . Blogans RESTORE LOG 1188 2 10/31 10:15:00 SQLAgent - TSQL JobStep (Job 0x9CF084BFBB1F6E4D9BF7F16BD5989581 : Step 1) 80 0
80 SUSPENDED V-BGS01 . Blogans RESTORE LOG 509219 1 10/31 10:15:00 SQLAgent - TSQL JobStep (Job 0x9CF084BFBB1F6E4D9BF7F16BD5989581 : Step 1) 80 0

Размер первого тран лога 114гб, процесс длится уже час. Ну собственно понятно, что архив большой, времени нужно больше чем обычно. Но есть ли возможность "заглянуть" и посмотреть, действительно ли лог применяется на БД или же сессия просто зависла?
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883494
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCaНо есть ли возможность "заглянуть" и посмотреть, действительно ли лог применяется на БД или же сессия просто зависла?Ресурс-монитором посмотрите, есть ли трафик по файлам бакапа, и файлам базы.
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883501
Тяп-ляп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот запрос покажет в столбце "percent_complete" прогресс restore
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select
    qs.session_id, 
    qs.start_time,
    datediff(s, qs.start_time, getdate()) as duration_sec,
    qs.status, qs.wait_type, qs.command, qs.last_wait_type, 
    qs.percent_complete, 
    qt.text, qs.total_elapsed_time/1000 as [total_elapsed_time, сек],
    qs.wait_time/1000 as [wait_time, сек], (qs.total_elapsed_time - qs.wait_time)/1000 as [work_time, сек]
from sys.dm_exec_requests as qs
    cross apply sys.dm_exec_sql_text(qs.sql_handle) as qt
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883514
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тяп-ляп,

автор80 2019-10-31 10:15:00.507 5867 running NULL RESTORE LOG PAGEIOLATCH_EX 100 RESTORE LOG [Blogans] FROM DISK = '\\Blogans\20191030\Blogans_tlog_20191030_1532.BTL' WITH REPLACE, STATS = 20, NORECOVERY 5866 0 5866

Судя по этому столбцу 100%, но что-то продолжает выполнятся в задании.
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883516
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCaТяп-ляп,

автор80 2019-10-31 10:15:00.507 5867 running NULL RESTORE LOG PAGEIOLATCH_EX 100 RESTORE LOG [Blogans] FROM DISK = '\\Blogans\20191030\Blogans_tlog_20191030_1532.BTL' WITH REPLACE, STATS = 20, NORECOVERY 5866 0 5866

Судя по этому столбцу 100%, но что-то продолжает выполнятся в задании.
на винты посмотрите, возможно выделяет место если было расширение на оригинале
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883517
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCaТяп-ляп,

автор80 2019-10-31 10:15:00.507 5867 running NULL RESTORE LOG PAGEIOLATCH_EX 100 RESTORE LOG [Blogans] FROM DISK = '\\Blogans\20191030\Blogans_tlog_20191030_1532.BTL' WITH REPLACE, STATS = 20, NORECOVERY 5866 0 5866

Судя по этому столбцу 100%, но что-то продолжает выполнятся в задании.
100% = файл бекапа лога записан в лог сервера, теперь идет реду этого лога

где-то были способы посмотреть, до какой даты отресторен лог через дамп процесса рестора.
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883523
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex,

Ну процесс монитором вижу что сиквел что-то пишет в файлы этой БД, хотя это тоже не показатель типичного процесса восстановления.
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883525
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBCC stackdump(-1,<SPID>)

где spid - это SPID процесса рестора лога

в папке с логами скуля появятся несколько dump файлов, найдите текстовый и в нем будет что-то типа last redo lsn date
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883526
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCaНу процесс монитором вижу что сиквел что-то пишет в файлы этой БД, хотя это тоже не показатель типичного процесса восстановления.
Это как раз показатель типичного процесса redo, т.е. применения транзакций.
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883550
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLexDBCC stackdump(-1,<SPID>)

где spid - это SPID процесса рестора лога

в папке с логами скуля появятся несколько dump файлов, найдите текстовый и в нем будет что-то типа last redo lsn date

Не нашел в дампе last redo lsn date, но в целом процесс понятен, 8996 секунд накатывался этот лог, смотрел ресурс монитором и предложенным запросом.

Спасибо за новые знания!
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883556
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще вопрос, после восстановления бэкапа на базу, можно как то узнать, какой lsn тран лога продолжает цепочку?
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883610
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCaИ еще вопрос, после восстановления бэкапа на базу, можно как то узнать, какой lsn тран лога продолжает цепочку?
сделайте restore headeronly последнему восстановленному бэкапу лога.
там будет LastLSN.
с него и начнется следующий бэкап лога в этой цепочке
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883619
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123,

У меня логи транзакций бэкапятся ежеминутно допустим. Я делаю полный бэкап исходника, восстанавливаю его на сервере получателе. Те у меня есть восстановленная БД из полного бэкапа и множество бэкапов логов транзакций которые создавались на источнике. Сейчас мне приходится примерно по времени угадывать, когда полный бэкап начался делать, и я перебираю эти логи пока не найду нужный. Думаю, что есть более "цивилизованный" способ сразу выяснить какой лог транзакций следующий в цепочке после восстановления из полного бэкапа. Сиквел ведь как то понимает, тот это лог или не тот.
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883648
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa,

очень много слов :)
вас чем мой ответ не устроил,
вам надо после восстановления полного бэкапа найти нужный лог?
у полного бэкапа в Header-e тоже есть FirstLSN, LastLSN.
нужный вам LSN находится между этими двумя.

если вы даты хотите получить, в том же Header-е есть BackupStartDate/ BackupFinishDate
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883673
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123,

Спасибо, просто вы написали, что у бэкапа лога это посмотреть нужно)
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883688
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCaYasha123,

Спасибо, просто вы написали, что у бэкапа лога это посмотреть нужно)
у бэкапа лога уж точно надо смотреть, иначе как понять, с какого LSN он начинается.
а ваш вопрос, в том виде как он задан, намекает именно восстановление бэкапа лога,
а не полного:
"после восстановления бэкапа на базу, можно как то узнать, какой lsn тран лога продолжает цепочку ?"
точный LSN находится как раз в бэкапе лога,
каждый последующий бэкап лога начинается ровно с того LSN, который указан в LastLSN предыдущего бэкапа лога.

а в полном бэкапе о "LSN, продолжающем цепочку" нет ни слова.
полный бэкап вообще ничего не знает о бэкапах лога
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883690
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCaСпасибо, просто вы написали, что у бэкапа лога это посмотреть нужно)В бакапе лога тоже.

Вы же цепочку восстанавливаете. Один полный бакап, потом стотыщ бакапов лога.
И в каждом бакапе есть FirstLSN, LastLSN

teCaСиквел ведь как то понимает, тот это лог или не тот.Сиквел это записывает в sys.database_files
См. поля redo_start_lsn, redo_target_lsn, redo_start_fork_guid, redo_target_fork_guid

Проще посмотреть в бакапе (полном, а потом в логах), но можно и в самой базе.
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883747
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

Вижу, что sys.database_files не работает когда база в состоянии Restoring
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883756
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите еще на счет RESTORE HEADERONLY

Собственно я просматриваю RESTORE HEADERONLY того бэкапа, из которого восстанавливал БД.
В поле LastLSN я вижу значение, дальше, информация о каждом новом бэкапе логов у меня сохраняется в табличку, в том числе и lsn бэкапа. Но полученный lastlsn FULL бэкапа отсутствует в этой таблице.
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883779
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCaПодскажите еще на счет RESTORE HEADERONLY

Собственно я просматриваю RESTORE HEADERONLY того бэкапа, из которого восстанавливал БД.
В поле LastLSN я вижу значение, дальше, информация о каждом новом бэкапе логов у меня сохраняется в табличку, в том числе и lsn бэкапа. Но полученный lastlsn FULL бэкапа отсутствует в этой таблице .
еще бы.
вам же уже написали, полному бэкапу нет никакого дела до бэкапов лога.
и его LastLSN никаким боком не совпадет с FirstLSN/LastLSN бэкапа лога.
FirstLSN/LastLSN это еги личные LSN,
минимум и максимум LSN записей лога, которые вошли в данный полный бэкап.
---
еще раз: бэкапы лога связаны друг с другом непосредственно:
где остановился предыдущий, там (с того LastLSN) начнется следующий.

полный бэкап делается вообще в любой модели и ни о каких бэкапах лога понятия не имеет.
его FirstLSN/LastLSN никак с бэкапами логов не связаны.

зато не каждый бэкап лога можно накатить на данный полный бэкап.
в частности, нельзя накатить бэкап лога, где FirstLSN больше LastLSN полного бэкапа.
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883790
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123,

Еще больше запутался. Вот на конкретном примере. Сейчас у меня есть БД в режиме Restoring, есть таблица где перечислены все созданные логи транзакций с их lastlsn. Как мне узнать, с какого именно бэкап лога транзакций продолжится цепочка после фулл бэкапа?
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883796
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCaYasha123,

Еще больше запутался. Вот на конкретном примере. Сейчас у меня есть БД в режиме Restoring, есть таблица где перечислены все созданные логи транзакций с их lastlsn. Как мне узнать, с какого именно бэкап лога транзакций продолжится цепочка после фулл бэкапа?

у того, где
Код: sql
1.
full_backup_last_lsn between log_backup_first_lsn и log_backup_last_lsn
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883841
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex,

Получается lastlsn должен быть в таблице c информацией о бэкапах логов транзакций?
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883845
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa,


log_backup_first_lsn и log_backup_last_lsn из RESTORE HEADERONLY бекапов лога

full_backup_last_lsn из RESTORE HEADERONLY уже восстановленного фул бекапа
...
Рейтинг: 0 / 0
Опять вопросы по восстановлению transaction logs.
    #39883871
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex,
Благодарю. Написал запрос, который берет lastlsn полного бэкапа, и по списку проверяет все созданные ранее бэкапы логов транзакций и проверяет попадает ли @LastLSNFULL в диапазон @FirstLSN и @LastLSN
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Опять вопросы по восстановлению transaction logs.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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