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

Откуда:
Сообщений: 4
На сервере с 1С (серверный вариант под MS SQL 8 R2) есть несколько баз данных. для каждой в отдельности создан план обслуживания: полная резервная копия 1 раз в неделю+ копия журнала транзакций 4 раза в день. Неоднократно приходилось восстанавливать данные из резервных копий, как правило в один из запасных экземпляров БД. Сегодня программист 1с поломал основную БД, неудачно выполнив обновление конфигурации. Пришлось восстановить из резервной копии основную рабочую БД. восстановление в принципе прошло успешно, но туда уже попали нек. действия программиста (он не смог точно указать время начала своих манипуляций) и я решил еще раз сделать восстановление, к точке на пол-часа раньше. Выбрал, как и ранее базу, задача, восстановить, база данных... и в списке заданий для восстановления вместо последней полной копии от 23.02.2019 и неск. журналов транзакций, получаю ссылку на полную копию аж от 2017 г. (которой уже даже нет, копии хранятся 1 год) и полный список копий журнала транзакций за все время с момента этой копии. При этом сами файлы копий в папке бэкапов в наличии. Для других баз данных ничего не поломалось, там нормальный список для восстановления. Более того, если посмотреть в агенте SQL server список заданий и посмотреть журнал задания полной копии нужной базы данных - то там правильный список, с указанием файлов, четко раз в неделю.

И вот вопрос. Как все-таки можно исправить эту ошибку?Или это вообще "не баг а фича" при восстановлении бд в саму себя (хотя это было бы абсурдно). Системные бд резервируются раз в день, и наверно можно что-то поправить в msdb?
28 фев 19, 23:13    [21822277]     Ответить | Цитировать Сообщить модератору
 Re: Испортился список резервных копий для восстановления БД  [new]
sim100
Member

Откуда:
Сообщений: 4
Возможная причина появления ошибки, в том что во время восстановления бд могло запуститься задание по созданию резервных копий (по расписанию), - в данном случае только журнала транзакций. Но вопрос о том как все поправить, конечно остается в силе.
1 мар 19, 00:33    [21822301]     Ответить | Цитировать Сообщить модератору
 Re: Испортился список резервных копий для восстановления БД  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36696
Найдите того, кто умеет писать команду restore без графического интерфейса. Ну или сами научитесь.
1 мар 19, 01:54    [21822318]     Ответить | Цитировать Сообщить модератору
 Re: Испортился список резервных копий для восстановления БД  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30821
sim100
Системные бд резервируются раз в день, и наверно можно что-то поправить в msdb?
Да, история хранится в msdb. Хотя, наверное, она отвязалась после восстановления, ведь восстановленная база - это новая база, какая для неё может быть история бакапов? Её бакапов вы пока не делали, а как там SSMS ищет историю бакапа для базы, не знаю...
1 мар 19, 07:35    [21822367]     Ответить | Цитировать Сообщить модератору
 Re: Испортился список резервных копий для восстановления БД  [new]
sim100
Member

Откуда:
Сообщений: 4
alexeyvg,
Поразмышляв над вашим ответом, прихожу к выводу, что происшедшее не сбой, а вроде как штатное поведение, т.е. если например, я восстановил базу на первое января, и что-то поправил, то все сохраненные ранее резервные копии вроде как недействительны и получается, что "связную историю изменений не выстроить". Но тогда вопрос, а как же тогда "правильно" восстанавливать БД? Положим в 1с есть выгрузка и загрузка и можно восстановив через sql бд в резервный экземпляр, восстановить оригинал через выгрузку - загрузку конфигурации. Но ведь в общем случае таких процедур может и не быть? Т.е. вроде как должен быть механизм восстановления "с историей резервного копирования", чтобы сохранялась хотя бы история предшествующих точке восстановления бэкапов. Извиняюсь за дилетантский вопрос, но просто уж как-то больно обычным кажется нужное мне действие, а инфу сходу найти не удалось.
Как я понял из комментария Гавриленко Сергей Алексеевич, задача все же как-то решается (но видимо за деньги (?)).
1 мар 19, 09:06    [21822403]     Ответить | Цитировать Сообщить модератору
 Re: Испортился список резервных копий для восстановления БД  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30821
sim100
Как я понял из комментария Гавриленко Сергей Алексеевич, задача все же как-то решается (но видимо за деньги (?)).
Решается чтением одной страницы хелпа по команде RESTORE DATABASE

Это если восстанавливать командами.

Если хочется из графического интерфейса, то при восстановлении нужно просто указать файл бакапа (вместо выбора его из предоставленного списка)
1 мар 19, 11:09    [21822498]     Ответить | Цитировать Сообщить модератору
 Re: Испортился список резервных копий для восстановления БД  [new]
sim100
Member

Откуда:
Сообщений: 4
alexeyvg,
Почитал по вашему совету help. Насколько я понял, если бы я делал восстановление без опции "WITH REPLACE", то получил бы требуемый мне результат (т.е. история бэкапов бы сохранилась), а чтобы восстановление прошло, перевести перед этим БД в автономный режим (а так как я восстанавливал ко времени последнего резервного копирования, то даже делать бэкап последнего фрагмента журнала транзакций не нужно.)

Через выбор файлов вручную восстанавливать конечно можно, просто не так удобно (когда нужно выбрать, скажем, 10 файлов журнала транзакций поочереди). И это я как раз знал и так. А есть ли какой-то способ (с учетом, как уже понятно, моей ошибки) все-таки восстановить историю бэкапов? (при наличии всех необходимых файлов). Именно для этого, как я понял, был совет "найти специалиста по RECOVERY).
1 мар 19, 12:00    [21822573]     Ответить | Цитировать Сообщить модератору
 Re: Испортился список резервных копий для восстановления БД  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
sim100
Через выбор файлов вручную восстанавливать конечно можно, просто не так удобно (когда нужно выбрать, скажем, 10 файлов журнала транзакций поочереди). И это я как раз знал и так. А есть ли какой-то способ (с учетом, как уже понятно, моей ошибки) все-таки восстановить историю бэкапов? (при наличии всех необходимых файлов). Именно для этого, как я понял, был совет "найти специалиста по RECOVERY).
Может быть вам в жизни не встречались, но есть такие люди называются программисты. Они умеют писать код чтобы автоматизировать различные задачи. Например, прочитать спискок файлов из таблицы или из фолдера, а потом используя имена этих файлов сгенерировать набор RESTORE DATABASE скриптов. Обычно таким людям платят деньги за работу, но иногда они выкладывают свои скрипты бесплатно в инернет, тогда их можно скачать и пользоваться нахаляву.

Иногда программисты делают ошибки в своем коде ну или просто сильно не заморачиваются юзабильностью продукта и продумыванием всех сценариев тогда получается SSMS.
1 мар 19, 21:06    [21823114]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить