Вход | Регистрация
 
Информационные технологии :: Администрирование

Разностный бекап MS SQL

Разностный бекап MS SQL
Я
   1Сергей
 
30.11.20 - 12:01
Приветствую вас, товарищи и господа!

Подскажите по настройке разностного бекапа MSSQL.

У нас схема такая:
1. Полный бекап раз в неделю
2. Разностный бекап два раза в сутки
3. Бекап логов каждые 15 мин

Каждый тип бекапа делается в свой девайс (bdfull.bak, bddiff.bak, bdlog.bak). Я так понимаю, что при полном бекапе должны очищаться бекапы разностный и лога. И, соответственно, при создании разностного бекапа должен очищаться бекап логов.

Правильно или нет?

http://pics.rsh.ru/img/000_johy57zn.png
   ДенисЧ
 
1 - 30.11.20 - 12:36
А бекапы (это файлы?) с чего должны очищаться? Очищается (помечается не используемым) место в файлых БД...
   fisher
 
2 - 30.11.20 - 12:38
Что такое "должны очищаться бэкапы"? Первый раз слышу такую терминологию. Ты про ротацию, что ли? Удаление ненужных бэкапов?
   Йохохо
 
3 - 30.11.20 - 12:43
   МихаилМ
 
4 - 30.11.20 - 13:14
обычно используют либо бэкап логов либо разностный.
   1Сергей
 
5 - 30.11.20 - 13:15
(1) (2) смотрите. Допустим, сделали фуллбекап - 10Гб, диффбекап  0Гб. проходит день, дифф вырос до 1 ГБ (условно), через день - до 2Гб, через неделю до 7Гб. В этот момент делается фуллбекап, дифф при этом должен быть опять 0Гб
   1Сергей
 
6 - 30.11.20 - 13:17
(4) такая схема как у нас тоже имеет права на жизнь
   ptiz
 
7 - 30.11.20 - 13:33
(0) "при создании разностного бекапа должен очищаться бекап логов." - нет. Это разные виды бэкапов.
У нас делается и full, и diff и бэкап логов.
   1Сергей
 
8 - 30.11.20 - 13:35
(7) файлы бекапов имеют дату/время в названии или в пути сохранения?
   nikneim
 
9 - 30.11.20 - 13:35
Отчет Сводная ведомость расчетов и Ведомость расчетов с клиентами Формируется неправильно. В колонке Долг клиента\поставщика показывает долг , хотя у клиента отсрочка от 14-30 дней. То есть Реализация проведена 26.11.2020, К оплате 26.12.2020(100%).И при Реализации не дает провести ее( Имеется просроченная задолженность на сумму 7232 руб, с прошлой реализации в которой оплата по сроку тоже дается 20 дней) Может кто сталкивался с этим.
   1Сергей
 
10 - 30.11.20 - 13:36
(9) ничоси. деоа...
   fisher
 
11 - 30.11.20 - 16:12
(5) Если новый диф-бэкап ты делаешь относительно нового фулбэкапа, то в него и запишет только измененные со времени базового фуллбэкапа экстенты. Мы просто диф-бэкапов не делаем, поэтому на практике не подскажу как происходит процесс выбора опорного фулбэкапа. Но это ключевой момент. Какой опорный будет использоваться - такого размера диф и получишь (чем новее, тем меньше размер).
А бэкапы логов особняком стоят. Им на все плевать. Они вещь в себе. Бэкапятся себе и бэкапятся. Они ж не накопительные, а просто последовательные пачки транзакций. Из них можно налить недостающих данных до нужного момента.
   1Сергей
 
12 - 30.11.20 - 16:28
(11) чтобы поднять базу из бекапа на определенный момент, нужен фулбекап и все разностные бекапы (диффы и логи) от момента фулла до необходимой точки во времени.
Вчера нарвались на то, что программист взял фулл бекап, дифф, лог и не смог загрузить потому что лог был сделан до фулла. SQL сказал что log.bak is incorrectly formated and can not be read.
Ясен пень что он незагрузится вместе с более свежим фуллом.
Собственно, к этом и тему поднял. Нужно ли очищать разностные бекапы, когда делаешь фулл бекап
   fisher
 
13 - 30.11.20 - 16:41
(12) Не очень понял, чего вы ожидали пытаясь загрузить бэкапы логов, сделанные до фулл-бэкапа. Они же уже вошли в фулл-бэкап. Ничего очищать не нужно. Все дифы тоже не нужны. Только последний.
Поднимаешь фуллбэкап и на него - последний диф, сделанный на его основе. А вот дальше нужны ВСЕ бэкапы логов, которые "цепляют" момент создания последнего дифа до того времени, куда нужно восстановиться. Без пропусков. Формулировка "очистка разностного бэкапа" мне по-прежнему неясна. Ничего "очищать" не нужно. Нужно просто иметь все нужные бэкапы.
   ptiz
 
14 - 30.11.20 - 16:45
(12) Еще раз: основной бэкап и бэкап лога - это разные вещи. В бэкапе лога никакие точки основного бэкапа не отмечаются.
   fisher
 
15 - 30.11.20 - 16:47
(12) Но вообще ошибку стремную выдало. Что-то вы там намутили не того. Ошибка говорит о том, что сиквел вообще не понимает, чего вы ему суете.
   fisher
 
16 - 30.11.20 - 16:50
Короче проще всего - возьми каркасную конфигурацию и прогони на ней типовые сценарии резервирования/восстановления, пока не отпадут все вопросы.
   1Сергей
 
17 - 30.11.20 - 16:52
(13) я же написал, что логи пишутся в один файл. логи до фулла и диффа не нужны, значит файл нужно очищать
   fisher
 
18 - 30.11.20 - 16:54
(17) > логи пишутся в один файл
Это бред. Логи в один файл не пишутся. У тебя есть расписание создания бэкапов логов. Каждый раз должен создаваться новый файл. Потому что бэкапы логов - они не разностные. И для восстановления нужна вся цепочка за нужный период.
   1Сергей
 
19 - 30.11.20 - 16:57
(18) :) никто не запрещает писать логи в один файл
   fisher
 
20 - 30.11.20 - 17:00
Смотри как оно работает - при включении полной модели восстановления зафиксированные транзакции перестают удаляться из журнала.
И тут оп - делается бэкап транзакций. Из журнала просто выгребаются все зафиксированные транзакции и скидываются в файл бэкапа.
И так - каждый очередной бэкап. А чтобы восстановиться - тебе нужные ВСЕ транзакции с момента бэкапа БД (неважно - фулл или фулл+дифф).
Если ты каждые 15 минут переписываешь файл бэкапа логов, то там остаются только транзакции за последние 15 минут.
   1Сергей
 
21 - 30.11.20 - 17:00
   1Сергей
 
22 - 30.11.20 - 17:01
(20) есть же опция "Append existing"
   fisher
 
23 - 30.11.20 - 17:03
(22) Не работал с ней. Но если оно работает как называется, то это только лишний гемор, потому что у тебя в самом деле возникает проблема контроля "количества данных" в накопительном бэкапе транзакций.
А когда каждый бэкап идет отдельным файлом - у тебя нет такой проблемы.
   1Сергей
 
24 - 30.11.20 - 17:04
(23) зачем плодить кучу файлов?
   fisher
 
25 - 30.11.20 - 17:05
(24) Потому что это удобно?
   1Сергей
 
26 - 30.11.20 - 17:09
(25) куча файлов удобнее одного? о_О
   fisher
 
27 - 30.11.20 - 17:14
(26) Конечно. Для логов это повсеместно. Максимальная гибкость. Ротацию очень удобно делать (удалять устаревшие периоды). Все очень понятно и наглядно.
Подозреваю, что твоя беда с восстановлением связана как раз с этим накопительным файлом. Подозреваю, что оно имеет особый формат, который не понимается в том инструменте, который ты используешь для восстановления.
   fisher
 
28 - 30.11.20 - 17:18
Надо бы глянуть, какой sql-скрипт формируется для этой задачи. Возможно, это добавит понимания в то, что происходит.
   1Сергей
 
29 - 30.11.20 - 18:23
(27) >>Подозреваю, что оно имеет особый формат, который не понимается в том инструменте, который ты используешь для восстановления.

ты это... выдыхай, чтоли :)
   fisher
 
30 - 30.11.20 - 18:31
(29) > SQL сказал что log.bak is incorrectly formated and can not be read
Это не потому что "лог был сделан до фулла". Это потому, что сиквел вообще не смог этот файл "прожевать".
 
 
   Йохохо
 
31 - 30.11.20 - 18:36
After SQL Server detects a filemark error on a device, SQL Server does not write additional information to the device.
https://docs.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/database-backup-error-3266-3013
логи у вас делаеются, ага, щаз)
   1Сергей
 
32 - 30.11.20 - 18:39
(31) Причем тут это? У меня совсем не эта ошибка выходит. Да и понятно почему выходит
   1Сергей
 
33 - 30.11.20 - 18:39
(30) Вот, ты уверен?
   Йохохо
 
34 - 30.11.20 - 18:40
   1Сергей
 
35 - 30.11.20 - 18:48
   fisher
 
36 - 30.11.20 - 18:57
(33) "Файл неправильно сформирован и не может быть прочитан". "Не может быть ПРОЧИТАН", Карл!
   Йохохо
 
37 - 30.11.20 - 18:59
(36) он немецкий в школе учил)
   1Сергей
 
38 - 30.11.20 - 19:00
ок. Какая ошибка должна была выйти?
   fisher
 
39 - 01.12.20 - 10:22
(38) Если каких-то транзакций не хватает, то оно прямым текстом об этом и сообщает. Кажись что-то там про LSN тра-ля-ля.
   Ёпрст
 
40 - 01.12.20 - 11:09
(0)
>>2. Разностный бекап два раза в сутки

зачем 2 раза то ? И одного хватит
   Ёпрст
 
41 - 01.12.20 - 11:10
(0) ну и занафига последовательно их делать в плане ?!
   Ёпрст
 
42 - 01.12.20 - 11:11
(5) да
   Ёпрст
 
43 - 01.12.20 - 11:12
Короче, у нас так

фулл в воскресенье, с понедельника по субботу дифф и бэкап лога 10 минут
усё.
Только это отдельные задания в плане, а не как у тебя со стрелочками
   Ёпрст
 
44 - 01.12.20 - 11:15
При восстановлении на нужную дату/время,  будет выбран полный бекап, ближайший разностный и кучка бекапов лога от выбранного разностного..(ну или полный и логи, если дата понедельник)
   1Сергей
 
45 - 01.12.20 - 11:16
(43) оно и так отдельными. Это я в фулл бекапе сразу же делаю и дифф и лог, чтобы они очистились
   1Сергей
 
46 - 01.12.20 - 11:16
(44) лог в один файл пишется. До меня так сделали и мне это удобно
   Ёпрст
 
47 - 01.12.20 - 11:27
(45) занафига делать это последовательно ?
   Ёпрст
 
48 - 01.12.20 - 11:28
у тебя же расписание будет применено ко всем одинаковое
   Ёпрст
 
49 - 01.12.20 - 11:30
Короче, какую то х..ню тебе сделали, а не план
   Ёпрст
 
50 - 01.12.20 - 11:32
(12) это не так, нужен фулл и ближайший разностный + логи от ближайшего разностного
   Ёпрст
 
51 - 01.12.20 - 11:34
И ничего очищать не надо, если восстанавливаешь через студию, то просто галку сними с лога, если он "влетел" раньше фуллбекапа
   Ёпрст
 
52 - 01.12.20 - 11:37
Короче, делаешь Один план и ТРИ вложенных плана - полный разностный и логов и у каждого вложенного СВОЁ расписание.
+ для логов можешь еще через "стрелочку" прицепить шринк лога после бекапа лога.
Ну и во всех вложенных - очистку после обслуживания, в которых  указать предел хранения файлов.
   Ёпрст
 
53 - 01.12.20 - 11:39
Ну и для каждого вложенного плана указываешь свой каталог для хранения (для удобства) и своё расширение (на всякий. чтоб не путать bak-и)
   ptiz
 
54 - 01.12.20 - 11:42
А я вообще планы не люблю. Скрипт + ручное задание = наше всё! Максимальная гибкость и прозрачность.
   1Сергей
 
55 - 01.12.20 - 14:08
(52) (53) так и сделано
   1Сергей
 
56 - 01.12.20 - 14:09
(54) +1
я тоже не люблю планы. Отлаживать их то ещё удовольствие
   Ёпрст
 
57 - 01.12.20 - 22:22
(55) да ну ? а в (5) что ?!
   Ёпрст
 
58 - 01.12.20 - 22:23
точнее в (0) - у тебя 1 план и 3 задания в нём..через стрелочку.
   1Сергей
 
59 - 02.12.20 - 11:26
(58) это один из субпланов. Создание фулла
   1Сергей
 
60 - 02.12.20 - 11:26
Диффы и логи отдельными субпланами делаются
 
 
   Ёпрст
 
61 - 03.12.20 - 00:26
(59) а зачем ты при создании фулла еще и дифф и бекап лога лепишь ?
   Ёпрст
 
62 - 03.12.20 - 00:27
оставь только бекап фулла в этом задании, остальное выкинь, ибо лишено смысла
   1Сергей
 
63 - 03.12.20 - 11:14
(61) Да блеать! Чтобы они очистились
   Ёпрст
 
64 - 03.12.20 - 11:25
(63) Кто очистился ?
   Ёпрст
 
65 - 03.12.20 - 11:25
зачем скулю делать лишнюю работу по созданию пустого разностного бекапа ?
   Ёпрст
 
66 - 03.12.20 - 11:26
а туда запросто может влететь транзакция, между последним фулом и первым диффом.. ну и нафига хранить дифф с одной-паройизменений ?
   1Сергей
 
67 - 03.12.20 - 11:35
(65) Бедный скуль, столько работы...
   1Сергей
 
68 - 03.12.20 - 11:37
(66) Как она туда залетит, если сначала делается фулл, затем дифф, и лишь потом лог?
   1Сергей
 
69 - 03.12.20 - 11:38
Карочи, нормальная рабочая схема. Не делайте мне мозги
   Ёпрст
 
70 - 03.12.20 - 11:40
(68) сделался фулл, закоммичилась транзакция получился не пустой дифф
   Ёпрст
 
71 - 03.12.20 - 11:40
Да и делать пустой дифф.. извращение
   Ёпрст
 
72 - 03.12.20 - 11:41
(69) это не схема, это полный ПЭ
   1Сергей
 
73 - 03.12.20 - 11:42
(71) почему


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.