Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Тормозит sql server при выполнении заданий Transaction Log Shipment  [new]
ShootNik
Member

Откуда:
Сообщений: 7
Помогите, пожалуйста, с проблемой: настроил log shipment для трех баз 1с ~5-10Гб. Периодичность каждые 15минут. Пол года работало нормально, сейчас начались тормоза в момент выполнения этого задания. sqlserv.exe минут пять что-то читает/пишет из системной базы msdb. Размер этой базы 3Гб. Выяснил, что она служит для работы агента sql и записи его логов.

автор
Используя задачу «Очистка журнала», пакет может удалить данные журнала, связанные с деятельностью по созданию резервных копий и восстановлению, с заданиями агента SQL Server и планами обслуживания баз данных.


Создал эту задачу, выполнил, потом сделал shrink эту msdb - пустого места только 500Мб. Сейчас msdb 2,5Гб и тормозит.
Как ее уменьшить?
3 июн 09, 13:02    [7260263]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит sql server при выполнении заданий Transaction Log Shipment  [new]
Le Peace
Member

Откуда: Москва
Сообщений: 8969
А какая(ие) таблица в msdb занимает(ют) место?
А что находится в задаче «Очистка журнала»?
3 июн 09, 13:31    [7260438]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит sql server при выполнении заданий Transaction Log Shipment  [new]
ShootNik
Member

Откуда:
Сообщений: 7
Table Name # Records Reserved (KB) Data (KB) Indexes (KB) Unused (KB)
dbo.log_shipping_monitor_error_detail 2163309 1316760 1081680 233880 1200
dbo.log_shipping_monitor_history_detail 2171688 1019992 786384 232056 1552
dbo.sysssispackages 10 3240 313624 80
dbo.sysjobhistory 506 2816 1128104 1584

практически все это логи доставки журнала транзакций.
Задачу "очистку журнала" создавал визардом, вот что в подсказке к нему было
автор
The History Cleanup task deletes historical data about Backup and Restore, SQL Server Agent, and Maintenance Plan operations. This wizard allows you to specify the type and age of the data to be deleted.

А вот сам запрос:
declare @dt datetime select @dt = cast(N'2009-06-01T13:43:26' as datetime) exec msdb.dbo.sp_delete_backuphistory @dt
GO
EXEC msdb.dbo.sp_purge_jobhistory  @oldest_date='2009-06-01T13:43:26'
GO
EXECUTE msdb..sp_maintplan_delete_log null,null,'2009-06-01T13:43:26'
3 июн 09, 14:46    [7260811]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит sql server при выполнении заданий Transaction Log Shipment  [new]
Le Peace
Member

Откуда: Москва
Сообщений: 8969
Посмотрите ещё вот эти процедуры:
sp_cleanup_log_shipping_history
sp_delete_jobsteplog
4 июн 09, 10:01    [7263584]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит sql server при выполнении заданий Transaction Log Shipment  [new]
ShootNik
Member

Откуда:
Сообщений: 7
можно подробнее какие параметры, писать, а лучше полный запрос. В msdn как-то скудно описано, в поиске тоже я не нашел.
автор
sp_cleanup_log_shipping_history
[ @agent_id = ] 'agent_id',
[ @agent_type = ] 'agent_type'
Аргументы
[ @agent_id = ] 'agent_id',
Первичный идентификатор для резервного копирования или вторичный идентификатор для копирования или восстановления. Аргумент agent_id имеет тип uniqueidentifier и не может принимать значение NULL.
[ @agent_type = ] 'agent_type'
Тип задания доставки журналов. 0 = Резервное копирование, 1 = Копирование, 2 = Восстановление. Аргумент agent_type имеет тип tinyint и не может принимать значение NULL.



@agent_id я посмотрел в свойствах задания, там где "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqllogship.exe" -Backup 72A8549A-F3C5-4D59-BB81-971A3AACA1E7 -server SRV. Написал

use master
go
exec sp_cleanup_log_shipping_history
@agent_id = '72A8549A-F3C5-4D59-BB81-971A3AACA1E7,
@agent_type = 0;
go

секунд 15 запрос обрабатывался, написал успешно, но размер таблицы в msdb не уменьшился :(
sp_delete_jobsteplog вообще мгновенно написал "0 rows affected".
4 июн 09, 13:17    [7264913]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит sql server при выполнении заданий Transaction Log Shipment  [new]
Le Peace
Member

Откуда: Москва
Сообщений: 8969
А agent_type = 1 и 2 пробовали?
4 июн 09, 13:28    [7265013]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит sql server при выполнении заданий Transaction Log Shipment  [new]
ShootNik
Member

Откуда:
Сообщений: 7
Да
Msg 32016, Level 16, State 1, Procedure sp_cleanup_log_shipping_history, Line 43
The specified agent_id 72A8549A-F3C5-4D59-BB81-971A3AACA1E7 or agent_type 1 do not form a valid pair for log shipping monitoring processing.
для 1 и 2 вот такую ошибку выдает. Насколько я понял и мсдна 0 - это бекап (т.е. сервер), 1 - копирование и 2 - восстановление (1 и 2 выполняются на компе приемнике, по крайней мере, задания агента создались там).
4 июн 09, 15:59    [7266000]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит sql server при выполнении заданий Transaction Log Shipment  [new]
Le Peace
Member

Откуда: Москва
Сообщений: 8969
сделайте запрос на msdb:
select distinct agent_id from log_shipping_monitor_history_detail и посмотрите, какие там айдишники.
И из log_shipping_monitor_error_detail тоже.
4 июн 09, 16:50    [7266349]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит sql server при выполнении заданий Transaction Log Shipment  [new]
ShootNik
Member

Откуда:
Сообщений: 7
Результаты обоих запросов - четыре id, базы у меня тоже 4. Скопировал их по очереди снова в
exec sp_cleanup_log_shipping_history
@agent_id = '72A8549A-F3C5-4D59-BB81-971A3AACA1E7',
@agent_type = 0;
и выполнил четыре раза, выполнялись запросы опять секунд по 10. Сейчас 400Мб можно урезать от msdb, но все равно остается больше двух гиг, и субъективно тормоза не уменьшились. Просто грохнуть содержимое этих таблиц неправильно же будет, заново настраивать доставку не хотелось бы - компы через медленный интернет соединены, а базы 30Гб...
4 июн 09, 19:06    [7267198]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит sql server при выполнении заданий Transaction Log Shipment  [new]
Le Peace
Member

Откуда: Москва
Сообщений: 8969
Я, конечно, не советую, но если грохнуть логи, логшиппинг врядли должен сломаться.
Другое дело, что даст ли вообще сиквел грохнуть логи напрямую.
5 июн 09, 10:04    [7268399]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит sql server при выполнении заданий Transaction Log Shipment  [new]
ShootNik
Member

Откуда:
Сообщений: 7
Кажется до меня дошло - sp_cleanup_log_shipping_history очищает историю руководствуясь сроком хранения копий, который указывается в задании резервного копирования. через несколько дней отпишусь уменьшилась msdb или нет.
6 июн 09, 09:51    [7272432]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит sql server при выполнении заданий Transaction Log Shipment  [new]
ShootNik
Member

Откуда:
Сообщений: 7
Точно, срок хранения копий 7 дней, прошло три дня - база msdb уменьшилась больше чем в трое. задание очистки истории поставил на ночь каждый день.
8 июн 09, 09:48    [7275122]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Тормозит sql server при выполнении заданий Transaction Log Shipment  [new]
LelikB
Member

Откуда: СПб
Сообщений: 64
У меня была похожая ситуация. В какой-то момент права съехали на папку с логами LogShipping: бэкапы создавались, но не могли удалиться. Т.к. бэкапы и восстановление журналов при этом отрабатывало без проблем, то алерты о сбое logshipping не срабатывали. Но в какой-то момент сервер стал существенно тормозить в момент выполнения бэкапов журналов. Я обратил внимание, что при этом зашкаливает счетчик Avg Disk Queue Length для диска C:, на котором расположена система и системные базы данных. Далее я обратил внимание на размер базы msdb, а конкретно таблиц:
log_shipping_monitor_error_detail - 1 405.234 MB
log_shipping_monitor_history_detail - 1 056.867 MB
Первым делом я дал корректные права на папку, чтобы ошибки больше не писались в лог.
Затем попробовал sp_cleanup_log_shipping_history, но эта процедура не помогла, т.к.
msdn
This stored procedure cleans up local and remote copies of log_shipping_monitor_history_detail and log_shipping_monitor_error_detail based on history retention period.

Тогда я обратил внимание на фрагментацию индексов на этих таблицах, сделал их rebuild, после чего показания счетчика Avg Disk Queue Length при выполнении бэкапа существенно уменьшились. Тормозов больше нет, а размер таблиц уменьшится через 3 дня.
10 янв 12, 13:35    [11878431]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить