Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Восстановление базы на заданое время  [new]
Vertolet
Member

Откуда:
Сообщений: 15
Доброго времени суток, уважаемые форумчане. Могли бы вы пояснить некоторые моменты. Есть база А на MS SQL 2008, модель восстановления полная, бекап БД ведётся ежедневно автоматически в 2 часа ночи. Создаём базу Б и восстанавливаем в неё состояние базы А на 18:00 22 марта. Для этого СУБД использует бекап базы А на 2:00 от 22 марта и лог транзакций базы А для добавления всех изменений от 2:00 до 18:00. Но как быть с документами созданными в этот период? Так как их нет в базе на момент использованного бекапа, а лог транзакций не несёт данных, а только их изменения, то, если я правильно понимаю, их не будет. На выходе мы получаем не точную копию базы А на 18:00 22 марта, а копию базы без новых документов добавленных в период с 2:00 до 18:00, хотя с всеми изменениями внесёнными за этот период в документы уже присутствующие на момент бекапа от которого мы прыгаем. Получается если документ создан 22 марта, то я не могу отследить его изменения до следующего бекапа в 2:00 23 марта?
16 май 12, 22:44    [12566443]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы на заданое время  [new]
Vertolet
Member

Откуда:
Сообщений: 15
Извиняюсь, забыл указать - Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64) Jul 9 2008 14:17:44 Copyright (c) 1988-2008 Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7600: )
16 май 12, 22:48    [12566453]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы на заданое время  [new]
_Shakill
Guest
Vertolet,

странные вещи вам про лог рассказали. изменения в базе - это не только операции update, но insert и delete тоже
16 май 12, 22:56    [12566472]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы на заданое время  [new]
pt12pt
Member

Откуда:
Сообщений: 183
Vertolet, у Вас каша в голове. У Вас будут все документы созданные за этот период. Лог несет в себе все изменения, в т. ч. и вставки в Вашем случае.
16 май 12, 22:57    [12566473]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы на заданое время  [new]
rector
Member

Откуда: Киев
Сообщений: 57
Vertolet,

откуда вывод, что вставка данных не будет отображаться в журнале ?
наверное слишком буквально понимаете слово "изменение"
в контексте журналирования "изменение" - это любое изменение данных, в т.ч. добавление и удаление.
16 май 12, 22:58    [12566479]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы на заданое время  [new]
Vertolet
Member

Откуда:
Сообщений: 15
Замечательно, помогите тогда понять, как объяснить отсутствие в восстановленной базе на 0:00 23 марта созданного днём 22 марта документа? А если откатиться на любой момент 23 марта после 2 часов ночи, то документ появляется. Вся история транзакций по нему есть в журнале регистрации. Документ создан в 2 часа дня 22го, изменён и перепроведён в 4 часа дня. Дальше с ним не работали до 27 марта. Но фактически при откате базы на разное время картинка такая - до бекапа 23 марта в 2 часа ночи документа нет. Откатывался на разные моменты времени, для точности документ искал по GUID обработкой внешней. Что может быть причиной не восстановления его относительно бекапа 22 марта?
17 май 12, 09:53    [12567429]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы на заданое время  [new]
Glory
Member

Откуда:
Сообщений: 104751
Vertolet
Замечательно, помогите тогда понять, как объяснить отсутствие в восстановленной базе на 0:00 23 марта созданного днём 22 марта документа?

Тем, что понятие "созданный" для вас и сервера имеют разную трактовку
Для вас "созданный" - это скорее всего дата в какой то таблице
А для сервера "созданный" - это зафиксированная транзакция.
17 май 12, 10:21    [12567638]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы на заданое время  [new]
Vertolet
Member

Откуда:
Сообщений: 15
Вот фрагмент выгрузки из 1С-ного журнала регистрации касаемо документа:

<v8e:DataPresentation>Заказ покупателя Ф0-00000XXX от 22.03.2012 14:40:18</v8e:DataPresentation>
<v8e:EventPresentation>Данные. Добавление</v8e:EventPresentation>
<v8e:TransactionStatus>Committed</v8e:TransactionStatus>
<v8e:TransactionID>22.03.2012 14:40:18 (154102139)</v8e:TransactionID>
17 май 12, 11:51    [12568480]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы на заданое время  [new]
Glory
Member

Откуда:
Сообщений: 104751
Vertolet
Вот фрагмент выгрузки из 1С-ного журнала регистрации касаемо документа:

Это лог вашего приложения.
А не лог команд на сервере.
17 май 12, 11:53    [12568505]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы на заданое время  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31964
Vertolet
Что может быть причиной не восстановления его относительно бекапа 22 марта?
Либо то, что на тот момент документа не было, либо он есть, но приложение его не показывает (то есть нужно смотреть не в приложении, а в БД)
17 май 12, 12:52    [12569169]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы на заданое время  [new]
Vertolet
Member

Откуда:
Сообщений: 15
Glory, хорошо, тогда подскажите в какую сторону копать, просто хочется понять когда и как документ попадает в базу.
17 май 12, 12:53    [12569179]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы на заданое время  [new]
Vertolet
Member

Откуда:
Сообщений: 15
alexeyvg, я грешил на то что не вижу документа по каким-либо причинам, но поиск по GUID развеял мои сомнения.
17 май 12, 12:56    [12569199]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы на заданое время  [new]
Glory
Member

Откуда:
Сообщений: 104751
Vertolet
Glory, хорошо, тогда подскажите в какую сторону копать, просто хочется понять когда и как документ попадает в базу.

В логику вашего приложения конечно.
В бэкап попадают все зафиксированные транзакции.
17 май 12, 12:58    [12569215]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы на заданое время  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31964
Vertolet
alexeyvg, я грешил на то что не вижу документа по каким-либо причинам, но поиск по GUID развеял мои сомнения.
А может, вы его неправильно "искал по GUID обработкой внешней"??

Если правильно, то начит, документа не было на момент, на который вы восстанавливаете бакап. То есть либо он появился позже, либо удалён раньше, либо вообще его не было.

После восстановления бакапа база находится в абсолютно таком же состоянии, в котором была на тот момент (не считая незавершённых транзакций).
Vertolet
Но фактически при откате базы на разное время картинка такая
Как вы убеждались в этом?
Знаете, ошибки бывают самые причудливые - например, человек меняет данные на одном сервере, а читает на другом. Нужно быть очень внимательным.
Vertolet
А если откатиться на любой момент 23 марта после 2 часов ночи, то документ появляется.
А не может это быть другим документом, а не искомым? Почему вы считаете, что документ, созданный 2 часа дня 22го и найденный в бакапах 23 марта после 2 часов ночи - один и тот же? Может, просто у него один и тот же ИД и все атрибуты, а физически записи разные?
17 май 12, 16:16    [12571383]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы на заданое время  [new]
Vertolet
Member

Откуда:
Сообщений: 15
Может быть. Попробую всё перепроверить ещё раз. Конечно можно грешить на механику 1С, но бекапы делаются не средствами сервера 1С, а средствами SQL. Что волшебного может происходить во время бекапирования данных если за 2 часа до бекапа документа нет, а через пол часа после он уже есть... Я уверен, что если откатиться за минуту до и на минуту после картинка не изменится.... вообщем буду копать.
17 май 12, 21:39    [12573328]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить