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

Откуда:
Сообщений: 1134
Стоит следующая задача. Есть бэкап на определенную точку времени. Есть бэкап лога транзакций. Понятно что можно восстановить состояние БД на любую точку времени. Но в силу длительности процедуры(например БД терабайт) необходимо иметь возможность восстанавливать обратно по времени (в обратном хронологическом порядке). Технически в этом нет никаких сложностей. Восстанавливаем бэкап в две базы. Затем накатываем последовательно по транзакции и сравниваем состояние БД до транзакции и после. На каждую транзакцию формируем SQL скрипт на undo транзакцию. Таким образом один раз проделав эту процедуру можно к логу транзакций сделать анти-лог транзакций. После чего можно будет проигрывать состояние БД не только вперед но и назад.
Необходимо это реализовать в контексте продукта http://softpoint.ru/products_id342.htm
Если есть коммерческий продукт или у кого есть наработки просьба продать.
26 май 14, 13:10    [16072962]     Ответить | Цитировать Сообщить модератору
 Re: Плеер восстановления БД. Восстановление БД на нужную точку не только вперед но и назад.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Упростим задачу. Предположим в БД одна таблица и структура не меняется. Можно для хранения промежуточных данных использовать таблицы(в отдельной БД).
27 май 14, 00:13    [16076661]     Ответить | Цитировать Сообщить модератору
 Re: Плеер восстановления БД. Восстановление БД на нужную точку не только вперед но и назад.  [new]
os2007
Member

Откуда:
Сообщений: 39
МуМу,

Можно, но тогда эти данные будут лежать просто в других таблицах, и не будут иметь никакого отношения к начальной таблице и базе.
27 май 14, 14:13    [16079632]     Ответить | Цитировать Сообщить модератору
 Re: Плеер восстановления БД. Восстановление БД на нужную точку не только вперед но и назад.  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8805
Можно включить отслеживание изменений. Но откатам-накатам это не поможет само по себе.
27 май 14, 16:46    [16081019]     Ответить | Цитировать Сообщить модератору
 Re: Плеер восстановления БД. Восстановление БД на нужную точку не только вперед но и назад.  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35375
Блог
А можно изначально БД разрабатывать с учетом таких требований.
Вкратце - в БД всюду добавляется временная метка, а все обновления/удаления заменяются вставками дельт.
27 май 14, 17:13    [16081247]     Ответить | Цитировать Сообщить модератору
 Re: Плеер восстановления БД. Восстановление БД на нужную точку не только вперед но и назад.  [new]
дельта?
Guest
Критик
А можно изначально БД разрабатывать с учетом таких требований.
Вкратце - в БД всюду добавляется временная метка, а все обновления/удаления заменяются вставками дельт.

А почему дельт а не конечных(текуших) значений? Это-ж чтоб что-то вывести нужно каждый раз агрегировать все дельты.
27 май 14, 19:03    [16081961]     Ответить | Цитировать Сообщить модератору
 Re: Плеер восстановления БД. Восстановление БД на нужную точку не только вперед но и назад.  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35375
Блог
дельта?,

Наверное, можно и так.
Но например в ssas процесс обратной записи в куб реализован именно через дельты. Хз почему, плюсы и минусы никогда не сравнивал из-за отсутствия необходимости.
27 май 14, 23:11    [16082635]     Ответить | Цитировать Сообщить модератору
 Re: Плеер восстановления БД. Восстановление БД на нужную точку не только вперед но и назад.  [new]
Glory
Member

Откуда:
Сообщений: 104751
А вот если не усекать полный лог, то куча тулов умеет отменять как последовательность, так и единичные транзакции.
28 май 14, 09:50    [16083499]     Ответить | Цитировать Сообщить модератору
 Re: Плеер восстановления БД. Восстановление БД на нужную точку не только вперед но и назад.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Мне нужно универсальное решение. Про версионирование записей(например в репилкации) и т.п. я знаю.
То Glory. Можно пример таких тулзов.Хотя вряд ли эта информация пригодиться, мне важно купить исходники.(хотя может и продадут.)
28 май 14, 14:42    [16085661]     Ответить | Цитировать Сообщить модератору
 Re: Плеер восстановления БД. Восстановление БД на нужную точку не только вперед но и назад.  [new]
Glory
Member

Откуда:
Сообщений: 104751
МуМу
Можно пример таких тулзов.Х

Lumigent Log explorer, например

МуМу
.Хотя вряд ли эта информация пригодиться, мне важно купить исходники

Формат журнала хоть и недокументирован, но не является юридически закрытым. В инете можно накопать много информации
28 май 14, 14:45    [16085682]     Ответить | Цитировать Сообщить модератору
 Re: Плеер восстановления БД. Восстановление БД на нужную точку не только вперед но и назад.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Еще один вопрос.Вроде как появилась возможность отслеживать в виде рекордсетов изменения по всем таблицам в рамках батча.(какая то опция) Еще не исследовал эту тему, подскажите так ли это? Если это так то можно пойти по этому пути. Ведь у нас есть не только лог транзакций но и сами SQL конструкции которые воспроизводится так же.
29 май 14, 18:29    [16093682]     Ответить | Цитировать Сообщить модератору
 Re: Плеер восстановления БД. Восстановление БД на нужную точку не только вперед но и назад.  [new]
komrad
Member

Откуда:
Сообщений: 5735
МуМу
Еще один вопрос.Вроде как появилась возможность отслеживать в виде рекордсетов изменения по всем таблицам в рамках батча.(какая то опция) Еще не исследовал эту тему, подскажите так ли это? Если это так то можно пойти по этому пути. Ведь у нас есть не только лог транзакций но и сами SQL конструкции которые воспроизводится так же.


SQL CDC
29 май 14, 18:32    [16093703]     Ответить | Цитировать Сообщить модератору
 Re: Плеер восстановления БД. Восстановление БД на нужную точку не только вперед но и назад.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Да, пожалуй пойду по этому пути. Чего то я с самого начала зациклился на логе транзакций. А ведь в моем случае есть еще лог операций. Их можно один раз воспроизвести и на основании этого составить undo транзакции.
Хотя странно , был уверен что подобные решения уже существуют.
Всем спасибо!
29 май 14, 19:35    [16094068]     Ответить | Цитировать Сообщить модератору
 Re: Плеер восстановления БД. Восстановление БД на нужную точку не только вперед но и назад.  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8805
Это задача крайне узкого спектра применения. Задача промышленных систем, как правило, состоит в поддержании целостности и исторической достоверности данных. Любой откат приводит к фальсификации.
CDC, кстати, я еще три дня назад предлагал
30 май 14, 11:42    [16096263]     Ответить | Цитировать Сообщить модератору
 Re: Плеер восстановления БД. Восстановление БД на нужную точку не только вперед но и назад.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Вообще то задача родилась случайно. Основа - переход на новые версии MSSQL. Не думаю что совсем уж разовая задача. Хочется упростить процесс оптимизации. Кстати! Тесты показывают что 2012 более чем на 12% выигрывает в скорости практически всех простых(при долгом расчете плана конечно результат будет нулевой) конструкций по сравнению с 2008. Видимо движок перебрали.
30 май 14, 12:16    [16096549]     Ответить | Цитировать Сообщить модератору
 Re: Плеер восстановления БД. Восстановление БД на нужную точку не только вперед но и назад.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Как и предполагалось, проще всего использовать CDC. Можно целиком удалять и вставлять необходимые записи, по всему набору полей. Основные сложности при изменении структуры таблиц. Видимо на все случаи жизни не получиться сделать, будут некоторые ограничения.
Вопрос ко всем. Никто не замерял насколько возрастает доп. нагрузка при включении CDC? Никто не пробовал данный функционал использовать в репликации?
20 июн 14, 13:12    [16194945]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить