#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
, все хорошо, этот агент должен работать, и проблем быть не должно. Но почему:
- В тексте говорится
begin tran
и ничего больше? - Проверка IDERA SQL помечает его как
connection idling transaction
? - Статус
sleeping
? - Я обеспокоен тем, что
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
все еще там, как и каждый день и ночь