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

Шринк(обрезка) лога транзакций MS SQL 2008/2012

Шринк(обрезка) лога транзакций MS SQL 2008/2012
Я
   Kigo_Kigo
 
21.10.19 - 10:59
Прочитал статью, но остались вопросы

http://catalog.mista.ru/public/168314/

и так что имеем базу на Скуле, 14 гб, веслога 920 гб, нужно срезать лог, как это сделать?
по статье не понятно, как нужно сделать полный бекап, средствами Скуля или 1С(выгрузка в dt), после срезки, опять надо сделать полный бекап?
Что надо указывать в желаемый объем лога после архивирования(срезки) лога?
Или есть какие то другие варианты, что бы безболезненно и быстро?

и вопрос еще, что нужно донастроить, чтобы тип лога был полный, но сам обрезался и не рос в таких количествах?

ПыСы базу настраивал не я, дали то что есть
 
 
   Ёпрст
 
1 - 21.10.19 - 11:03
для полной модели восстановления задать в план обслуживания бэкап лога и шринк лога.. всё
   Fish
 
2 - 21.10.19 - 11:05
(0) "по статье не понятно, как нужно сделать полный бекап, средствами Скуля или 1С(выгрузка в dt)," - dt - это не бекап и никогда таковым не являлся. Поэтому всё понятно.
   Ёпрст
 
3 - 21.10.19 - 11:06
от так сделай и забудь о размере лога (имя бд тока своё в скрипт воткни)
http://pics.rsh.ru/img/backUp_xoryv6cy.jpg
   Случайный прохожий
 
4 - 21.10.19 - 11:12
(3) Есть скрипт для шринка логов всех пользовательских БД?
   Kigo_Kigo
 
5 - 21.10.19 - 11:16
(2) Что тебе понятно, я перестраховываюсь, выгрузив все базу, в то из чего я ее гарантрованно смогу поднятиь, как пока настроенны бек апы скуля, пока разбераюсь
   Cyberhawk
 
6 - 21.10.19 - 11:37
(5) Гарантии восстановления никогда нет, даже если бекап проверен
   Kigo_Kigo
 
7 - 21.10.19 - 11:54
(6) В том то и вопрос, что я понимаю что этим логом скоро упрусь, пытаюсь выяснить как максимально правильно это сделать,что ничего не запороть, я конечно выгружу базу, сделаю новую бд, разверну, что бы убедится что все сработает, потом буду колдовать
   unregistered
 
8 - 21.10.19 - 12:03
(5) >> то из чего я ее гарантированно смогу поднять.

Если база битая, то вероятность поднять из DT ниже, чем из бекапа СУБД.
А вообще гарантий не даёт ни один из способов архивирования. Для этого бекапы регулярно проверяют на разворачиваемость.
Но полноценным бекапом является именно бекап, сделанный средствами СУБД.
   Креатив
 
9 - 21.10.19 - 12:09
(0)Если боязно делать бакап, то можно отсоединить базу от sql server и заархивировать отдельно mdf и ldf.
   Kigo_Kigo
 
10 - 21.10.19 - 12:32
(9) mdf , то понятно 14 гиг, куда не шло а вот ldf 920 гигов, я его наверно только копировать все выхи буду
   unregistered
 
11 - 21.10.19 - 12:45
(10) Зачем тебе его куда-то копировать?...
Ты вообще суть понимаешь того, что тебе нужно сделать?
   Йохохо
 
12 - 21.10.19 - 12:49
(7) тебя скуль защитит сам, он ничего не выкинет нужного
   Провинциальный 1сник
 
13 - 21.10.19 - 12:50
1. Меняем модель восстановления на simple
2. В sql студии уменьшаем размер файла транзакций до необходимого минимума
3. Включаем обратно модель full
4. Настраиваем правильно периодический бэкап журнала транзакций
   Провинциальный 1сник
 
14 - 21.10.19 - 12:50
(13) Да, и всё это можно сделать не выгоняя пользователей, в горячем режиме
   Kigo_Kigo
 
15 - 21.10.19 - 13:44
(13) (14) После "процедуры" надо сделать полный бекап, что бы бекапирование восстановилось?
(12) Ну расскажи, что мне нужно сделать?
   Провинциальный 1сник
 
16 - 21.10.19 - 13:48
(15) Да, сделать полный бэкап, и после него бэкапы транзакций будут восстановимыми. Обычно есть смысл планировать бэкап базы раз в сутки, и бэкап транзакций раз в полчаса-час в рабочее время.
   Ёпрст
 
17 - 21.10.19 - 13:54
   Йохохо
 
18 - 21.10.19 - 13:58
(15) полный бэкап и (3), 0 вроде не рекомендуют
   mikecool
 
19 - 21.10.19 - 14:39
судя по размеру базы - бэкапа давно не было )
   Kigo_Kigo
 
20 - 21.10.19 - 14:41
(19) Бекапы делаются ежедневно, но только базы(без лога),настраивал не я, сча со всем этим разбираюсь...
   Kigo_Kigo
 
21 - 22.10.19 - 10:06
(3) Если я воткну этот скрипт к существующей базе более ничего НЕ делая,после бекапа, файл лога автоматом сожмется?
(13) 2. В sql студии уменьшаем размер файла транзакций до необходимого минимума, какой необходимый минимум, бля базы в 14 гигов?

и еще есть- сжатие БД лога, там собственно выполняется крипт из (3) можно ли его выполнить на горячуюю?
   Йохохо
 
22 - 22.10.19 - 10:10
(21) не автоматом, а по скрипту
"DBCC SHRINKFILE не сжимает файл не более, чем это нужно для хранимых данных. Например, если в файле данных, размер которого составляет 10 МБ, используется 7 МБ, инструкция DBCC SHRINKFILE со значением аргумента target_size, равным 6, сжимает файл только до 7 МБ, а не до 6 МБ."
https://docs.microsoft.com/ru-ru/sql/t-sql/database-console-commands/dbcc-shrinkfile-transact-sql?view=sql-server-ver15
   Провинциальный 1сник
 
23 - 22.10.19 - 10:15
(21) Ну поставь пару гигов, чтобы лишний раз не фрагментировался при авторасширении
   Ёпрст
 
24 - 22.10.19 - 10:24
(21)
да
да
   oleg_km
 
25 - 22.10.19 - 10:28
Для начала определись, испытываешь ли ты потребность в бакапе журнала транзакций. Если нет, то нужно перевести базу в RECOVERY SIMPLE, один раз сделать шринк базы и все. Если да, то все описано в (13)
   Kigo_Kigo
 
26 - 22.10.19 - 10:45
(22) не автоматом, а по скрипту, я это и имел ввиду
по скрипту, как показано в (3) можно сделать и так как я понял, оставляя 500 метров на лог
USE [upp_work]
GO
DBCC SHRINKFILE (N'upp_work_log' , 500)
GO
(25) Как определится в его потребности?


так с порядком действий я определился
Полный бекап, (13), (3), полный бекап, настройка бекапа базы раз в сутки, настройка бекапа файла транзакций раз в час(если не большого объема, 500 метров), раз часа в 4- если его сделать 2 гига

все а правильно понял ничего не упустил?
достаточно сделать только бекап базы(без бекапа лога)?
   ДенисЧ
 
27 - 22.10.19 - 10:49
(26) "Как определится в его потребности?"
Если ты собираешься восстанавливать базу на любой момент времени - то бекап журнала нужен. Если тебе достаточно копии на момент бекапа - то журнал не нужен.
   Провинциальный 1сник
 
28 - 22.10.19 - 10:50
(26) "Как определится в его потребности?"
Бэкап лога делается очень быстро в отличие от бэкапа базы в целом, и в то же время позволяет восстановить базу на любой момент времени, присутствующий в бэкапах транзакций. При восстановлении происходит сначала восстановление последнего бэкапа базы, а потом последовательно накатываются все транзакции из бэкапов журнала транзакций, до нужного момента.
   Kigo_Kigo
 
29 - 22.10.19 - 10:54
(28) Отлично, сколько фалов бекапа транзакций достаточно хранить, если
бекап БД раз сутки(стек 6 штук)
Файл транзакций 2 гига, бекап каждые 4 часа, (стек 8 шт будет достаточно? )
   ДенисЧ
 
30 - 22.10.19 - 10:55
(29) А ты умеешь делать восстановление на любой момент? Тебе это может понадобиться?
 
 Рекламное место пустует
   Kigo_Kigo
 
31 - 22.10.19 - 10:58
(29) + (28)(27) спасибо за развернутые ответы, теперь все ясно
что сделает скрипт в (3) в отличии от
USE [upp_work]
GO
DBCC SHRINKFILE (N'upp_work_log' , 500)
GO
?
(30) Лучше иметь , чем не иметь, спеца по скулю всегда можно и за деньги пригласить, в случае какого нить пиздеса, но и сам освою, что уж там и не такие задачи поднимали
   Провинциальный 1сник
 
32 - 22.10.19 - 10:58
(29) Ну это сам решай, надо тебе восстанавливать ВЧЕРА на произвольный момент или достаточно СЕГОДНЯ.
(30) Да там сложного ничего нет, в студии той же правой кнопкой мыши на базе, задачи-восстановить, история бэкапов сама подтянется, если на том же сервере.
   Йохохо
 
33 - 22.10.19 - 11:07
(31) кмк без транкейтонли операция может быть очень долгой и в регламент такое лучше не пихать
   Kigo_Kigo
 
34 - 22.10.19 - 11:26
(33)а не надо  тогда  забекапить файл транзакции перед (3) транкейтонли ?
   Случайный прохожий
 
35 - 22.10.19 - 11:30
(17) Спасибо!
   Йохохо
 
36 - 22.10.19 - 11:35
(34) Нет. Без транкейтонли будет _перемещение_ живых записей в начало файла, а это может быть куча ио, что для лога больно. И ио с логом вроде блокирующее для фиксирования транзакций. С ним не будет, но файл не пожмется до бебисайз, но бебисайз и не нужен при нормальной работе.
   Провинциальный 1сник
 
37 - 22.10.19 - 11:39
(31) Шринкать базу по расписанию - плохая идея.
   Йохохо
 
38 - 22.10.19 - 11:41
(37) с транкейт хорошая
   Kigo_Kigo
 
39 - 22.10.19 - 11:41
(36) а, я понял, на момент бекапа базы, мы уже имеем полную БД и ее архивируем, после это смело "прибиваем" файл транзакции, все равно в течении дня у нас есть копии транзакций(на всякий)
(37) почему? я так понял, что шринькать ее надо из 3, так как в (31) будет "больно" и возможно и долго
   Провинциальный 1сник
 
40 - 22.10.19 - 11:44
(38) А смысл? Если у тебя лог бэкапится, он транкейтится и потом перезаписывается циклически. И шринкать смысла нет. Установится некий размер и будет поддерживаться.
   xXeNoNx
 
41 - 22.10.19 - 11:47
(1) Пардон, а накуа шринковать?
   xXeNoNx
 
42 - 22.10.19 - 11:52
+(41) Шоб место освободить, которое было съедено после предыдущего бекапа?
   Йохохо
 
43 - 22.10.19 - 11:53
(40) после тяжелых разовых операций он будет занимать неразумное количество места
   Kigo_Kigo
 
44 - 22.10.19 - 11:53
(40) То есть делаем (13),даем логу 2 гига, настраиваем (16),(бекап лога раз 4 часа), Всё?
   xXeNoNx
 
45 - 22.10.19 - 11:54
(43) )) после тяжелых, разовых..., а бекап-то предполагается делать каждый день...
   Провинциальный 1сник
 
46 - 22.10.19 - 11:54
(42) А не надо его освобождать. Оно всё равно используется новыми транзакциями. А будешь шринкать - получишь фрагментацию файла при росте, а оно надо?
(43) Вот после тяжелых разовых и шринкнуть до типичного размера. А по расписанию не надо.
   xXeNoNx
 
47 - 22.10.19 - 11:56
(46) "фрагментацию файла при росте" - где вероятность того что этого уже нет?
   Йохохо
 
48 - 22.10.19 - 11:56
(44) повесь (3) и лог сам с течением времени займёт сколько ему нужно, зачем насильничать
(46) ты, как ДБА, может и не узнать. А по расписанию удаление сплошного несегментированного куска в конце изи бризи
   Провинциальный 1сник
 
49 - 22.10.19 - 11:57
(47) Пусть оно есть, но зачем усугублять?)
   Kigo_Kigo
 
50 - 22.10.19 - 11:59
(48) (3) уже подвесил, пока не вкючил, пока вс точно не определится, а то пока в последовательности и мера расходимся во мнениях
   Йохохо
 
51 - 22.10.19 - 12:00
(50) просто наблюдай
   Ёпрст
 
52 - 22.10.19 - 12:01
(50) вс - это кто ?
   ADirks
 
53 - 22.10.19 - 12:02
(0) Про бэкапы и логи почитай лучше Спешурика: http://catalog.mista.ru/public/173494/

Если не знаешь, зачем тебе recovery mode "Full", то ставь Simple.
   Йохохо
 
54 - 22.10.19 - 12:04
какая то галка еще нужна, разрешить быструю инициализацию нового места под лог и файлики при росте, или это ту олд
   Kigo_Kigo
 
55 - 22.10.19 - 12:09
(52) *пока всё точно не определится,а то пока в последовательности и мерах расходимся во мнениях (пишу одним пальцем, обед) :)
(54) ога, стояла эта галка, которая раздула лог уже до 930 гиг
   Йохохо
 
56 - 22.10.19 - 12:14
(55) нет) эта галка отменяет забивание нулями новых кусков, что долго
   Kigo_Kigo
 
57 - 22.10.19 - 12:17
Давай уже покончим с этим, и так скрипты для каждой из баз в (3) я написал, после бекапа базы, их можно запускать одновременно или лучше последовательно?
переводим в симпле
Ограничиваем файл транзакций в 2 гига,
Перводим в фулл
Настраиваем бекап лога каждые 4 часа

я так правильно понял, этого все будет достаточно?
   oleg_km
 
58 - 22.10.19 - 12:20
(57) После перевода в фулл нужно вроде сделать хотя бы один полный или дифф бакап, только потом можно будет сделать бакап журнала транзакций
   ADirks
 
59 - 22.10.19 - 12:23
(57) Неправильно ты понял. Почитай литературки сначала. И не ставь Full.
   Ёпрст
 
60 - 22.10.19 - 12:23
(57) ничего в симпл переводить не надо
   Kigo_Kigo
 
61 - 22.10.19 - 12:27
(60) переводы симпл/фулл убираем из этой цепочки, и да я посмотрел, что меня сервак не ограничивает, органичить файл лога и при фулл
(59) фулл уже стоял до меня, тот кто это настраивал файлу лога дал размер на весь "кошелек", то есть на весь объем диска, причем для всех баз...
   ADirks
 
62 - 22.10.19 - 12:32
(61) Если ты ограничишь размер лога при full-модели, и не примешь действий к освобождению файла лога, то база просто упадёт при достижении макс. объёма лога.

Пространство в лог-файле освобождается при полном бэкапе.
   Провинциальный 1сник
 
63 - 22.10.19 - 12:34
(62) "Пространство в лог-файле освобождается при полном бэкапе."
Нет. При бэкапе журнала транзакций. При полном, то есть бэкапе текущего состояния базы, журнал транзакций не чистится и все чекпойнты остаются в неприкосновенности.
   ADirks
 
64 - 22.10.19 - 12:41
(63) тьфу... конечно же при бэкапе журнала.
   Kigo_Kigo
 
65 - 22.10.19 - 12:55
(62) (63) (64) Вы меня окончатель запутали, что делать то?
Бекап файла транзакций уже сделать не могу, 920 гигов, места нет
   Провинциальный 1сник
 
66 - 22.10.19 - 12:59
(65) Не нужен тебе бэкап текущего журнала транзакций. Делай как в (13)
 
 Рекламное место пустует


Список тем форума
Рекламное место пустует  Рекламное место пустует
2 + 2 = 3.9999999999999999999999999999999...
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.