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

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

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

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

Для 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
Делаем базу доступной.

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

115

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

Комментарии
Избранное Подписка Сортировка: Древо
1. AlexProg 112 08.05.14 09:47 Сейчас в теме
Если вопрос незакрытых транзакций или пересчетов итогов не принципиален, и есть полная копия, то проще переключиться на простую модель восстановления данных, сжать лог файл, и переключиться на полную опять. Причем при определенных обстоятельствах это можно делать регламентно, даже с пересчетом итогов из 1С. Но это разговор за отдельную плату :)
2. comol 4073 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 4073 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 4073 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 4073 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 4073 02.06.14 12:42 Сейчас в теме
(6) rar_xxx, НачатьТранзакцию() Записать() Пока 1 Цикл КонецЦикла

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

9. rar_xxx 23 02.06.14 17:04 Сейчас в теме
(8) )) зачем так делать ?) Если надо шринкануть самый простой вариант - переключаешь на простой режим восстановления, режешь, переключаешь на полный и Делаешь полный бекап! иначе идея восстановления по журналу транзакций накрываться. Причем все это можно делать на работающей базе.
10. comol 4073 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 513 03.06.14 14:07 Сейчас в теме
comol - странно слышать от вас такие советы... Больше похоже на вредные советы Григория Остера. Эти советы для тех кто не разобрался в SQL? Типа наделайте чего нить не вникая и будет вам еще лучше?

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

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

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


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

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

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

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

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

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


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

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

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

насчет слепого с глухим согласен... и желание продолжать общение пропало. Тем более выяснилось что мы тут пользователями меряемся, и вообще оказывается факты работы sql уже даже и не факты, а так... Да Вы еще вдруг решили оценивать мои знания......
GreenDragon; +1 1 Ответить
21. comol 4073 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 513 05.06.14 11:25 Сейчас в теме
минус в карму? детский сад :)

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

Прикрепленные файлы:
23. comol 4073 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 513 05.06.14 12:35 Сейчас в теме
Блин, давайте не путать теплое с мягким. В ссылке приведены возможные причины задержки усечения журнала транзакций. Ваша статья про сжатие файла журнала. Это принципиально разные вещи.

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

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

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

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

В статье не хватает главного - причины уменьшения журнала транзакций? Кому и для чего это надо?
25. comol 4073 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 513 05.06.14 14:18 Сейчас в теме
я рад что вы тоже разобрались чем одно от другого отличается. Потому что в статье каша. И в ссылках что вы приводите тоже. То вы отрицаете что журнал кольцуется, то "съезжаете" что речь идет о сжатии. Хотя вначале статьи явно сказано что вот мол новый скул не дает сжимать (не работает DBCC SHRINKFILE), и вот вам обходные маневры ....

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

будет выдано такое сообщение
Сбой при активации файла. Возможно, физическое имя файла "полныйпуть\Имя_Базы.LDF" неправильное.
Создан новый файл журнала "полныйпуть\Имя_Базы.LDF".
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 4073 27.07.18 13:49 Сейчас в теме
(39)
А все остальное, это если что-то сломалось.
Да вообще наша работа это только "если что-то сломалось" :))))
Оставьте свое сообщение

См. также

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

Статья Системный администратор Программист Нет файла v8 Россия MS SQL Бесплатно (free) Архивирование (backup)

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

07.10.2019    2298    DrZombi    47       

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

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

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

06.09.2019    1606    KlSergey    14       

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

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

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

06.09.2019    3853    2tvad    6       

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

Статья Программист Нет файла Бесплатно (free) Тестирование и исправление

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

22.07.2019    2281    Сурикат    27       

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

Статья Системный администратор Нет файла Windows Бесплатно (free) Администрирование данных 1С

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

11.06.2019    4395    extalionos    4       

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

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

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

20.05.2019    4434    accounting_cons    3       

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

Статья Системный администратор Нет файла Windows Бесплатно (free) Администрирование данных 1С Стартеры 1С

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

17.05.2019    5240    alfir70    19       

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

Статья Системный администратор Нет файла Windows Бесплатно (free) Администрирование данных 1С

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

12.05.2019    5973    -vito-    7       

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

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

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

06.04.2019    1882    -vito-    9       

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

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

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

19.03.2019    6944    accounting_cons    37       

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

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

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

26.02.2019    9252    accounting_cons    30       

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

Статья Системный администратор Программист Нет файла Бесплатно (free) Администрирование данных 1С

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

29.01.2019    7141    ogidni    126       

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

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

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

24.01.2019    10834    ogidni    136       

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

Статья Системный администратор Нет файла Windows Бесплатно (free) Администрирование данных 1С

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

09.01.2019    4055    independ    4       

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

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

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

28.12.2018    10127    VKuser24342747    1       

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

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

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

22.12.2018    11168    Jokemas    25       

Исследование использования СУБД (MS SQL, PostgreSQL, Oracle, IBM DB2) с отраслевыми конфигурациями на платформе 1С:Предприятие 14

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

Инфостарт подводит предварительные итоги третьего опроса по системам управления БД, которые используют участники Сообщества для автоматизации на платформе 1С, и анализирует тенденции рынка.

20.12.2018    6318    Kochergov    13       

1С Батл: PostgreSQL 9,10 vs MS SQL 2016 150

Статья Системный администратор Программист Нет файла Бесплатно (free) Администрирование данных 1С

PostgreSQL не так давно появился на российском рынке, поэтому у многих специалистов появляются сомнения, насколько удобно с ним работать, учитывая специфику 1С. Антон Дорошкевич, руководитель IT-отдела и направления оптимизации 1С компании «ИнфоСофт» (г. Новосибирск), рассказал о своем опыте применения этой СУБД. Тема его доклада звучала провокационно: «1С-батл между MS SQL 2016 и PostgreSQL версии 9 и версии 10».

18.12.2018    33483    a.doroshkevich    153       

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

Статья Системный администратор Программист Нет файла Бесплатно (free) Администрирование данных 1С

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

16.12.2018    16987    Aleksey81    29       

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

Статья Системный администратор Нет файла Windows Бесплатно (free) Администрирование данных 1С

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

14.12.2018    8693    Aleksey81    40       

Postgres Pro для 1С: что нового 74

Статья Системный администратор Программист Нет файла Бесплатно (free) Администрирование данных 1С

Postgres становится все популярнее, но специалисты 1С все равно немного побаиваются этой системы управления базами данных. Почему стоит решиться и попробовать эту СУБД – на конференции INFOSTART EVENT 2018 рассказал сооснователь и генеральный директор компании Postgres Professional Олег Бартунов.

10.12.2018    19722    user1068014    98       

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

Статья Системный администратор Программист Нет файла Windows Бесплатно (free) Администрирование данных 1С

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

18.11.2018    2570    osa92    2       

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

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

Сообщество программистов (администраторов) 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    8077    capitan    137       

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

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

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

04.10.2018    19208    zhogov    55       

Автоматизация тестирования 82

Статья Программист Нет файла Бесплатно (free) Тестирование и исправление

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

04.10.2018    7359    ivanov660    23       

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

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

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

11.09.2018    7970    zhogov    32       

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

Статья Системный администратор Программист Нет файла Россия Windows Бесплатно (free) Администрирование данных 1С

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

04.09.2018    11484    zhogov    86       

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

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

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

30.08.2018    4208    held88    6       

Инструментарий Linux администратора 1С 147

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

Меня зовут Евгений Бессонов. Сегодня я собираюсь вам рассказать про инструментарий Linux администратора 1С. Сразу хочу сделать небольшую ремарку относительно моих знаний в этой области: я не могу отнести себя к разряду «линукс-гиков» – ядро по ночам не пересобираю и патчи не накладываю. Но, тем не менее, у меня накопились кое-какие наработки, которыми я с вами сейчас хочу поделиться.

31.05.2018    19084    _evgen_b    41       

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

Статья Системный администратор Программист Нет файла Бесплатно (free) Администрирование данных 1С

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

14.04.2018    7774    bashinsky    8       

Авторизация с помощью сертификата ssl на nginx + Let's Encrypt 6

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

Добрый день, вечер или ночь, все зависит от времени суток в который вам довелось прочитать мою статью. В связи с ростом колличества корпаративных клиентов, было принято решение дать доступ к учетной системе внешним пользователям. Для самостоятельного оформления заказов и отслеживания их состояний. Реализация была создан web интерфейс с необходимым функционалом и доступом. Тут же стал вопрос безопасности, кроме стандартных пользователь-пароль было решено еще усилить безопасность, для этого применили OpenVPN, но появились клиенты, для которых нельзя применять OpenVPN (политики безопасности, нежелания и.д.), тут на глаза попались статьи про доступ по ssl сертификату.

22.02.2018    5628    kolianus    1       

Git с человеческим лицом для тех, кто устал терять данные 96

Статья no Нет файла Бесплатно (free) Архивирование (backup) Управление проектом

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

06.01.2018    62682    for_sale    59       

Оптимистические уровни изоляции в MS SQL Server 40

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

Оптимистические уровни изоляции транзакций были введены в SQL Server 2005 как новый способ борьбы с проблемами блокировок и согласованности данных. В отличие от пессимистических уровней изоляции, при использовании оптимистических уровней запросы не могут считать данные, которые были изменены другими транзакциями, но еще не были зафиксированы (читаются "старые" данные). При этом не происходит конфликта совмещаемых (S) и монопольных (X) блокировок.

30.11.2017    12013    Irwin    1       

Типы блокировок в MS SQL Server 111

Статья Системный администратор Программист Нет файла MS SQL Бесплатно (free) Администрирование данных 1С

В SQL Server существует более 20 типов блокировок. Для начала мы рассмотрим основные из них, чтобы понять, когда и для чего SQL Server использует их.

29.11.2017    26933    Irwin    5       

Как посмотреть, какие данные заблокированы в СУБД MS SQL Server 61

Статья Системный администратор Программист Нет файла Бесплатно (free) Администрирование данных 1С

Иногда требуется посмотреть, какие объекты и данные заблокированы и какие блокировки на этих объектах стоят (речь идет только о транзакционных блокировках). В SQL Server для этих целей существует динамическое представление sys.dm_tran_locks. Оно возвращает сведения об активных в данный момент в SQL Server ресурсах диспетчера блокировок.

28.11.2017    13081    Irwin    11       

BackTracker - бот для контроля своевременности резервного копирования 13

Статья Системный администратор Нет файла Linux Бесплатно (free) Архивирование (backup)

Когда речь заходит о резервном копировании, паранойи много не бывает. Допустим, Вы настроили бэкап PostgreSQL в сетевое NAS хранилище. Проверили, скрипт работает, все хорошо, ежедневные бэкапы, глубина хранения и всё такое. Но в какой-то момент что-то пошло не так, и важно не упустить этот момент, как можно быстрее всё исправить. Поможет в этом специально обученный Telegram бот.

20.11.2017    8794    kuld    2       

"Из грязи в князи" или из реального HDD в виртуальный 20

Статья Системный администратор Приложение (exe) Windows Бесплатно (free) Архивирование (backup)

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

29.10.2017    10033    JohnConnor    10       

Потоковая репликация и непрерывное архивирование базы данных PostgreSQL - делюсь небольшим опытом 52

Статья Системный администратор Нет файла Россия Бесплатно (free) Архивирование (backup)

Постарался кратко описать опыт настройки потоковой репликации и непрерывного архивирования в PostgreSQL.

27.10.2017    15611    KRIHA    9       

Рекомендации по оптимальной настройке кластера 1С, настройке сервера MS SQL при работе в среде 1С 150

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

Устанавливая 1С в клиент-серверном варианте, случается, что специалисты оставляют настройки кластера серверов 1С 8.3 по умолчанию. Это может приводить к неоптимальному использованию аппаратных ресурсов эксплуатируемых серверов и к нестабильной работе серверов 1С и СУБД. В статье рассмотрим рекомендации по основным настройкам кластера серверов 1С 8.3 и СУБД MS SQL.

25.05.2017    61598    user759624    65       

Проброс COM портов через TCP/IP с помощью Virtual Serial Ports Emulator (Windows) 109

Статья Системный администратор Программист Нет файла Windows Бесплатно (free) Фискальный регистратор Администрирование данных 1С

Проброс COM портов через TCP/IP с помощью Virtual Serial Ports Emulator (Windows) от компании Eterlogic . Простой пример настройки. Альтернатива стандартному маппингу com портов средствами Windows через RDP.

11.05.2017    59169    Shestik    97       

Очередная очистка таблиц средствами MS SQL 31

Статья Системный администратор Программист Нет файла Россия MS SQL Бесплатно (free) Чистка базы

Очередной пост про очистку таблицы средствами MS SQL. И почему стоит очищать большие таблицы порциями.

21.04.2017    15060    JesteR    9       

Долго закрывается терминальный сеанс 1С по RDP 13

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

Одно из решений, когда терминальная сессия сервера Win2008R2 x64 долго закрывается или не закрывается вообще.

01.03.2017    12394    Umix    6       

Бекап средствами MS SQL во внешний источник по датам 10

Статья Системный администратор Нет файла Бесплатно (free) Архивирование (backup)

Бекап средствами MS SQL (Transact-SQL) всех баз во внешний источник по папочкам и датам

08.02.2017    8627    ILYXA    10       

Свой сервер удаленной консультации на выделенном сервере Linux CentOS 22

Статья Системный администратор Программист Нет файла Linux Бесплатно (free) Администрирование данных 1С

Разворачиваем свою систему для удаленного доступа к клиентам с целью консультирования их по работе с конфигурациями 1С. В статье приведено описание, как развернуть сервер удаленной консультации на дешевом VDS Linux-сервере CentOS.

28.11.2016    12172    ifal    14