Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Hett Member Откуда: Бийск, Новосибирск Сообщений: 13638 |
Всем привет, по этому вопросу, конечно, много информации в интернете уже написано, но боюсь не правильно что-то понять. У меня лог файл 130 гигабайт уже весит, какой самый корректный способ уменьшать его размер, чтобы потом "не попасть"? В инете много статей, что нужно поставить модель Simple, потом трункейтить лог и возвращать модель на Full. Но как понимаю, в случае чего база не сможет восстановиться? |
8 янв 16, 17:22 [18652951] Ответить | Цитировать Сообщить модератору |
komrad Member Откуда: Сообщений: 5498 |
покажите результат select DATABASEPROPERTYEX('ИМЯ БАЗЫ','Recovery'),@@version dbcc sqlperf(logspace) |
||
8 янв 16, 17:27 [18652966] Ответить | Цитировать Сообщить модератору |
Hett Member Откуда: Бийск, Новосибирск Сообщений: 13638 |
Как-то так К сообщению приложен файл. Размер - 12Kb |
8 янв 16, 17:42 [18653004] Ответить | Цитировать Сообщить модератору |
AlanDenton Member [скрыт] Откуда: Сообщений: 1004 |
Перевести БД в SIMPLE либо регулярно делать бекап лога. Что Вам подходит лучше согласно бизнес-требований, то и нужно делать. А статьи которые советую такие "радости" лучше обходить стороной. |
8 янв 16, 17:45 [18653008] Ответить | Цитировать Сообщить модератору |
komrad Member Откуда: Сообщений: 5498 |
это подходит в том случае, когда других вариантов нет если выполнить такую рекомендацию, то не сможете восстановить базу на момент времени между последним фулл-бекапом (и дифф, если есть) и текущим моментом я бы на вашем месте удостоверился в том, что базе _нужно_ быть в симпле если это так и есть 130ГБ свободного места, то - надо забекапить лог - обрезать лог-файл (не до нуля, но соразмерно базе; хотя это эмпирическая величина) - настроить регулярные лог-бекапы - проверить и настроить при необходимости регулярные фулл-бекапы если места нет, база должна быть в фулл режиме, но лог (130ГБ накопленного добра) не нужен, то можно забекапиться в устройство NUL и далее аналогично предыдущему списку шагов |
||
8 янв 16, 18:29 [18653125] Ответить | Цитировать Сообщить модератору |
komrad Member Откуда: Сообщений: 5498 |
|
||
8 янв 16, 18:31 [18653131] Ответить | Цитировать Сообщить модератору |
Hett Member Откуда: Бийск, Новосибирск Сообщений: 13638 |
Что-то я совсем теперь запутался. Точнее начинаю понимать, что не правильно все понимаю. Я думал, что лог нужен для восстановления с момента последнего бэкапа (базы) на любую точку времени. И для чего нужен бэкап лога, и в чем тогда разница между самим логом и его бэкапом? Есть приложение, которое останавливается крайне редко и ему очень критичны остановки БД даже на несколько секунд (игровой сервер). Если делать инкрементные бэкапы, например, каждый день, то в логе, как понимаю необходимости не будет, если в крайнем случае будем возвращаться только к точкам бэкапа и можно перевести в simple? Инкрементный бэкап делается без каких либо локов в БД? |
8 янв 16, 18:41 [18653165] Ответить | Цитировать Сообщить модератору |
komrad Member Откуда: Сообщений: 5498 |
Hett, если база "сломалась", то имея на руках 1) фулл бекап, можно восстановиться на момент его создания 2) фулл+инкремент, можно восстановиться на момент инкремента 3) фулл+логи, можно восстановиться на любой момент времени, на который есть непрерывная и последовательная цепочка лог-бекапов пара ссылок на почитать: https://www.mssqltips.com/sqlservertip/1284/sql-server-backup-plan/ http://www.brentozar.com/sql/backup-best-practices/ |
8 янв 16, 18:50 [18653201] Ответить | Цитировать Сообщить модератору |
Hett Member Откуда: Бийск, Новосибирск Сообщений: 13638 |
Ну, вроде разобрался примерно. Правильно ли я понял, при FULL модели, бэкапы делаются на основе транзакшен лога и работу базы не останавливают? Если переключиться на simple, то каждый бэкап будет локать базу на время снятия дампа, как это делается в том же MySQL ? |
11 янв 16, 08:48 [18660833] Ответить | Цитировать Сообщить модератору |
Hett Member Откуда: Бийск, Новосибирск Сообщений: 13638 |
И во время бэкапа лога транзакций, опять же, не будет ли все залочено? |
11 янв 16, 09:00 [18660847] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Для начала вам нужно узнать, что есть два вида бэкапов - бэкап базы и бэкап журнала.
Это не так |
||||
11 янв 16, 09:14 [18660876] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
simple модель отличается от FULL только тем, что в первой сервер постоянно удаляет ненужные ему для текущей работы логи из лог-файла. Тем самым лишая вас возможности сделать их бакап, и сделать при необходимости восстановление на произвольный момент времени. В остальном (если упростить) разницы нет. |
||
11 янв 16, 10:08 [18661012] Ответить | Цитировать Сообщить модератору |
человек_ниоткуда
Guest |
Я думаю тебе на все вопросы ответят эти статьи: https://technet.microsoft.com/ru-ru/library/ms191239(v=sql.105).aspx https://technet.microsoft.com/ru-ru/library/ms191164(v=sql.105).aspx |
11 янв 16, 11:50 [18661424] Ответить | Цитировать Сообщить модератору |
MasterZiv Member Откуда: Питер Сообщений: 34664 |
ну если боишься, сделай полный бэкап БД до действа. потом - после. |
||
11 янв 16, 12:00 [18661476] Ответить | Цитировать Сообщить модератору |
Hett Member Откуда: Бийск, Новосибирск Сообщений: 13638 |
Спасибо. Вот тут написано, что лог урезается автоматически при бэкапе, в рамках простой модели https://technet.microsoft.com/ru-ru/library/ms178037(v=sql.105).aspx Установил простую модель для базы, сделал бэкап FULL, но лог как был так и остался почти 130 гигов. |
11 янв 16, 16:31 [18663232] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Там такого НЕ написано автоматическое сжатие. Там написано автоматическое усечение. И еще там написано "В ряде случаев сжатие невозможно до тех пор, пока не выполнена следующая операция усечения журнала." |
||
11 янв 16, 16:34 [18663259] Ответить | Цитировать Сообщить модератору |
Hett Member Откуда: Бийск, Новосибирск Сообщений: 13638 |
Да, сделал shrink, он до 10 мегабайт сократился. Перед этим бэкап делал. Всем спасибо ![]() |
11 янв 16, 16:46 [18663345] Ответить | Цитировать Сообщить модератору |
Hett Member Откуда: Бийск, Новосибирск Сообщений: 13638 |
Только лог теперь больше 10 МБ не растет в simple модели. Это нормально? |
12 янв 16, 15:51 [18667796] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
А у вас есть транзакции, размер которых больше 10Мб ? Или у вас есть множество параллельных транзакций, суммарных размер которых больше 10Мб ? ? |
||
12 янв 16, 15:53 [18667809] Ответить | Цитировать Сообщить модератору |
Hett Member Откуда: Бийск, Новосибирск Сообщений: 13638 |
Значит я не так понял суть этого лога, думал он при каждой контрольной точке будет очищать. |
12 янв 16, 15:54 [18667825] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Вы опять что-то не дочитали или прочитали неправильно или придумали. |
||
12 янв 16, 15:56 [18667836] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
и что не то с контрольными точками? ну, перезеписывает он лог, если можно. и не перезаписывает, если какая-то незавершенная транзакция держит VLF-ы с какого-то и до конца. удалите одним DELETE-ом данные из гигабайтной таблицы и вырастет на гигабайт. --- и откуда этот левый термин "очищать лог"? |
||
12 янв 16, 16:07 [18667890] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |