Уменьшить Ldf (Log) файлов в SQL Server 2005

1. maza111 11.10.12 11:13 Сейчас в теме
Есть база данных для 1С 7.7
MDF файл занимает 6 гигабайт, я так понимаю это сама база данных, а вот LDF файл занимает 8 гигабайт места, я так понимаю это лог файл какой-то, зачем он такой большой нужен? и можно ли его уменьшить?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Kom-off 11.10.12 11:35 Сейчас в теме
(1) Скорее всего, база в SQL находится в режиме Full, т.е. с фиксацией всех произведенных транзаций. Переход в режим Simple приведет к тому, что в файле LDF будут находиться только незавершенные транзакции, что уменьшит размер этого файла. Модель Full позволяет восстановить состояние базы SQL на любое время, в то время, как модель Simple не позволяет этого сделать, а только восстановить базу из бэкапа. Это как бы теория в самом первом приближении. Теперь по делу. Перевести базу в модель восстановления Simple (при этом настроить механизм создания беэкапов базы, если этого до сих пор не сделано). Эту операцию можно делать "на ходу". Однако, перевод в simple автоматически не уменьшает размер файла транзакций. Можно, провести операцию shrink (сжатие базы) сразу, но лучше сначала сделать полный бэкап базы средствами SQL (есть там в SQL-е по этому поводу одна маленькая хитрость), а потом сделать shrink как файлу базы MDF, так и файлу журнала транзакций LDF. Размер базы тоже должен уменьшиться, но не на много, а, вот, размер файла транзакций LDF, если было сделано все правильно, должен стать практически нулевым (в случае, когда в этом момент в базе нет активной работы пользователей). Операции бэкапа средствами SQL, и shrink-а, можно делать не выгоняя пользователей, эти операции могут, разве что, сказаться на производительности. Настоятельная рекомендация сделать резервные копии перед началом этой операции, как говорится, запас карман не тянет.
shima; korzhishe; Gennadiy83; Yar_x; Xytras; maza111; deniseek77; +7 Ответить
3. maza111 11.10.12 12:12 Сейчас в теме
в параметрах модель восстановления стоит Полная, значит Full, там есть еще варианты "С неполным протоколированием" и "Простая".
Бекапы делается еженочно полные.
при переходе на Simple смогу ли я с ночной копии восстановить полностью работоспособную базу?
5. artems 14 11.10.12 16:12 Сейчас в теме
(3) maza111, сможете восстановить актуальность базы на момент создания архивной копии.
4. serg138 11.10.12 15:05 Сейчас в теме
Всем привет! А у нас файлы mdf и ldf лежат вместе на одном диске (raid-1 sata). Рекомендуется их разносить. Есть raid-10 (sas) , можно туда перекинуть ldf, а будет ли заметен толк о такой процедуры, кто ощущал эффект от переноса?
6. maza111 11.10.12 23:49 Сейчас в теме
Kom-off
погоняйте меня еще по теории, или дайте ссылку на чтиво по этому вопросу
Модель Full позволяет восстановить состояние базы SQL на любое время

как это на любое время, если я возьму остановлю сервак SQL и перенесу файлы MDF и LDF на другой комп? я что смогу восстановиться не только на данный момент, но и на вчера позавчера? хочу понять этот момент. Еще хочу понять можно ли если допусим нужно копию базы сделать, не делать выгрузку SQL и загрузку в чистую базу, а к примеру в SQL две базы рабочая и копия. Я останавливаю сервер SQL, копирую с рабочей базы файлы MDF LDF и обзываю их как копию, и после этого стартую SQL сервер, такое прокатит?

С восстановление из ночной копии и так понятно, в любом случае это будет успешно. Про запись транзакций в LDF я не совсем понимаю этого момента, а программист 1С на работе вообще этого не шарит, говорит что мое дело код писать, а твое обслуживать. Вот и пытаюсь разобраться.
7. Kom-off 12.10.12 16:35 Сейчас в теме
(6) Смысл модели Full в том, что в журнал транзакций LDF записываются ВСЕ транзакции и там остаются, ну до определенного времени, например, до операции shrink. Таким образом SQL последовательным откатом транзакций назад может восстановить состояние базы на любой момент времени периода записанных в LDF транзакций. Хочу сказать, что сам ни разу не пользовался такой возможностью и людей, которые бы ею пользовались не встречал, хотя, наверняка, есть такие. Вопросы по SQL лучше задавать не здесь а на www.sql.ru.
10. ptr 3 25.10.12 05:00 Сейчас в теме
(7) Kom-off,
На самом деле вообще не "любой момент" откатить БД при recovery model = Full не возможно. Есть некоторые принципиальные ограничения. Но зато, если при recovery model = Full делать бэкапы журнала транзакций, например, каждые 15 минут, то с дискретностью в 15 минут можно будет восстановиться на любое время.
Бэкап журнала транзакций выполняется намного быстрее, чем бэкап базы данных. Естественно, он занимает и меньший объем.

Отсюда вытекает и еще один метод использования. У удаленных клиентов, в процессе внедрения, мы в офис забираем по интернету полный бэкап базы ночью, а каждые полчаса (или 15 минту) - бэкап журнала транзакций. Таким образом имеем в офисе всегда практически актуальную копию БД клиента. Особенно актуально это оказалось, для клиента на Камчатке. Туда через терминальный клиент ходит уж точно не для слабонервныйх - пинг до трех секунд.
11. Kom-off 25.10.12 08:59 Сейчас в теме
(10)
На самом деле вообще не "любой момент" откатить БД при recovery model = Full не возможно.

Изучаем: http://www.sql.ru/articles/mssql/01070602sql2krecoverymodels.shtml
8. valval 12.10.12 19:00 Сейчас в теме
(6) "если я возьму остановлю сервак SQL и перенесу файлы MDF и LDF на другой комп? я что смогу восстановиться не только на данный момент, но и на вчера позавчера? хочу понять этот момент".
Нет.
Вы должны делать кроме бекапа базы еще бекапы логов. Например, каждые 15 минут.
Тогда, имея полный бекап базы и цепочку логов после, Вы можете восстановить базу на любой момент в интервале между полным бекапом базы и последним бекапом логов.
Кстати, при регулярных бекапах лога бесконтрольный рост его прекращается.
9. kasadaga 8 21.10.12 20:37 Сейчас в теме
штатная процедура чистки логов - в MS SQL Server Management Studio Express создаем новый запрос к требуемой базе
BACKUP LOG [kk_smb] WITH TRUNCATE_ONLY
DBCC SHRINKFILE(2, TRUNCATEONLY)
,где kk_smb - имя вашей базы
У нас такое прокатывает на sql базе 1с 7.7 торговля(лог файл с 10Гб урезается до 10Мб). Каким образом почистить логи sql базы 1с 8.1 бухгалтерия(при выполнении запроса указанного выше лог файл уменьшается всего на несколько МБ)?
24. AlexO 135 18.06.14 00:56 Сейчас в теме
(9) kasadaga,
BACKUP LOG [kk_smb] WITH TRUNCATE_ONLY

Это для SQL до 2008-го.
(14) acuta,
Как вариант можно использовать вот такой скрипт.

Это не "вариант", а "шринк лога" в SQL 2008.
Соответственно, первый вариант не работает во втором случае, а второй - бессмысленен в первом случае.
12. 7o2uYXg 44 31.10.12 13:03 Сейчас в теме
откатиться можно на любое указанное время, если оно покрывается логами транзакций, с точностью до секунды.
13. itxr 33 01.11.12 09:27 Сейчас в теме
ShrinkDatabase вам в помощь. А вообще, вопрос достаточно избитый уже, логи растут только от кривизны настройки SQL сервера.
14. acuta 02.11.12 21:27 Сейчас в теме
Как вариант можно использовать вот такой скрипт.

USE <ИмяБазы>;
GO
-- Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE <ИмяБазы>
SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (<Логическое_имя_базы>_Log, 1);
GO
-- Reset the database recovery model.
ALTER DATABASE <ИмяБазы>
SET RECOVERY FULL;
GO
15. AlexSunS 10.01.13 10:30 Сейчас в теме
Если не охота париться с запросами можно сделать через гуй.Это если кто не умеет строить запросы :). правой кнопкой на базе, задачи, шринк, файлы, выбираем лог (там сразу видно на сколько процентов можно уменьшить). Иногда, если лог большой - например гигов 50, то уменьшать (шринкать) его надо 2 раза - с первого раза уменьшаеться, но не полностью.
вот так вот :).
Jreil; dbaser; maza111; +3 Ответить
16. maza111 10.01.13 17:00 Сейчас в теме
а еще хочу спросить в этой теме, чтобы новую не создавать.
Когда много человек работает процесс sqlserv.exe разростается до 6 гиг, при этом когда все из базы выходят, то он таким и остается. Он и не должен уменьшаться: ведь когда никто не работает зачем ему занимать 6 гиг оперативы
17. dino_raptor 2 10.01.13 22:04 Сейчас в теме
Размер процесса сервера, если его рост не ограничен настройками ( ну и естественно физическим объЁмом памяти ;) ) будет примерно равен совокупному размеру мдф файлов всех используемых баз. После этого рост процесса прекратится а вот уменьшаться он сам по себе без ребута не будет. Из вышеперечесленого могу еще добавить что при там размере лдф файла сиквел скорее всего для него установит автоматом и соответствующий минимальный размер, поэтому не удивляйтесь если после шринка 8гб файла он станет скажем 6Гб, просто измените мин размер файла и опять сделайте шринкдб.
Поправка к DBCC SHRINKFILE (<Логическое_имя_базы>_Log, 1); тет не <Логическое_имя_базы>_Log а имя файла лога а оно может и отличаться.
18. maza111 14.01.13 19:33 Сейчас в теме
я только сейчас заметил что в свойствах базы в настройках лога, где выставляется размер увеличения есть пункт "Ограничение размера файла" равный 2097152 мб. Причем на старом сервере он такой
19. maza111 14.01.13 19:34 Сейчас в теме
я только сейчас заметил что в свойствах базы в настройках лога, где выставляется размер увеличения есть пункт "Ограничение размера файла" равный 2097152 мб. Причем на старом сервере такой же пункт есть и там лог файл как раз 2 гига, а на новом сервере смотрю стоит такая же опция но размер лога 6 гигов.
28. Serg O. 267 08.11.16 15:19 Сейчас в теме
(19) 2 097 152 мб это не 2 гига! а 2 000 Гб (т.е. без ограничений!)

ограничивать log-файл НЕЛЬЗЯ!
при достижении выбранного размера 2048 Мб (2 Гб) - база просто "встанет" и ничего не даст делать!

надо просто делать shrink... периодически руками или по регл.заданию
20. dancer_bmn 25.04.13 14:40 Сейчас в теме
MSQL 2012 щелкнул на базу затем сжать выбрал лог файл и все сжалось до 1 мб с 99Гигов модель базы Simpl бекап делаю ежечастно в одно место и еженочно в другое
21. TorLink 29.05.13 16:44 Сейчас в теме
1Скрипт-менеджер - простая конфигурация для 1С:Предприятие 8.2., позволяющая просто и эффективно решить насущные задачи, связанные с обслуживанием баз данных в большинстве организаций, использующих MSSQL, в том числе и бесплатную версию Express, не имеющую встроенных средств для настройки обслуживания.
Весь процесс настройки и установки занимает 15 минут!
Сайт продукта: http://scriptmanager.ru/ http://infostart.ru/public/147203/

Тут без проблем настраивается всё, что нужно.
22. Vitek84 23.06.13 16:45 Сейчас в теме
"Ограничение размера файла" равный 2097152 мб. Причем на старом сервере такой же пункт есть и там лог файл как раз 2 гига, а на новом сервере смотрю стоит такая же опция но размер лога 6 гигов.

Может я ошибаюсь, но мне кажется что 2097152 мб = 2 Терабайта.
У меня тоже стоит такая же опция причем я не могу её изменить может может потому что не owner, (пароль ownera благополучно утерян), но другие операции над базой делает-же.??? еще не разобрался. А лог шринканул с 300 до 30 Гб. провел реиндексацию таблиц - размеры не изменились, что очень странно??? потому что после шринка вернул обратно из Simple в Full.
База(mdf-файл) 45 ГБ. причем реально файловая копия выгруженая из ДТ-архива весит около 20 ГБ.
до 45 выросла после заливки поверх имеющийся базы из ДТ-файла.

Вопрос что нужно сделать чтоб вернуть размер обратно к 20 Гб. (кроме загрузки ДТ-шника в свежесозданную базу SQL - это на крайний случай (неохота бегать по пользователям и перенастраивать подключение))

И еще вопрос чтобы тему новую не создавать.
Для экспериментов создал на SQL 2005 базу с помощью 1С. Потом Её удалил чеерез SQL manager studio и теперь не создается база с таким же именем. Где это все можно очистить? возможно криво удалил. - Как исправить??
Вот ошибка:
________________________________________________________
Ошибка при создании информационной базы:
Ошибка при выполнении операции с информационной базой
Ошибка СУБД:
Microsoft SQL Native Client: Login failed for user 'SA1'.
HRESULT=80040E4D, SQLSrvr: SQLSTATE=28000? state=1? Severity=E, Native=18456, line=1
____________________________________________________________­______________________
базу пытаюсь создать от другого пользователя (SA2) т.к. пароль от SA1 то же утерян:)
23. dino_raptor 2 03.02.14 13:18 Сейчас в теме
пароль на пользователя можно изменить из консоли или если есть другой пользователь с правами "раздавать права" )) то из менедж студии в ветке безопасность.

Ошибка Серьезность Запись в журнал Описание (текст сообщения)
28000 16 Нет Непредвиденная длина расшифрованного ключа сеанса.
-
Пользователя как создавали?
25. dock 44 23.06.16 13:56 Сейчас в теме
про файлы ldf самой базы прекрасно рассказали.
Для полноты картины остается раскрыть вопрос с tempdb.mdf и templog.ldf :
почему растет, как "бороться" :)
27. DenisCh 26.10.16 09:42 Сейчас в теме
(25) "Для полноты картины остается раскрыть вопрос с tempdb.mdf и templog.ldf :
почему растет, как "бороться""

Бороться не надо. После перезапуска SQL - сам ужмётся.
Почему: используется много временных таблиц
26. Alvin2004 26.10.16 09:40 Сейчас в теме
После сжатия лога через ГУИ (с разными вариантами параметров), размер его уменьшается с 12,5 до 11,3 Гб. Меньше никак. В базе на момент сжатия нет активных сеансов работы пользователей.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот