Назад | Перейти на главную страницу

Кластер SQL Server AlwaysOn - заполнение большой базы данных доступности создает странное поведение

Я установил 2-узловой кластер группы доступности AlwaysOn SQL Server 2016 (1 первичный, 1 вторичный). Базовое оборудование довольно мощное; 4 процессора, 16 ГБ ОЗУ и SSD-диск с локальным подключением. Затем я восстановил 10 баз данных на первичном. Одна из этих баз данных была большой, около 38 ГБ, в то время как другие были относительно компактными, размером от 0,5 до 2 ГБ. Восстановление произошло быстро - затем я добавил эти 10 баз данных одновременно в качестве баз данных доступности и выбрал Seeding в качестве метода инициализации реплик.

Это когда произошло странное поведение. Первые 6 баз данных были скопированы, как и ожидалось, и отображаются как синхронизированные в списке баз данных на вторичной реплике, включая базу данных размером 38 ГБ. Загрузка ЦП на вторичной реплике увеличилась с 0% до примерно 20-50%. Тогда оставшиеся 4 базы так и не появились. Итак, я выполнил этот запрос:

SELECT
 r.session_id, r.status, r.command, r.wait_type
 , r.percent_complete, r.estimated_completion_time
FROM sys.dm_exec_requests r JOIN sys.dm_exec_sessions s
 ON r.session_id = s.session_id
WHERE r.session_id <> @@SPID
AND s.is_user_process = 0
AND r.command like 'VDI%'

И вот результат:

Похоже, что другие базы данных не заполняются. Я решил подождать 12 часов. Спустя 12 часов загрузка ЦП на вторичной реплике все еще находится в диапазоне 20–50%. В кластере нет запросов. Первичная реплика находится в синхронизированном состоянии для всех баз данных и использует 0% ЦП (и работает на оборудовании того же типа). Однако 4 базы данных отображаются на вторичной реплике как несинхронизированные. Кластер использует облако-свидетель для режима кворума.

Итак, мои вопросы:

Любая помощь здесь будет принята с благодарностью.