Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


microsoft-sql-server:t-sql-script-samples:how-to-shrink-dynamic-variables-ms-sql-server-database

Как выполнить shrink (сжать, обрезать) транзакционного лога базы данных SQL Server с динамической переменной

Меняем один раз <database name> названием вашей базы и запускаем скрипт.

DECLARE @DBName nvarchar(250)
SET @DBName = '<database name>'
 
DECLARE @SQLText nvarchar(MAX)
 
SET @SQLText = 
'
 
USE {DBNAME}
ALTER DATABASE {DBNAME} SET RECOVERY SIMPLE
DBCC SHRINKFILE ({DBNAME}_log, 50);
ALTER DATABASE {DBNAME} SET RECOVERY FULL
'
SET  @SQLText = REPLACE (@SQLText ,  '{DBNAME}' ,  @DBName) 
EXECUTE  (@SQLText)

Автор первичной редакции:
Евгений Лейтан
Время публикации: 06.03.2016 16:56

Обсуждение

Алексей МаксимовАлексей Максимов, 06.03.2016 17:42, 06.03.2016 17:46
А разве для SHRINK нужно переводить базу данных в режим восстановления SIMPLE? И потом, если моя база данных работает в режиме восстановления SIMPLE (так нужно), то после такого вот "шринка" режим восстановления станет FULL, что ни есть хорошо.
Евгений ЛейтанЕвгений Лейтан, 06.03.2016 17:57, 06.03.2016 17:57
"А разве для SHRINK нужно переводить базу данных в режим восстановления SIMPLE?"
По-другому у меня не получалось, только при "SIMPLE".

Если база уже в "SIMPLE", то тогда скрипт уменьшается на пару строчек :)

режим "Full" рекомендуется производителем ПО, т.е. Microsoft. А инкрементальное резервное копирование не дает лог файлу разрастись в размерах!
Александр НикитинАлександр Никитин, 09.03.2016 09:18
Я конечно дико извиняюсь, но все таки логом БД нужно "управлять", а не шринкать его туды сюды. Если ваши запросы к БД такие что лог распухает аки сдоба то проблема не в логе, а в запросах. Нужно оптимизировать, ну и считать размеры лога и ограничивать его в максимальном размере. Если получится найти цикл статей по логам SQL - дам ссылку.
Eugene LeitanEugene Leitan, 09.03.2016 09:57
Саня, это все понятно, но данный скрипт используется, если уже край (ни место добавить, чтобы рез копирование провести, ни еще что-либо)!

И в тест. среде тоже частенько используется, п.ч. админы SQL (1С) это другие люди!
Ваш комментарий:
 

microsoft-sql-server/t-sql-script-samples/how-to-shrink-dynamic-variables-ms-sql-server-database.txt · Последние изменения: 20.08.2017 12:46 — Алексей Максимов