Всё о сокращении Transaction Log для MS SQL 2008/2012

Публикация № 277252

Администрирование - Администрирование данных 1С

Рассмотрены пожалуй все варианты проблем из за которых журнал транзакций может не сокращаться и все варианты решений. От простейших, до "не рекомендуемых".

Для MS SQL 2008/2012 рекомендации ИТС уже устарели, кроме того и раньше они не всегда помогали. В статье попытался собрать наиболее полный комплект информации по данному вопросу.
В своё время в одном месте всего этого не нашел, поэтому думаю будет полезно.


Популярная статья ИТС http://its.1c.ru/db/metod81#content:2373:1 устарела - теперь уменьшение размера журнала транзакций стало не самой простой операцией.

Собственно там рекомендуется следующий скрипт:


BACKUP LOG Имя_Базы_Данных WITH TRUNCATE_ONLY

go

DBCC SHRINKFILE(Имя_Файла_Журнала_Транзакций) 

go


Если выполнить его в MS SQL 2008/2012 получите ошибку: 

'truncate_only' is not a recognized BACKUP option

Подробно:
http://social.msdn.microsoft.com/Forums/sqlserver/en-US/9997e75e-f126-4901-9379-de540a708ec9/backup-log-with-truncateonly


Что теперь делать?
Решения, собственно два:

1) 
USE [Database] 
ALTER DATABASE [Database] SET RECOVERY SIMPLE
go
 

DBCC SHRINKFILE ([Database]_log, 1); 
ALTER DATABASE [Database] SET RECOVERY FULL
go
 

2) 
USE [Database] 
BACKUP LOG [Database]  TO DISK='NUL:'  
go

DBCC SHRINKFILE ([Database]_log, 1)
go
 

Если "Урезанием лога" не злоупотреблять (т.е. сокрашать лог вместе с полной копией) то по большому счету не принципиально каким методом пользоваться.
Второй вроде как правильнее, зато первый "надежнее". 

На этом казалось бы можно и остановиться, но зачем тогда отдельную статью писать. Нет, конечно это ещё не всё. Обычно вопросы про урезание лога возникают когда это сделать не получается.
Притом способы, описанные выше, как правило, описаны не раз, все их освоили и проблем не вызывают.

Итак, если все действия, описанные выше не помогли - лог файл по-прежнему занимает N гигабайт. Переходим к плану B:

select log_reuse_wait_desc from sys.databases

В результате можете получить 3 варианта:

а. Пусто - Обычно это означает что у БД лог можно хоть сейчас полностью сократить, могу предложить только попробовать ещё раз Shrink, а если не поможет - переходить к плану C
b. Log_Backup - Нормальный варинат. В данном случае говорит о том, что Backup Log не выполнено, или выполнено некорректно
b. Replication - значит что ваш лог не обрезается из за репликации - скорее всего ошибки.
с. Active transactions -  Самая частая ситуация - в базе есть подвисшие транзакции, с ними нужно разобраться.

Replication  - Репликация для систем на платформе 1С, пожалуй, бессмысленное дело. Потому как Read only баз MS SQL не бывает, средства создания распределенных систем в 1С есть собственне (да, я про РИБ). Для обеспечения отказоустойчивости гораздо лучше подходят кластерные технологии. Собственно рекоммендация простая:

sp_removedbreplication '[Database]'

Собственно после этого бэкап и Shrink помогут. Если же вопреки здравому смыслу вы всё-таки хотите сохранить репликацию БД то конечно выполнять эту команду нельзя, а нужно разбираться с ошибками репликации. Но это уже тема отдельной статьи.

Active transactions - наиболее популярная история. В базе есть транзакции, которые не завершены, и чего то ожидают. Чащи всего такие транзакции получаются при потере сетевого соединения или "вылете" клиента 1С в момент записи в БД. В этом случае нужно собственно узнать какая транзакция "повисла":

DBCC OPENTRAN

После выполнения этой команды вы получите примерно следующий результат:

Transaction information for database 'master'.
Oldest active transaction:
SPID (server process ID) : 52
UID (user ID) : -1
Name          : user_transaction
LSN           : (518:1576:1)
Start time    : May 5 2014 3:30:07:197PM
SID           : 0x010500000000000515000000a065cf7e784b9b5fe77c87709e611500
DBCC execution completed. If DBCC printed error messages, contact your system administrator.


Из этого обилия информации ключевым является Start Time и SPID. Если транзакция в базе 1С выполняется боле нескольких секунд это уже означает что что-то не так. А если start Time будет минут 10 или более от текущего времени - такие транзакции (сеансы) нужно завершать. Но предварительно я бы рекоммендовал узнать что эта транзакция делала.

Для завершения процесса можно ввести команду

KILL [Process ID]

Где Process ID - это тот самый SPID полученный на предыдущем шаге. При этом незавершенные транзакции откатятся средствами MS SQL Server. Возможно при "убийстве" процесса будут завершены и несколько сеансов 1С, но  вряд ли много. Сервер 1С поддерживает собственный пул соединений с MS SQL, соответственно соединения из этого пула используются только тогда, когда серверу что-то нужно от СУБД. При этом если соединение занято (а оно как видим занято) вряд ли оно будет использоваться для других процессов. 

Но предварительно (!) если хотите всё-таки разобраться в проблеме рекомендую выполнить скрипт вроде:

DECLARE @sqltext VARBINARY(128)
SELECT @sqltext = sql_handle
FROM sys.sysprocesses
WHERE spid = [Process ID]
SELECT TEXT
FROM sys.dm_exec_sql_text(@sqltext)
GO

В результате вы получите текст команды SQL Server, на которой, собственно, всё и "зависло". Из неё вам нужна будет таблица в которую производилась запись, далее используя функцию "ПолучитьСтруктуруХраненияБазыДанных()" вы определите таблицу в терминах объектов метаданных в которую производилась запись и смотрите код. Как правило такие неприятные последствия происходят:

1) Ошибки в сетевых подключениях (для толстого клиента в т.ч. в сетевых подключениях клиентов, для тонкого - только в проблемах сети между сервером 1С и MS SQL). 
2) Каких то неправильных действиях (отправка почты, запись в файл, запуск внешних обработок, чтения из файла) производимых в транзакциях (при записи, при проведении)

Собственно от них надо избавляться.


Если ничего не помогло (или план B)

ВНИМАНИЕ! Перед выполнением процедур, описанных ниже, сделать полную резервную копию файлов БД MS SQL нужно обязательно!!!!

Есть ещё один - более радикальный способ решения вопроса роста журнала транзакций MS SQL. Но я лично его бы не рекомендовал к использованию. Тем не менее, специалисты Microsoft тоже могут ошибаться, 
и SQL Server может содержать ошибки, о которых мы регулярно читаем в BugFix, или же наблюдаем сами, поэтому приведу и этот способ. 

Суть его заключается в том что журнал транзакций просто удаляется и создается новый. При этом вы конечно теряете информацию из него и БД можно будет восстановить только из полной копии (которую вы конечно перед этим сделали).

Конечно при этом, особенно если в базе были всё-таки не зафиксированные может быть нарушена логическая целостность, но для этого запускается CheckDB которая в общем и целом приводит базу в порядок. Для аналогии это то же самое что в 1С проврять ссылочную целостность с опцией "Удалять если не найден". Если транзакция полностью не зафиксирована, но от неё остались частично данные, что противоречит принципу атомарности транзакций - эти данные будут удалены.

Итак приступим:

1) Detach БД из списка

2) Фал *.ldf удаляем (вы же его сохранили уж, да?)

3) Файл *.mdf переименовываем (в любое имя какое нравится)

4) В MS SQL создаём новую (!!!) БД с тем же именем, с каким была "больная" БД

5) Останавливаем MS SQL Server

6) Новый *.mdf файл удаляем, а старый переименовываем под "старое имя", подменяя тем самым файл новой БД

7) Запускаем MS SQL Server. При этом будет "битая БД", далее мы её исправляем

8) ALTER DATABASE [Database] SET EMERGENCY 

9) exec sp_dboption [Database], 'single user', 'TRUE'
Монопольный режим работы с БД

10) DBCC CHECKDB ([Database], REPAIRALLOWDATA_LOSS)
Ключевая операция - "возвращает БД к жизни". Может выполняться достаточно долго - до получаса на больших БД. Ни в коем случае не прерывайте эту операцию. Результат, где будут собраны исправленные ошибки
на всякий случай сохраните

11) exec sp_dboption [Database], 'single user', 'FALSE'
Сбрасываем монопольный режим

12) ALTER DATABASE [Database] SET ONLINE
Делаем базу доступной.

После чего получаем БД с чистым новеньким логом. На самом деле операция достаточно проста и в большинстве случае не несёт никаких критических последствий. Но всё-таки рекомендую прибегать к ней только в крайнем случае. Описана она не раз и в разных вариациях. Привожу свой вариант, который показался наиболее простым и понятным. 

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. AlexProg 112 08.05.14 09:47 Сейчас в теме
Если вопрос незакрытых транзакций или пересчетов итогов не принципиален, и есть полная копия, то проще переключиться на простую модель восстановления данных, сжать лог файл, и переключиться на полную опять. Причем при определенных обстоятельствах это можно делать регламентно, даже с пересчетом итогов из 1С. Но это разговор за отдельную плату :)
2. comol 4364 08.05.14 11:10 Сейчас в теме
(1) AlexProg,

Ну написал про это:

USE [Database]
ALTER DATABASE [Database] SET RECOVERY SIMPLE
go
DBCC SHRINKFILE ([Database]_log, 1);
ALTER DATABASE [Database] SET RECOVERY FULL
go

Только если есть подвисшие транзакции всё равно не поможет...

3. AlexProg 112 08.05.14 11:36 Сейчас в теме
(2) не так. target_size можно указать до нуля. Тогда он все не закрытые страницы выведет в конец, и таким образом не надо "ждать", пока он до них дойдет. Всё просто.

А если вы хотите побороться с незакрытыми, повисшими, ошибочными транзакциями, для этого есть отдельная методика, скрипты. Вовсе не обязательно ножом работать.

ALT ER DATABASE ... SET SINGLE_USER WITH ROLLBACK IMMEDIATE
4. comol 4364 08.05.14 14:34 Сейчас в теме
(3) AlexProg,
ALT ER DATABASE ... SET SINGLE_USER WITH ROLLBACK IMMEDIATE
Как то жестоко... Мой вариант Kill [Process ID] как то лояльнее к пользователям :)
5. Babuin 21.05.14 10:38 Сейчас в теме
"Потому как Read only баз MS SQL не бывает". Бывают и даже работают с 1С.
"Второй вроде как правильнее, зато первый "надежнее"." Оба не правильные, правильный это регулярный бэкап лога либо отказ от полной модели восстановления.
Эти методы необходимы только если если возникли проблемы с регулярным бэкапом лога, и в некоторых случаях при операциях с обслуживанием баз (дефрагментация индексов и т.д.)
werd00; alexscamp; +2 Ответить
7. comol 4364 02.06.14 12:39 Сейчас в теме
(5) Babuin,
Эти методы необходимы только если если возникли проблемы с регулярным бэкапом лога
:)))) О чём и речь. Если проблем с бэкапом лога нет, то всё что написано выше изначально "неправильно" :)

Бывают и даже работают с 1С
А вот тут поподробнее? 1C при запуске пишет кое чего в таблицы... Вам удалось это победить?
15. Babuin 04.06.14 09:56 Сейчас в теме
(7)
А вот тут поподробнее? 1C при запуске пишет кое чего в таблицы... Вам удалось это победить?


На 8.2 проблем не возникало, если что то и пишет то во временные таблицы. Возможно в 8.0\1 было по другому.
Работает нормально и как через снэпшот зеркальной базы, так и в AlwaysON AG. Жаль только что AlwaysON AG доступно только в Enterprise редакции...
16. comol 4364 04.06.14 10:03 Сейчас в теме
(15) Babuin,
снэпшот зеркальной базы, так и в AlwaysON
это не о том. Я про Rad Only. Т.е. про репликацию. В таблицу params пишет точно и 8.2 при запуске
17. Babuin 04.06.14 12:10 Сейчас в теме
(16)
это не о том. Я про Rad Only. Т.е. про репликацию. В таблицу params пишет точно и 8.2 при запуске

репликация, зеркалирование, доставка журналов, не суть. 1С точно может работать с read_only базами, прямо сейчас у меня подключена к снэпшоту зеркальной базы типовая УПП, работает отлично (соответственно только на чтение-просмотр).
Профайлером смотрел, при запуске ничего не пишется, только во временные.
Возможно не умеет работать именно с репликацией (с ней не извращался), но с зеркалированием точно могет.
Проверить легко, берете тестовую базу переводите в MS SQL в режим read_only и пробуете зайти
6. rar_xxx 23 02.06.14 10:05 Сейчас в теме
Делайте бекап ldf(журнал транзакций) каждый час и все! Не шринкуйте лог! или шринканите один раз после включения бекапа лога, потом этого делать не нужно! ибо вы заставляете сервер все время расширять ldf, на что тратится время. Так же делайте каждый день полный бекап или если не возможно каждую неделю(это все таки лучше бекапа 1с, особенно если его не жать). И все ! После включения полного бекапа и бекапа лога, после каждого бекапа, лог пишется с начала файла и перестает расширяться, расширится он только в момент серьезных транзакций ну и пусть висит на размер макс транзакции, все таки время когда мы дрожали за гигабайты прошло.
alexscamp; +1 Ответить
8. comol 4364 02.06.14 12:42 Сейчас в теме
(6) rar_xxx, НачатьТранзакцию() Записать() Пока 1 Цикл КонецЦикла

И бэкапьте/не бэкапте тогда лог...

9. rar_xxx 23 02.06.14 17:04 Сейчас в теме
(8) )) зачем так делать ?) Если надо шринкануть самый простой вариант - переключаешь на простой режим восстановления, режешь, переключаешь на полный и Делаешь полный бекап! иначе идея восстановления по журналу транзакций накрываться. Причем все это можно делать на работающей базе.
10. comol 4364 02.06.14 17:28 Сейчас в теме
(9) rar_xxx,
Если надо шринкануть самый простой вариант - переключаешь на простой режим восстановления, режешь, переключаешь на полный
Если перефразировать ваши слова на язык MS SQL:

USE [Database]
ALTER DATABASE [Database] SET RECOVERY SIMPLE
go
DBCC SHRINKFILE ([Database]_log, 1);
ALTER DATABASE [Database] SET RECOVERY FULL
go

О чём и пишу... и писал в (2)... и продолжаю писать что не всегда помогает :)
11. rar_xxx 23 03.06.14 09:59 Сейчас в теме
(10) Ну я описал простым языком что надо сделать(не все знают что такое transact - sql и куда его писать), и у вас нет упоминания о обязательном полном бекапе после этого действа. Ну а если честно я изначально не въехал в тему и думал что тут обсуждают как ежедневно шринковать журнал.
12. adapter 548 03.06.14 14:07 Сейчас в теме
comol - странно слышать от вас такие советы... Больше похоже на вредные советы Григория Остера. Эти советы для тех кто не разобрался в SQL? Типа наделайте чего нить не вникая и будет вам еще лучше?

согласен с rar_xxx. Зачем его трогать вообще? Ведь если лог растет значит это кому нибудь нужно ;)
Если по простому - то MS SQL работает по принципу "не тронь технику и она не подведет". А если по сложному, то надо статьи читать про механизмы работы sql, транзакций, моделей восстановления, закольцованности логов и пр. Но итог один - не надо урезать лог. Разработчики MS SQL в новом релизе сервера даже убрали такую возможность, чтобы разом сделать нерабочими советы из таких вот статей по всей Сети. Нет же, находятся "добрые саморитяне" с обходными решениями запретов....

13. stanru1 87 03.06.14 15:20 Сейчас в теме
(12) adapter, статья поможет тем, у кого лог разросся в силу тех или иных причин и никак не хочет урезаться. За что автору статьи спасибо. Свел воедино рецепты из интернета :)
А по феншую, конечно, лучше делать бэкап лога.
14. comol 4364 03.06.14 20:35 Сейчас в теме
(12) adapter,
не тронь технику и она не подведет
так работает не SQL сервер, а, к сожалению, очень большая доля горе-программистов :((. А потом можно увидеть "транзакцию-долгожителя" которой недельки так две... и LOG который раз в 5 превышает не маленькую и без того базу... Если вы работаете только с типовыми конфигурациями в которых сугубо бухгалтера и их не более нескольких 10-ков, при этом есть квалифицированные системные администраторы конечно можете пропустить эту статью - оно для других ситуаций
18. adapter 548 05.06.14 09:23 Сейчас в теме
как работает большая доля программистов и кто из них относится к "горе" это конечно очень интересная тема. Хотите развить ее по подробнее?

А что касается журналов транзакций то я еще раз говорю категорическое нет. из таких урезаний ничего хорошего не выйдет.
Факты:
- SQL умеет "зацикливать" файлы. т.е. в файле журнала будет по кругу использовать одно и то же место, без дополнительного роста
- "зависшие" транзакции обрабатываются самим SQL без помощи ему корявыми руками
- привести в идеальное состояние файлы и базы можно бакапами, регламентными заданиям, перезагрузкой сервера наконец
- команды T-SQL по вмешательству в работу сервера, или удаление\подмена баз это инструменты квалифицированного специалиста sql. Если нет опыты и понимания то вслепую их применять копипастом из Инета на "боевом" сервере НЕ НАДО.
- журнал растет чтобы обработать потребности базы. Типа реструктуризации всей базы в 1С. Значит уменьшая журнал транзакций мы не уменьшаем потребности, а уменьшаем возможности. Потребности останутся те же, но выполняться будут дольше, журнал опять вырастет. На его рост уйдет время
- нет места на журнал? (денег на железки - мы крутая фирма, у нас 100 гигов мусора в базе мы гордимся этими и вообще мы мегареспектные, а не то что всякие там недоноски с 10 бухами) - поставь модель восстановления Simple, поменяй стратегию архивирования и забудь по рост журнала. Про автомобили будет наглядней? Я купил майбах, но его обслуживать надо в сервисном центре за дорого и спецами - че я дурак что ли ? Пусть вон Петя в гаражном автосервисе за рубль все делает.
- бакапы уже жмутся самим серверов, поэтому "пустое" место в журналах никак не мешает


p.s. у меня ни в одной из 23 региональных баз нет зависших на "две недельки" транзакций, которые еще и чем то журналам мешают. Ни в типовых, ни в отраслевых, ни в собственных. Хотя отвалы интернет-соединений и пр. якобы причины которые указаны в начале статьи часто и густо в любом филиале. А мониторю я их постоянно....
werd00; teflon; +2 Ответить
19. comol 4364 05.06.14 09:49 Сейчас в теме
(18) adapter,
Хотите развить ее по подробнее
Не хочу, извиняюсь. Просто не всегда могу сдержать эмоции когда вижу фразы вида "работает не трожь".

Что касается ваших знаний о
SQL умеет "зацикливать" файл
и
"зависшие" транзакции обрабатываются самим SQL
журнал растет чтобы обработать потребности базы
Они оставляют желать лучшего....

Дело в том что отсутствие checkpoint в журнале влияет на время восстановления и резервного копирования. Т.е. подвисшая транзакция в журнале приведёт в итоге к тому что база будет "In recovery"... сотвтетствено.

23 региональных баз нет зависших на "две недельки" транзакций
А сколько там пользователей? :)))) Если более 100 тогда можно о чём то говорит :))

Но больше спорить не буду - получится "разговор слепого с глухим".
20. adapter 548 05.06.14 10:36 Сейчас в теме
А сколько там пользователей? :)))) Если более 100 тогда можно о чём то говорит :))

Ну с утра пока вот так набежало.....


ну и раз уж пошли по скринам.... Вот интересная картинка

из 30 гигов журнала транзакций используются копейки, остальное - зерованный кусок файла, который уже понадобился когда то базе для выполнения запросов, поэтому "держится" sql сервером наготове.

Начали с того как зарубить журнал транзакций не смотря на то, что сервер почему то не дает, а кончили фразой вырванной из контекста "что отсутствие checkpoint в журнале влияет на время восстановления и резервного копирования". Типа как "Было бы величайшей ошибкой думать" В.И. Ленин.

насчет слепого с глухим согласен... и желание продолжать общение пропало. Тем более выяснилось что мы тут пользователями меряемся, и вообще оказывается факты работы sql уже даже и не факты, а так... Да Вы еще вдруг решили оценивать мои знания......
GreenDragon; +1 1 Ответить
21. comol 4364 05.06.14 11:00 Сейчас в теме
(20) adapter, Нуу если у вас 25 баз по 400 пользователей.. респект, что я ещё могу сказать. Если внимательно за базами следить, есть админ MS SQL , какие-ить Quest - овские (судя по скринам) продукты. Весь код написан правильно, прошел рефакторинг. Важно - не подключено ТО к базам... ещё лучше если на УФ, проблемы можно избежать.
фразой вырванной из контекста
Ну не буду я тут всю "матчасть" объяснять. Поэтому "из контекста". Хотя бы по-минимум сначала ознакомьтесь с http://msdn.microsoft.com/en-us/library/ms190925.aspx с http://msdn.microsoft.com/en-us/library/ms365418.aspx и с http://msdn.microsoft.com/en-us/library/ms175495.aspx http://msdn.microsoft.com/en-us/library/ms179355.aspx и http://msdn.microsoft.com/en-us/library/ms345382.aspx всё о чём пишу там изложено. Этим вопросам уже 50 лет, любой админ SQL "делал это" хоть раз да приходилось, прекратите плз. "мусор в комменты"
22. adapter 548 05.06.14 11:25 Сейчас в теме
минус в карму? детский сад :)

вы бы сами почитали ссылки эти. А то прям нарочно не придумаешь. там как раз описано как sql сервер зацикливает журнал

Прикрепленные файлы:
23. comol 4364 05.06.14 11:42 Сейчас в теме
(22) adapter, Ткну пальчиком в книжечку http://msdn.microsoft.com/en-us/library/ms190925.aspx#FactorsThatDelayTruncation Как в детском садике, кстати :))) название "When log records remain active for a long time transaction log truncation is delayed, and potentially the transaction log can fill up" переводить на русский не буду, сорри. В кратце там написано что всё это работает и работает круто, кроме перечисленных 14-ти причин :). Но чтобы вам это всё понять изначально лучше начать читать с первой статьи...
24. adapter 548 05.06.14 12:35 Сейчас в теме
Блин, давайте не путать теплое с мягким. В ссылке приведены возможные причины задержки усечения журнала транзакций. Ваша статья про сжатие файла журнала. Это принципиально разные вещи.

Усечение (truncate) системный процесс который происходит на сервере автоматом, происходит на логическом уровне, на уровне чекпоинтов и напрямую связан с механизмом зацикливания, поэтому в 99% не влияет на физический размер файла.

Сжатие (shrinkfile) - физическое уменьшение размера файла, сервер дает его эффективно выполнить только после логического усечения, закрытия зависших, выполнения бакапа и пр. условий.

Вы же сами это наглядно показали в первом t-sql скрипте статьи и всех последующих ссылках, которыми пытались что то доказать мне. Кстати спасибо, мне даже гуглить не пришлось :)

Хорошо конечно что мы тут с вами затеяли этот древний холивар. Народ почитает, задумается. Плохо только что Ваш стиль общения как то направлен на попытки уязвить оппонента. Вам не идет.

В статье не хватает главного - причины уменьшения журнала транзакций? Кому и для чего это надо?
25. comol 4364 05.06.14 13:31 Сейчас в теме
(24) adapter,
Ваша статья про сжатие файла журнала. Это принципиально разные вещи.
А в принципе человека начинает интересовать Transaction Log если он "не сжимается", а не сжимается он потому что "не усекается". В первом скрипте BACKUP LOG Имя_Базы_Данных WITH TRUNCATE_ONLY - это усечение. И по сути 99% статьи про него. Но рад, что вы наконец то разобрались...

P.S. если бы не фраза "Работает не трожь" которая для меня как "красная тряпка" конечно стиль был бы другой.
26. Babuin 05.06.14 13:40 Сейчас в теме
(24) adapter,
В статье не хватает главного - причины уменьшения журнала транзакций? Кому и для чего это надо?


Причина одна, нужно быстро освободить закончившееся место на диске.
1) сломалась СРК
2) выполнялась регламентная операция обслуживания бд или иб 1с.
3) выполнялись большие массовые изменения данных
4) выполнялся "неоптимальный код"
kao_andi; comol; +2 Ответить
27. adapter 548 05.06.14 14:18 Сейчас в теме
я рад что вы тоже разобрались чем одно от другого отличается. Потому что в статье каша. И в ссылках что вы приводите тоже. То вы отрицаете что журнал кольцуется, то "съезжаете" что речь идет о сжатии. Хотя вначале статьи явно сказано что вот мол новый скул не дает сжимать (не работает DBCC SHRINKFILE), и вот вам обходные маневры ....

Да все еще агрессивно и с мнимым превосходством. Фу гадость.
28. comol 4364 05.06.14 15:47 Сейчас в теме
(27) adapter,
То вы отрицаете что журнал кольцуется
О_о
29. comol 4364 05.06.14 15:52 Сейчас в теме
(27) adapter,
Да все еще агрессивно
я больше так не бууудууу... он пееервый начааал :). Всё, "давайте жить дружно".
30. adapter 548 05.06.14 20:18 Сейчас в теме
Согласен. мир, дружба, жвачка :)
31. HolodZar 01.02.16 07:45 Сейчас в теме
Подскажите, пожалуйста, а как могло получится, что select log_reuse_wait_desc from sys.databases возвращает для базы Replication, если репликацию никто никогда не настраивал?
32. comol 4364 01.02.16 22:30 Сейчас в теме
(31) HolodZar, По-моему при восстановлении из бэкапа такие глюки бывают...
33. HolodZar 02.02.16 06:28 Сейчас в теме
(32) спасибо.
Статья пригодилась.
34. simgo83 69 02.03.17 18:50 Сейчас в теме
подключение базы без лога
EXEC sp_attach_single_file_db @dbname = 'Имя_Базы',
@physname = 'полныйпуть\Имя_Базы.mdf'
Этот пункт нужно выполнить взамен всем пунктам с 3 по 12 последнего способа

будет выдано такое сообщение
Сбой при активации файла. Возможно, физическое имя файла "полныйпуть\Имя_Базы.LDF" неправильное.
Создан новый файл журнала "полныйпуть\Имя_Базы.LDF".
tikhmyanov; +1 Ответить
35. МихаилМ 02.03.17 21:08 Сейчас в теме
при реструктуризации журнал вырастит
36. alex_sh2008 4 02.03.17 21:53 Сейчас в теме
Хорошие заметки, но по мне лучше их не применять вообще, лучше потратить время на разработку плана обслуживания, чем потом веселиться с оптимизацией и восстановлением баз, с непредсказуемым результатом.
37. Terve!R 15.11.17 10:39 Сейчас в теме
(36) сделал план обслуживания на полный бекэп и бэкап лога, а толку - лог разросся до 125 гигов при базе в 10 гигов.
Помог способ 2 - оказалось лог ощищается только при повторном (двойном) бэкапе и шринке, а в первый раз уменьшается незначительно.
38. alex_sh2008 4 15.11.17 10:51 Сейчас в теме
(37)Нет, лог очищается после резервного копирования, у вас скорее всего были проблемы в базе или с лог файлом(в момент резервного копирования открылась долгая транзакция, зависшие транзакции, ошибки в базе) поэтому сервер не смог урезать файл, второй раз проблем такого рода не было. по пробуйте скорректировать план так что бы к базе было минимум обращений к базе, за синхронизируйте фоновые задания с планом быкапа.
39. YuryYatskov 27.07.18 10:29 Сейчас в теме
Из документации:
Урезание логов производится автоматически, в зависимости от модели восстановления:

• В простой модели (Simple) — после достижения контрольной точки;
• В модели полного восстановления (Full) — после создания бэкапа логов, при условии что со времени предыдущего бэкапа была достигнута контрольная точка.

А все остальное, это если что-то сломалось.

А если такая статья возникала, значит у вас полная модель восстановления, и не настроен корректно бекап транзакций.
40. comol 4364 27.07.18 13:49 Сейчас в теме
(39)
А все остальное, это если что-то сломалось.
Да вообще наша работа это только "если что-то сломалось" :))))
41. Novichok777 10 30.06.20 12:25 Сейчас в теме
К плану Б дополнение, если баз на SQL сервере много, то можно получить данные в разрезе баз и заодно модель восстановления покажет:

select name, log_reuse_wait_desc, recovery_model_desc from sys.databases
Оставьте свое сообщение

См. также

Как я начал администрировать сервер 1С: Предприятие 8.3 с телефона Промо

Администрирование данных 1С Мобильная разработка v8 Бесплатно (free)

Развитие инструментов управления кластером серверов 1С:Предприятие 8.3.

14.04.2017    61592    user700211_a.straltsou    27    

Взаимодействие 1С со сторонними продуктами посредством REST и Golang (middleware). Часть 3 - ElasticSearch

Интеграция Журнал регистрации Бесплатно (free)

Как в статье №1 этого цикла выгрузим через прослойку журнал регистрации (xml формат) в ElasticSearch. Статья будет иметь практическую направленность в минималистичном стиле

14.09.2020    830    dmitry-irk38    4    

Работа с журналом регистрации. Выходим за границы платформы

Журнал регистрации Бесплатно (free)

Работа с журналом регистрации нестандартными средствами. А также немного про использование платформы .NET в экосистеме 1С.

12.05.2020    5995    YPermitin    24    

Сказ о том, как online_analyze INSERT "удлинял"

Статистика базы данных Администрирование СУБД Бесплатно (free)

Немного о тонкостях работы модуля online_analyze для PostgreSQL. Опус для тех, у кого, как и у меня, не всегда хватает времени на то, чтобы разобраться, как это работает, и поэтому бывает так, что следуешь рекомендациям из сети и пользуешься методом "копипаста", пока не прижмет.

10.02.2020    2597    Sloth    2    

Копирование числовых ячеек из 1С в Excel Промо

Загрузка и выгрузка в Excel Администрирование данных 1С v8 1cv8.cf Бесплатно (free)

Решение проблемы, когда значения скопированных ячеек из табличных документов 1С в Excel воспринимаются последним как текст, т.е. без дополнительного форматирования значений невозможно применить арифметические операции. Поводом для публикации послужило понимание того, что целое предприятие с более сотней активных пользователей уже на протяжении года мучилось с такой, казалось бы на первый взгляд, тривиальной проблемой. Варианты решения, предложенные специалистами helpdesk, обслуживающими данное предприятие, а так же многочисленные обсуждения на форумах, только подтвердили убеждение в необходимости описания способа, который позволил мне качественно и быстро справиться с ситуацией.

15.01.2019    25204    itriot11    26    

Ошибка Frontol 5, 6 при работе с базой (internal gds software consistency check)

Тестирование и исправление Розничная и сетевая торговля (FMCG) Бесплатно (free)

При продаже товара выскакивает критическая ошибка "Ошибка работы с базой! Internal gds software consistency check (can't continue after bugcheck)" и работа базы прекращается, любые повторные попытки войти в базу приводят к огромным количествам не понятных ошибок, сбоев, зависаний и вообще может выдать что база не обнаружена (перемещена или удалена). При попытка остановить/перезапустить службу Frontol она вообще зависала и помогала только перезагрузка терминала

23.01.2020    5047    ClickUp    2    

Организация резервного копирования файлов с использованием rclone

Архивирование (backup) Россия Бесплатно (free)

Описание использования достаточно универсальной утилиты по синхронизации файлов.

21.01.2020    3883    malikov_pro    0    

Самые распространенные заблуждения об индексах в мире 1С

Администрирование данных 1С Администрирование СУБД Бесплатно (free)

"Магия" индексов привела к множеству заблуждений об их работе. Попробуем развеять некоторые из них в контексте 1С.

28.11.2019    20670    YPermitin    50    

Как настроить сервер 1С по умолчанию для ПРОФ лицензии после 10.09.2019 Промо

Администрирование данных 1С v8 Бесплатно (free)

Здесь мы собираем все данные по настройкам сервера для работы ПРОФ лицензии.

11.09.2019    74981    Infostart    90    

Тонкая настройка ежедневного резервного копирования базы данных 1С средствами SQL ver. 2014 (SP3) - 12.0.6024.0 (X64)

Архивирование (backup) v8 Россия Бесплатно (free)

Хочу вам предложить небольшой пример, как можно реализовать резервное копирование 1С-ых баз данных средствами SQL. Данный материал не претендует на пулитцеровскую премию. Но возможно кому-то будет интересно узнать, что-то новенькое. Данный материал для резервного копирования только одной базы данных. А именно, если у вас 20-ть баз, то вам придется создавать 20-ть планов обслуживания для каждой базы индивидуально. (Слава разработчикам SQL, они разрешили копировать блоки из одного плана в другой, вам остается только произвести небольшую настройку для каждого скопированного блока - некоторые настройки блоков сбрасываются и выставляются значением по умолчанию и остаются неактивными)

07.10.2019    11090    DrZombi    49    

Установка и настройка нескольких экземпляров сервера 1С: Предприятия 8.3 разных релизов на одном Ubuntu-server

Администрирование данных 1С Россия Бесплатно (free)

Запуск нескольких экземпляров сервера 1С Предприятия 8.3 разных релизов на одном Ubuntu-server.

19.09.2019    11675    Error34    18    

Установка 1С Сервера взаимодействия на Linux

Администрирование данных 1С Россия Бесплатно (free)

В статье описан пошаговый процесс установки Сервера взаимодействия 1C на Linux CentOS 7.6.

06.09.2019    9870    KlSergey    21    

Отчет по размерам таблиц в базе данных как одно из средств анализа проблем Промо

Статистика базы данных v8 1cv8.cf Бесплатно (free)

Зачастую, когда пользователи обращаются с жалобами на производительность, бывает полезно посмотреть на отчет по размерам таблиц базы данных. Он может отчетливо показать ряд распространенных проблем, устранение которых даст существенный эффект. Приведенная информация вряд ли покажется чем-то новым для опытных специалистов.

21.07.2015    34071    Aleksey.Bochkov    15    

1С + PostgreSQL + SSD: Куда уходит ресурс хост-записей?

Администрирование данных 1С Россия Бесплатно (free)

Работа PostgreSQL на SSD начиная с 10 версии, резко увеличивает нагрузку на ресурс SSD, даже когда к базе нет коннектов.

06.09.2019    8073    2tvad    6    

О Unit-тестах замолвите слово.Часть 1

Тестирование и исправление Бесплатно (free)

Последнее время в контексте 1С очень много говорят о функциональном тестировании, BDD. А Unit-тестирование обходят стороной. Попробуем разобраться, для чего Unit-тестирование применять стоит.

22.07.2019    7062    Сурикат    27    

Вопросы и ответы по лицензированию приложений Microsoft Office

Администрирование данных 1С Россия Бесплатно (free)

Завершение цикла статей о лицензировании продуктов Microsoft.

23.06.2019    12774    accounting_cons    4    

Семь рекомендуемых бесплатных курсов Microsoft для ИТ-администраторов Промо

Администрирование данных 1С Бесплатно (free)

Образовательный портал «Нетология» предлагает вам пройти семь онлайн-курсов по облачным сервисам Microsoft бесплатно и получить сертификат об их завершении. Все курсы основаны на самых популярных сценариях использования облачных технологий в компаниях малого и среднего бизнеса. Разберемся, что же эти учебные программы предлагают.

28.12.2018    15742    VKuser24342747    1    

Обновление PostgreSQL на Windows

Администрирование данных 1С Бесплатно (free)

Указана последовательность действий при обновлении PostgreSQL на примере Windows. Также описаны некоторые особенности.

11.06.2019    15182    extalionos    10    

Вопросы и ответы по лицензированию Microsoft Windows

Администрирование данных 1С Россия Бесплатно (free)

То, что интересует покупателей настольной операционной системы Microsoft.

20.05.2019    15694    accounting_cons    8    

Регулярная перезагрузка Сервера 1С с чисткой кэша

Администрирование данных 1С Стартеры 1С Бесплатно (free)

Батник для перезагрузки агента сервера 1С и чистки серверного кэша и сеансовых данных. Для регулярной перезагрузки вставляем в планировщик заданий Windows.

17.05.2019    12188    alfir70    19    

Чем PostgreSQL может быть полезен разработчику 1С Промо

Администрирование данных 1С v8 1cv8.cf Бесплатно (free)

В статье будут рассмотрены примеры, которые могут оказаться полезными в повседневной работе разработчика 1С и не только: как можно сделать снимок рабочей базы без файла резервной копии, как можно эффективно использовать табличные пространства СУБД PostgreSQL, а также как организовать простой и удобный доступ к админке СУБД посредством мобильных устройств.

20.12.2018    23133    Shmell    38    

Способы проверки доступности TCP-портов

Администрирование данных 1С Бесплатно (free)

Как проверить доступен ли порт сервера? Или внешний веб-сервис? Приведены несколько способов для использования на Windows-системах.

12.05.2019    38941    VKislitsin    9    

PID процесса в сборщиках PerfMon

Администрирование данных 1С Россия Бесплатно (free)

Одним из неудобств при работе с PerfMon является то, что одноименные процессы именуются по-порядку, с добавлением суффикса #n к имени процесса. Описана настройка, позволяющая устранить этот недостаток.

06.04.2019    5746    VKislitsin    14    

Введение в лицензирование ПО Microsoft

Администрирование данных 1С Россия Бесплатно (free)

Поговорим о принципах лицензирования программных продуктов Microsoft.

19.03.2019    24991    accounting_cons    37    

Зачем в 1С нужно периодически пересчитывать итоги по регистрам? Промо

Администрирование данных 1С v8 1cv8.cf Бесплатно (free)

Мы часто слышим рекомендацию о том, что пересчет итогов нужно проводить регулярно и эта операция проводит к улучшению производительности, но что скрывается за этой процедурой и какие именно проблемы решаются?

10.03.2013    225565    Aleksey.Bochkov    140    

Собираю Новый бюджетный Сервер для 1С ЗУП на 50 пользователей за 160 тысяч рублей (новый)

Администрирование данных 1С Бесплатно (free)

В продолжение темы https://infostart.ru/public/987835/ На данный момент подбираю бюджетный Сервер для 1С ЗУП на 50 пользователей за 160 тысяч рублей

06.03.2019    6620    Indgo    97    

Вопросы и ответы по лицензированию Microsoft SQL Server

Администрирование данных 1С Россия Бесплатно (free)

Продолжение темы лицензирования серверных продуктов Microsoft.

26.02.2019    24320    accounting_cons    39    

Вопросы и ответы по лицензированию Microsoft Windows Server

Администрирование данных 1С Россия Бесплатно (free)

Все, что вы хотели знать о лицензировании Microsoft Windows Server.

13.02.2019    24716    accounting_cons    45    

Создание пользователя СУБД MS SQL Промо

Администрирование данных 1С v8 Бесплатно (free)

Создание пользователя MS SQL для развертывания базы 1С.

15.02.2017    40436    hayroff    9    

А еще был такой случай

Администрирование данных 1С Бесплатно (free)

Сервер, Сеть и два Сеанса.

04.02.2019    5869    kraynev-navi    12    

Собираем бюджетный игровой компьютер core i7 для Программиста 1С из всякого хлама за 20 тысяч рублей

Администрирование данных 1С Бесплатно (free)

В продолжение статьи со сборкой бюджетного сервера так же решил написать про свой комп. С бюджетом 20 тыс. рублей.

29.01.2019    11022    Indgo    126    

Собираем бюджетный б/у сервер 1С:Предприятия 8.3 на 250+ Пользователей за 100 тыс. рублей

Администрирование данных 1С Бесплатно (free)

В последнее время в виду дорогого доллара, санкций и прочих проблем покупка нового сервера за 500 и более тысяч рублей стала недостижимой роскошью.  Ввиду этого попытаемся собрать его из б/у сервера на Авито.

24.01.2019    18131    Indgo    137    

Listary – интеллектуальный глобальный помощник поиска и выбора файлов в списках диалогов Windows Промо

Поиск данных Бесплатно (free)

Диалоги выбора файлов каждый раз заставляют тебя выполнять десятки однообразных кликов и скроллов мышкой? Устал от неудобного поиска файлов в проводнике? Эта программа - то, что тебе нужно.

18.08.2011    28834    tormozit    15    

Установка Windows без загрузочной флэшки и загрузочного DVD-диска

Администрирование данных 1С Бесплатно (free)

Что делать, если нужно установить Windows на ПЭВМ со старой системной платой, а под рукой нет dvd-привода, а с флэшки загрузка невозможна или идет очень медленно.

09.01.2019    6957    independ    5    

Ректальное администрирование: Основы для практикующих системных АДминистраторов

Администрирование данных 1С Бесплатно (free)

Одной из самых популярных и зарекомендовавших себя методологий системного администрирования является так называемое ректальное. Редкий случай сопровождения и обслуживания информационных систем, инфраструктуры организации обходится без его использования. Зачастую без знания данной методологии сисадминам даже бывает сложно найти работу в сфере ИТ, потому что работодатели, особенно всякие аутсорсинговые ИТ фирмы, в основном отдают предпочтение классическим, зарекомендовавшим себя методикам, а не новомодным заграничным веяниям: практикам ITIL, нормальным ITSM и прочей ерунде.

22.12.2018    15179    Jokemas    25    

Как включить RemoteApp на Windows 10 Professional. Инструкция

Администрирование данных 1С Бесплатно (free)

Всем наверно знакомо, что Professional выпуск Windows позволяет использовать режим удаленного рабочего стола. Но мало кому известно, что есть возможность настроить и режим «RemoteApp» знакомый нам по серверным продуктам. То есть клиенту будет доставляться не весь рабочий стол, а лишь приложение, например, 1С.

16.12.2018    32352    Aleksey81    34    

31 марта — Международный день резервного копирования Промо

Архивирование (backup) Бесплатно (free)

А вы сделали бэкап? А проверили, что его можно использовать?

31.03.2016    19427    Gilev.Vyacheslav    3    

Как в RDP избавиться от языковой раскладки и оставить только выбор языка

Администрирование данных 1С Бесплатно (free)

До чего же бывает трудно, когда в терминальной сессии работает выбор как языка ввода, так и языковой раскладки. Раздражает ведь??? Решение есть, и весьма простое!

14.12.2018    16997    Aleksey81    45    

Восстанавливаем ассоциацию типов файлов 1С

Администрирование данных 1С Бесплатно (free)

По случайности или неосторожности бывает так, что меняется ассоциация файлов 1С (относится ко всем типам файлов, здесь же разбирается пример для файла 1С), и потом очень неудобно становится ориентироваться по файлам 1С или даже смотреть на такое безобразие. В этой статье я кратко на своем примере расскажу Вам, как исправить подобные ситуации.

18.11.2018    5948    osa92    3    

Измерь его правильно! Краткое описание общепринятого метода оценки производительности DB серверов

Администрирование данных 1С Бесплатно (free)

Сообщество программистов (администраторов) 1С является одним из самых замкнутых на себя. Тот же JAVA senior без особых вопросов напишет код на PHP или на Python, если этого потребует обстановка. 1Сники же и powershell и bash и PHP и все остальное с разной степенью успешности реализуют на 1С. В последнее время ситуация немного меняется, классическое высшее образование программистов уже не ограничивается ассемблером, бейсиком и фортраном. Никто не падает в обморок при виде class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } } Попробуем покуситься на тест Гилева © и узнать, как без него обходятся DBA админы остального мира, слабонервных прошу удалиться, остальных прошу под кат...

28.10.2018    12204    capitan    137    

Все, что надо знать о технологической платформе 1С:Предприятие: компоненты, архитектуры, операционные системы, лицензии Промо

Администрирование данных 1С v8 Бесплатно (free)

Все о платформе и лицензировании для начинающих и не только. (благодаря Сообществу учтены новейшие изменения лицензионной политики 1С!)

19.12.2015    72451    barelpro    50    

Как подружить 1С и Power BI: личный опыт визуализации управленческих данных

Администрирование данных 1С Россия Бесплатно (free)

Аналитика для предприятия – это, скорее, необходимость, чем роскошь. Визуальное представление данных позволяет оперативно принимать и оценивать управленческие и коммерческие решения. Так, Microsoft Power BI является прекрасной платформой для построения динамических и интерактивных отчетов. В статье рассмотрен вариант подключения 1С в качестве источника данных через OData.

04.10.2018    40435    zhogov    71    

Как обеспечить резервирование 1С с минимальным временем на восстановление

Администрирование данных 1С Россия Бесплатно (free)

Резервирование 1С является важным фактором для защиты данных и снижения рисков их потери для любого предприятия. В этой статье мы поделимся опытом, как обеспечить резервирование 1С с минимальным временем на восстановление.

11.09.2018    10645    zhogov    42    

Организация виртуальной инфраструктуры 1С в Microsoft Azure

Администрирование данных 1С Россия Бесплатно (free)

В последнее время тема облачных сервисов становится все более популярной не только в сегменте частных пользователей. Облака находят практическое применение в бизнесе, например, для размещения 1С, и уже пользуются высоким спросом. Предлагаю вам наш опыт по организации виртуальной инфраструктуры 1С в Microsoft Azure.

04.09.2018    16528    zhogov    87    

Кто заблокировал объект ? 7.7 (SQL/DBF) Промо

Администрирование данных 1С v7.7 1cv7.md Бесплатно (free)

Обработка блокировки объекта в базе для SQL/DBF варианта.

13.08.2010    39406    Ёпрст    123    

Решение практической задачи в администрировании 1С используя веб приложение для Linux (Продолжение)

Администрирование данных 1С Казахстан Бесплатно (free)

В прошлой своей статье я обещал рассказать о том как используя описанное мной веб приложение очень просто решать свои повседневные задачи. Об одной из таких задач в видео ниже.

30.08.2018    6482    held88    6    

Сборка и разборка автомата Калашникова (и снова про RAID)

Администрирование данных 1С Бесплатно (free)

Тестирование RAID на запись в различных условиях.

13.06.2018    6818    viptextil1    5    

Сжатие логов журнала транзакции MS SQL

Администрирование данных 1С Бесплатно (free)

Автоматический шринк журнала транзакций и перевод базы в простой режим восстановления.

14.04.2018    10947    bashinsky    8    

LiteManager — удаленное администрирование. Описание, практика применения, рекомендации. Промо

Сервисные утилиты Администрирование данных 1С Бесплатно (free)

Удаленное администрирование компьютерами. Локальная сеть. Интернет. Описание, практика применения, рекомендации.

30.04.2013    80431    StepByStep    55