Имя: Пароль:
1C
 
MS SQL BACKUP LOG
0 dDemon
 
17.12.10
06:44
подскажи, может кто сталкивался с такой проблемой.

Есть база на SQL 2005 примерно 100 Гб, Модель востановления -FULL. Делается бэкап раз в сутки, после чего делается shrink лога.

Проблема: при бэкапе лог выростает до больших размеров, а так же сам бэкап соответственно тоже увеличивается в размерах больше чем сама база, и делается по времени уж очень долго, порядка 8-10 часов.

Вопрос: Как можно сделать бэкап без лога, или вобще есть какиенибудь решения такой проблемы? Что бы уменьшить бэкап, а то бэкап в 180 Гб как-то не очень устраивает ...

П.Ы. Пробывал переводить перед бэкапом базу в режим SIMPLE, всеравно лог выростает и бэкап занимже.
1 ДенисЧ
 
17.12.10
06:50
при симпле лог бекапить бессмысленно
2 strange2007
 
17.12.10
06:57
в симпле лог вообще не растет
3 упс
 
17.12.10
06:58
лог из-за бэкапа вырастать не может, скорее всего у вас есть какой-нибудь хитрый джоб, типа перестройки индексов, который выполняется одновременно с бэкапом - из-за него и долгое время и большой бэкап (получается очень большая "активная" часть лога, которая бэкапится при полном бэкапе), из-за этого и в симпле у вас получается здоровенный бэкап
4 упс
 
17.12.10
06:59
(2) вообще-то растет...
5 strange2007
 
17.12.10
07:18
(4) я не спец по SQL... блин, ну не растет. Как может расти? Может скажете куда глянуть?
6 упс
 
17.12.10
07:25
7 PowerBoy
 
17.12.10
07:31
(0) А куда делается бакап?
8 strange2007
 
17.12.10
08:00
(6) Т.е. согласно "В простой модели восстановления — после достижения контрольной точки." можно точку сместить вперед? По дефолту она на нуле, значит не растет
9 упс
 
17.12.10
08:24
(8) не понимаю что значит "по дефолту она на нуле". Контрольная точка - это операция CHECKPOINT в модели восстановления симпл частота ее вызова зависит от двух условий: либо журнал заполнен на 70 процентов, либо при достижении такого числа записей в журнале, что SQL Server не успеет закончить восстановление за recovery interval.
http://msdn.microsoft.com/ru-ru/library/ms189573.aspx

Именно поэтому, в обычных условиях, лог при простой модели восстановления дорастает до определенного размера и останавливается в росте. В принципе, этот же размер можно удержать и в модели восстановления FULL, опеределив нужную частоту бэкапов журнала транзакций. Случаи, при которых в простой модели восстановления возможен рост журнала транзакций перечислены во второй ссылке в (6) (хотя, фактически, проблемы сводятся к двум - "долгоиграющая" транзакция\транзакция изменяющая огромное количество данных и транзакционная репликация, ЕМНИП, она доступна в SIMPLE).
Самый простой способ убедиться в том, что лог растет в симпл-модели восстновления - понаблюдать за tempdb после перезапуска SQL Server. Если не было изменения initial size, вы увидите как во время активной работы пользователей (когда у многих людей используются временные таблицы) растет ее лог. У меня на тестовом сервере initial size = 1MB, в данный момент размер лога около 450 MB.
10 EasyRider
 
17.12.10
09:10
(9)Ага,лог растет.За счет незавершенных транзакций только.Если сделать для них commit, то и лог уменьшится,а не то что "до определенных размеров и останавливается"
11 упс
 
17.12.10
09:23
(10) без шринка никуда он не уменьшится. А при шринке уменьшится, условно говоря, до записи в последней\наиболее длительной активной транзакции.
"дорастет до определенных размеров и остановится" - имелось в виду, что он станет такого размера, что его хватит для хранения всех записей об активных транзакциях и ему не придется увеличиваться. Понятно, что если будет незавершенная транзакция рост не остановится, собственно, об этом и был пост в (9)
12 wPa
 
17.12.10
09:56
(0)
"Модель востановления -FULL. Делается бэкап раз в сутки"

Недопонял - зачем полная модель без дифференциронного бэкапа? Или раз в сутки журнал именно транзакций бекапится?

"Проблема: при бэкапе лог выростает до больших размеров, а так же сам бэкап соответственно тоже увеличивается в размерах больше чем сама база, и делается по времени уж очень долго, порядка 8-10 часов."

Ставь модель восстановления Simple и забудь уже про
BACKUP LOG )
370 гигов делаются

Job Name        BackUp

Duration        01:18:19

(11) Если в опциях стоит автошринк - не нужно его отдельно делать.
13 упс
 
17.12.10
10:18
(12) дифференциальный бэкап - это отдельный вид бэкапа, доступный в любой модели восстановления и к бэкапу журнала транзакций не имеющий никакого отношения.
Если в опциях на рабочей базе стоит автошринк - это весьма печально.. если база, конечно, не используется только для отчетов..
14 dDemon
 
20.12.10
10:42
да, действительно, есть перестройка индекса, попробую посмотреть как она накладывается на это.
15 dDemon
 
20.12.10
10:44
"Недопонял - зачем полная модель без дифференциронного бэкапа? Или раз в сутки журнал именно транзакций бекапится?"

нет, правильно поняли, имено полная копия базы, не разница и не лог, а база. Так вот поставлена была задача. ДУмаю пересмотреть ее.

Поставил пока модель Simple, попробую проверить