SQL Server :: Агент распространения репликации никогда не заканчивается

#sql-server #high-availability #sql-server-2019 #alwayson #availability-group

#sql-сервер #высокая доступность #sql-server-2019 #alwayson #доступность-группа

Вопрос:

Я использую SQL Server 2019 всегда в группе доступности с асинхронной репликацией.

Я использую бесплатный инструмент под названием IDERA SQL Check, и я определил SPID 69 , какое имя программы Replication Distribution Agent . Он всегда там, смотрит на меня, как скучающий кот.

введите описание изображения здесь

Это SPID 69 указывает на конкретную базу данных, которая является зеркальной, я исследовал ее с помощью этого запроса:

 select 
s.session_id
,login_name
,login_time
,host_name
,program_name
,status
,cpu_time
,memory_usage
,total_scheduled_time
,total_elapsed_time
,last_request_start_time
,reads
,writes
,logical_reads
from sys.dm_exec_sessions s
inner join sys.dm_exec_connections c
on s.session_id = c.session_id
outer apply sys.dm_exec_sql_text(c.most_recent_sql_handle) st
where s.is_user_process = 1
and s.open_transaction_count > 0;
  

Который дал мне этот ответ:

  • session_id = 69
  • текст = начало передачи
  • login_time = 2020-09-08 18:40:57.153
  • имя_программы = Агент распространения репликации
  • статус = спящий
  • cpu_time = 1362772
  • memory_usage = 4
  • total_scheduled_time = 1689634
  • total_elapsed_time = 22354857
  • last_request_start_time = 2020-09-28 16:28:39.433
  • читает = 18607577
  • пишет = 5166597
  • logical_reads = 112256365

Теперь, в Интернете, я нахожу, что когда вы видите Replication Distribution Agent , все хорошо, этот агент должен работать, и проблем быть не должно. Но почему:

  1. В тексте говорится begin tran и ничего больше?
  2. Проверка IDERA SQL помечает его как connection idling transaction ?
  3. Статус sleeping ?
  4. Я обеспокоен тем, что CPU time, reads and writes в основном говорят мне, что этот процесс поджаривает диск с бесконечным вводом-выводом, я прав?

Комментарии:

1. вы можете получить лучшую помощь по адресу dba.stackexchange.com или ошибка сервера , но это место предназначено для вопросов, связанных с программированием.

2. Спасибо @user3788685, они запретили мне dba.stackexchange.com . … И я администратор базы данных…

Ответ №1:

Это совершенно нормально.

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

Это не поджаривает ваш диск — если только скорость транзакций не настолько высока, что это фактически поджаривает ваш диск. Он показывает большое количество операций чтения поэтапно — это кумулятивные значения, а не моментальный снимок текущего. Это говорит о том, что он прочитал эквивалент 141 ГБ за 20 дней — не особенно интенсивное использование.

Комментарии:

1. Спасибо @Martin, также «начать переход» нормально?

2. На самом деле, проверьте также, включена ли репликация в этом экземпляре. У вас есть база данных распространения? Могут быть неправильно настроенные компоненты, которые были установлены, что может привести к отображению этого фактического процесса, поскольку он обычно не отображается для AG

3. Точно @Martin. У меня есть 4 базы данных на этом компьютере, но этот процесс постоянно выполняется только на 1 из них. И есть это begin tran , а затем больше ничего, никакого кода, например, если кто-то забыл вставить запрос после этого begin tran . Я буду держать вас в курсе. Большое спасибо

4. Можете ли вы запустить select name, is_published, is_subscribed, is_merge_published, is_distributor from sys.databases where is_published = 1 or is_subscribed = 1 or is_merge_published = 1 or is_distributor = 1 и посмотреть, что у него есть для базы данных, в которой вы видите эту проблему

5. Ваш запрос ничего не возвращает. И SPID 69 все еще там, как и каждый день и ночь