|
Разностный бекап MS SQL | ☑ | ||
---|---|---|---|---|
0
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
|
А бекапы (это файлы?) с чего должны очищаться? Очищается (помечается не используемым) место в файлых БД...
|
|||
2
fisher
30.11.20
✎
12:38
|
Что такое "должны очищаться бэкапы"? Первый раз слышу такую терминологию. Ты про ротацию, что ли? Удаление ненужных бэкапов?
|
|||
3
Йохохо
30.11.20
✎
12:43
|
вроде можно поиграться с бэкапсет https://docs.microsoft.com/ru-ru/sql/relational-databases/system-tables/backupset-transact-sql?view=sql-server-ver15
|
|||
4
МихаилМ
30.11.20
✎
13:14
|
обычно используют либо бэкап логов либо разностный.
|
|||
5
1Сергей
30.11.20
✎
13:15
|
(1) (2) смотрите. Допустим, сделали фуллбекап - 10Гб, диффбекап 0Гб. проходит день, дифф вырос до 1 ГБ (условно), через день - до 2Гб, через неделю до 7Гб. В этот момент делается фуллбекап, дифф при этом должен быть опять 0Гб
|
|||
6
1Сергей
30.11.20
✎
13:17
|
(4) такая схема как у нас тоже имеет права на жизнь
|
|||
7
ptiz
30.11.20
✎
13:33
|
(0) "при создании разностного бекапа должен очищаться бекап логов." - нет. Это разные виды бэкапов.
У нас делается и full, и diff и бэкап логов. |
|||
8
1Сергей
30.11.20
✎
13:35
|
(7) файлы бекапов имеют дату/время в названии или в пути сохранения?
|
|||
9
nikneim
30.11.20
✎
13:35
|
Отчет Сводная ведомость расчетов и Ведомость расчетов с клиентами Формируется неправильно. В колонке Долг клиента\поставщика показывает долг , хотя у клиента отсрочка от 14-30 дней. То есть Реализация проведена 26.11.2020, К оплате 26.12.2020(100%).И при Реализации не дает провести ее( Имеется просроченная задолженность на сумму 7232 руб, с прошлой реализации в которой оплата по сроку тоже дается 20 дней) Может кто сталкивался с этим.
|
|||
10
1Сергей
30.11.20
✎
13:36
|
(9) ничоси. деоа...
|
|||
11
fisher
30.11.20
✎
16:12
|
(5) Если новый диф-бэкап ты делаешь относительно нового фулбэкапа, то в него и запишет только измененные со времени базового фуллбэкапа экстенты. Мы просто диф-бэкапов не делаем, поэтому на практике не подскажу как происходит процесс выбора опорного фулбэкапа. Но это ключевой момент. Какой опорный будет использоваться - такого размера диф и получишь (чем новее, тем меньше размер).
А бэкапы логов особняком стоят. Им на все плевать. Они вещь в себе. Бэкапятся себе и бэкапятся. Они ж не накопительные, а просто последовательные пачки транзакций. Из них можно налить недостающих данных до нужного момента. |
|||
12
1Сергей
30.11.20
✎
16:28
|
(11) чтобы поднять базу из бекапа на определенный момент, нужен фулбекап и все разностные бекапы (диффы и логи) от момента фулла до необходимой точки во времени.
Вчера нарвались на то, что программист взял фулл бекап, дифф, лог и не смог загрузить потому что лог был сделан до фулла. SQL сказал что log.bak is incorrectly formated and can not be read. Ясен пень что он незагрузится вместе с более свежим фуллом. Собственно, к этом и тему поднял. Нужно ли очищать разностные бекапы, когда делаешь фулл бекап |
|||
13
fisher
30.11.20
✎
16:41
|
(12) Не очень понял, чего вы ожидали пытаясь загрузить бэкапы логов, сделанные до фулл-бэкапа. Они же уже вошли в фулл-бэкап. Ничего очищать не нужно. Все дифы тоже не нужны. Только последний.
Поднимаешь фуллбэкап и на него - последний диф, сделанный на его основе. А вот дальше нужны ВСЕ бэкапы логов, которые "цепляют" момент создания последнего дифа до того времени, куда нужно восстановиться. Без пропусков. Формулировка "очистка разностного бэкапа" мне по-прежнему неясна. Ничего "очищать" не нужно. Нужно просто иметь все нужные бэкапы. |
|||
14
ptiz
30.11.20
✎
16:45
|
(12) Еще раз: основной бэкап и бэкап лога - это разные вещи. В бэкапе лога никакие точки основного бэкапа не отмечаются.
|
|||
15
fisher
30.11.20
✎
16:47
|
(12) Но вообще ошибку стремную выдало. Что-то вы там намутили не того. Ошибка говорит о том, что сиквел вообще не понимает, чего вы ему суете.
|
|||
16
fisher
30.11.20
✎
16:50
|
Короче проще всего - возьми каркасную конфигурацию и прогони на ней типовые сценарии резервирования/восстановления, пока не отпадут все вопросы.
|
|||
17
1Сергей
30.11.20
✎
16:52
|
(13) я же написал, что логи пишутся в один файл. логи до фулла и диффа не нужны, значит файл нужно очищать
|
|||
18
fisher
30.11.20
✎
16:54
|
(17) > логи пишутся в один файл
Это бред. Логи в один файл не пишутся. У тебя есть расписание создания бэкапов логов. Каждый раз должен создаваться новый файл. Потому что бэкапы логов - они не разностные. И для восстановления нужна вся цепочка за нужный период. |
|||
19
1Сергей
30.11.20
✎
16:57
|
(18) :) никто не запрещает писать логи в один файл
|
|||
20
fisher
30.11.20
✎
17:00
|
Смотри как оно работает - при включении полной модели восстановления зафиксированные транзакции перестают удаляться из журнала.
И тут оп - делается бэкап транзакций. Из журнала просто выгребаются все зафиксированные транзакции и скидываются в файл бэкапа. И так - каждый очередной бэкап. А чтобы восстановиться - тебе нужные ВСЕ транзакции с момента бэкапа БД (неважно - фулл или фулл+дифф). Если ты каждые 15 минут переписываешь файл бэкапа логов, то там остаются только транзакции за последние 15 минут. |
|||
21
1Сергей
30.11.20
✎
17:00
|
||||
22
1Сергей
30.11.20
✎
17:01
|
(20) есть же опция "Append existing"
|
|||
23
fisher
30.11.20
✎
17:03
|
(22) Не работал с ней. Но если оно работает как называется, то это только лишний гемор, потому что у тебя в самом деле возникает проблема контроля "количества данных" в накопительном бэкапе транзакций.
А когда каждый бэкап идет отдельным файлом - у тебя нет такой проблемы. |
|||
24
1Сергей
30.11.20
✎
17:04
|
(23) зачем плодить кучу файлов?
|
|||
25
fisher
30.11.20
✎
17:05
|
(24) Потому что это удобно?
|
|||
26
1Сергей
30.11.20
✎
17:09
|
(25) куча файлов удобнее одного? о_О
|
|||
27
fisher
30.11.20
✎
17:14
|
(26) Конечно. Для логов это повсеместно. Максимальная гибкость. Ротацию очень удобно делать (удалять устаревшие периоды). Все очень понятно и наглядно.
Подозреваю, что твоя беда с восстановлением связана как раз с этим накопительным файлом. Подозреваю, что оно имеет особый формат, который не понимается в том инструменте, который ты используешь для восстановления. |
|||
28
fisher
30.11.20
✎
17:18
|
Надо бы глянуть, какой sql-скрипт формируется для этой задачи. Возможно, это добавит понимания в то, что происходит.
|
|||
29
1Сергей
30.11.20
✎
18:23
|
(27) >>Подозреваю, что оно имеет особый формат, который не понимается в том инструменте, который ты используешь для восстановления.
ты это... выдыхай, чтоли :) |
|||
30
fisher
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 логи у вас делаеются, ага, щаз) |
|||
32
1Сергей
30.11.20
✎
18:39
|
(31) Причем тут это? У меня совсем не эта ошибка выходит. Да и понятно почему выходит
|
|||
33
1Сергей
30.11.20
✎
18:39
|
(30) Вот, ты уверен?
|
|||
34
Йохохо
30.11.20
✎
18:40
|
(32) в (12) не та ошибка? https://www.google.com/search?q=bak+is+incorrectly+formated+and+can+not+be+read
|
|||
35
1Сергей
30.11.20
✎
18:48
|
||||
36
fisher
30.11.20
✎
18:57
|
(33) "Файл неправильно сформирован и не может быть прочитан". "Не может быть ПРОЧИТАН", Карл!
|
|||
37
Йохохо
30.11.20
✎
18:59
|
(36) он немецкий в школе учил)
|
|||
38
1Сергей
30.11.20
✎
19:00
|
ок. Какая ошибка должна была выйти?
|
|||
39
fisher
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
|
При восстановлении на нужную дату/время, будет выбран полный бекап, ближайший разностный и кучка бекапов лога от выбранного разностного..(ну или полный и логи, если дата понедельник)
|
|||
45
1Сергей
01.12.20
✎
11:16
|
(43) оно и так отдельными. Это я в фулл бекапе сразу же делаю и дифф и лог, чтобы они очистились
|
|||
46
1Сергей
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-и)
|
|||
54
ptiz
01.12.20
✎
11:42
|
А я вообще планы не люблю. Скрипт + ручное задание = наше всё! Максимальная гибкость и прозрачность.
|
|||
55
1Сергей
01.12.20
✎
14:08
|
(52) (53) так и сделано
|
|||
56
1Сергей
01.12.20
✎
14:09
|
(54) +1
я тоже не люблю планы. Отлаживать их то ещё удовольствие |
|||
57
Ёпрст
01.12.20
✎
22:22
|
(55) да ну ? а в (5) что ?!
|
|||
58
Ёпрст
01.12.20
✎
22:23
|
точнее в (0) - у тебя 1 план и 3 задания в нём..через стрелочку.
|
|||
59
1Сергей
02.12.20
✎
11:26
|
(58) это один из субпланов. Создание фулла
|
|||
60
1Сергей
02.12.20
✎
11:26
|
Диффы и логи отдельными субпланами делаются
|
|||
61
Ёпрст
03.12.20
✎
00:26
|
(59) а зачем ты при создании фулла еще и дифф и бекап лога лепишь ?
|
|||
62
Ёпрст
03.12.20
✎
00:27
|
оставь только бекап фулла в этом задании, остальное выкинь, ибо лишено смысла
|
|||
63
1Сергей
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
|
а туда запросто может влететь транзакция, между последним фулом и первым диффом.. ну и нафига хранить дифф с одной-паройизменений ?
|
|||
67
1Сергей
03.12.20
✎
11:35
|
(65) Бедный скуль, столько работы...
|
|||
68
1Сергей
03.12.20
✎
11:37
|
(66) Как она туда залетит, если сначала делается фулл, затем дифф, и лишь потом лог?
|
|||
69
1Сергей
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) это не схема, это полный ПЭ
|
|||
73
1Сергей
03.12.20
✎
11:42
|
(71) почему
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |