Поделиться через


sys.dm_database_replica_states (Azure SQL Database)

Применимо к:Azure SQL DatabaseAzure SQL Managed Instance

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

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

  • В первичной реплике это представление возвращает одну строку для базы данных-источника и для Azure SQL Database геореплицированных или отказоустойчивых баз данных группы, дополнительная строка для каждой базы данных-получателя.

Внимание

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

Имя столбца Тип данных Описание (в основной реплике)
database_id int Идентификатор базы данных.

В Azure SQL Database значения уникальны в одной базе данных или эластичном пуле, но не в логическом сервере.
group_id uniqueidentifier Идентификатор группы доступности, к которой принадлежит база данных.
replica_id uniqueidentifier Идентификатор реплики доступности в группе доступности.
group_database_id uniqueidentifier Идентификатор базы данных из группы доступности. Этот идентификатор совпадает на всех репликах, к которым присоединена эта база данных.
is_local bit Является ли база данных доступности локальной. Может принимать одно из следующих значений:

0 = база данных не является локальной для экземпляра SQL Server.

1 = база данных является локальной для экземпляра сервера.
is_primary_replica bit Возвращает значение 1 , если реплика является первичной или 0 является вторичной репликой в группе доступности, к которой принадлежит база данных. Это не относится к базе данных-источнику или базе данных-получателю в распределенной группе доступности или активной связи георепликации.

Применимо к: SQL Server 2014 (12.x) и более поздним версиям.
synchronization_state tinyint Состояние перемещения данных— одно из следующих значений.

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

1 = синхронизация. Для базы данных-источника указывает, что база данных готова принимать запросы на просмотр от базы данных-получателя. Для базы данных-получателя указывает, что происходит активное перемещение данных.

2 = синхронизировано. База данных-источник отображается SYNCHRONIZED вместо SYNCHRONIZING. Состояние базы данных-получателя с синхронной фиксацией отображается как «SYNCHRONIZED» в том случае, когда с точки зрения локального кэша база данных готова к отработке отказа и находится в процессе синхронизации.

3 = отмена. Обозначает этап процесса отката, в котором база данных-получатель активно получает страницы с базы данных-источника.

Важно: Если база данных на вторичной реплике находится в REVERTING состоянии, принудительная отработка отказа на вторичную реплику покидает базу данных в состоянии, в котором ее невозможно запустить в качестве базы данных-источника. Необходимо повторно подключить базу данных как базу данных-получатель или применить новые записи журнала из резервной копии журнала.

4 = инициализация. Обозначает этап процесса отката, на котором журнал транзакций, по которому базе данных-получателю необходимо устранить вплоть до номера LSN, который доставляется и фиксируется на вторичной реплике.

Важно: Если база данных на вторичной реплике находится в INITIALIZING состоянии, принудительная отработка отказа на вторичную реплику покидает базу данных в состоянии, в котором ее невозможно запустить в качестве базы данных-источника. Необходимо повторно подключить базу данных как базу данных-получатель или применить новые записи журнала из резервной копии журнала.
synchronization_state_desc nvarchar(60) Одно из следующих описаний состояния перемещения файла.

- NOT SYNCHRONIZING
- SYNCHRONIZING
- SYNCHRONIZED
- REVERTING
- INITIALIZING
is_commit_participant bit 0 = фиксация транзакций не синхронизируется с этой базой данных.

1 = фиксация транзакций синхронизируется с этой базой данных.

Для базы данных в реплике доступности асинхронной фиксации это значение всегда 0равно.

Что касается базы данных в реплике доступности с синхронной фиксацией, то данное значение является точным только в базе данных-источнике.
synchronization_health tinyint Отражает пересечение состояния синхронизации базы данных, присоединенной к группе доступности на реплике доступности, и режим доступности реплики доступности (режим синхронной фиксации или асинхронной фиксации), одно из следующих значений.

0 = нездорово. База synchronization_state данных имеет значение 0 (NOT SYNCHRONIZING).

1 = частично работоспособный. База данных в реплике доступности синхронной фиксации считается частично работоспособной, если synchronization_state это 1 (SYNCHRONIZING).

2 = работоспособный. База данных на реплике доступности синхронной фиксации считается работоспособной, если synchronization_state это 2 (SYNCHRONIZED), а база данных на реплике доступности асинхронной фиксации считается работоспособной, если synchronization_state это 1 (SYNCHRONIZING).
synchronization_health_desc nvarchar(60) synchronization_health Описание базы данных доступности.

- NOT_HEALTHY
- PARTIALLY_HEALTHY
- HEALTHY
database_state tinyint 0 = Online
1 = восстановление
2 = восстановление
3 = ожидание восстановления
4 = подозреваемый
5 = экстренное реагирование
6 = автономный

Примечание. То же, что state и столбец в sys.databases.
database_state_desc nvarchar(60) database_state Описание реплики доступности.

- ONLINE
- RESTORING
- RECOVERING
- RECOVERY_PENDING
- SUSPECT
- EMERGENCY
- OFFLINE

Примечание. То же, что state_desc и столбец в sys.databases.
is_suspended bit Состояние базы данных. Может принимать одно из следующих значений:

0 = возобновлено
1 = приостановлено
suspend_reason tinyint Если база данных приостановлена, то причина состояния приостановки. Может принимать одно из следующих значений:

0 = действие пользователя
1 = приостановка от партнера
2 = Redo
3 = захват
4 = Применить
5 = перезапуск
6 = Отмена
7 = повторная проверка
8 = ошибка в вычислении точки синхронизации вторичной реплики
suspend_reason_desc nvarchar(60) Описание причины приостановки базы данных. Может принимать одно из следующих значений:

SUSPEND_FROM_USER = пользователь вручную приостановил перемещение данных

SUSPEND_FROM_PARTNER = реплика базы данных приостановлена после принудительной отработки отказа

SUSPEND_FROM_REDO = ошибка произошла во время этапа повторного выполнения

SUSPEND_FROM_APPLY = ошибка при записи журнала в файл (см. журнал ошибок)

SUSPEND_FROM_CAPTURE = произошла ошибка при записи журнала на первичной реплике

SUSPEND_FROM_RESTART = реплика базы данных была приостановлена до перезапуска базы данных (см. журнал ошибок)

SUSPEND_FROM_UNDO = ошибка произошла во время этапа отмены (см. журнал ошибок)

SUSPEND_FROM_REVALIDATION = несоответствие изменений журнала обнаруживается при повторном подключении (см. журнал ошибок)

SUSPEND_FROM_XRF_UPDATE = Не удается найти общую точку журнала (см. журнал ошибок)
recovery_lsn numeric(25,0) На первичной реплике окончание журнала транзакций до того, как база данных-источник запишет новые записи журнала после восстановления или перехода на другой ресурс. Для данной базы данных-получателя, если это значение меньше текущего защищенного LSN (last_hardened_lsn), recovery_lsn является значением, в котором эта база данных-получатель должна будет повторно выполнить повторную синхронизацию (т. е. вернуться к и повторной инициализации). Если это значение больше или равно текущему защищенному LSN, повторная синхронизация будет ненужной и не произойдет.

recovery_lsn отражает идентификатор блока журнала, заполненный нулями. Это не фактический номер последовательности журналов (LSN).
truncation_lsn numeric(25,0) В первичной реплике, применительно к базе данных-источнику, соответствует минимальному номеру LSN для усечения журнала среди всех соответствующих баз данных-получателей. В случае блокировки усечения журнала (например в ходе резервного копирования) данный номер LSN может быть выше локального номера LSN для усечения.

Соответствует точке усечения для заданной базы данных-получателя.

truncation_lsn отражает идентификатор блока журнала, заполненный нулями. Это не фактический номер последовательности журналов.
last_sent_lsn numeric(25,0) Идентификатор блока журнала, указывающий точку, вплоть до которой все блоки журнала были отправлены источником. Это идентификатор следующего блока, который будет отправлен, а не идентификатор последнего, уже отправленного блока.

last_sent_lsn отражает идентификатор блока журнала, заполненный нулями. Это не фактический номер последовательности журналов.
last_sent_time datetime Время отправки последнего блока журнала.
last_received_lsn numeric(25,0) Идентификатор блока журнала, указывающий точку, вплоть до которой все блоки журнала были получены вторичной репликой, на которой размещена эта база данных-получатель.

last_received_lsn отражает идентификатор блока журнала, заполненный нулями. Это не фактический номер последовательности журналов.
last_received_time datetime Отметка времени, когда идентификатор блока журнала в последнем сообщении был прочитан вторичной репликой.
last_hardened_lsn numeric(25,0) Начало блока журнала, содержащего журнальные записи последнего зафиксированного номера LSN на базе данных-получателе.

В базе данных-источнике с асинхронной фиксацией или в базе данных с синхронной фиксацией, настроенной в режиме «задержки», значение равно NULL. Для других баз данных-источника last_hardened_lsn синхронной фиксации указывает минимум защищенного LSN во всех базах данных-получателях.

Примечание.last_hardened_lsn Отражает идентификатор блока журнала, заполненный нулями. Это не фактический номер последовательности журналов.
last_hardened_time datetime В базе данных-получателе время идентификатора блока журнала для последнего защищенного LSN (last_hardened_lsn). В базе данных-источнике соответствует времени минимального фиксированного номера LSN.
last_redone_lsn numeric(25,0) Фактический регистрационный номер транзакции последней записи в журнале, повторенной в базе данных-получателе. last_redone_lsn всегда меньше last_hardened_lsn.
last_redone_time datetime Время повторения последней записи на базе данных-получателе.
log_send_queue_size bigint Объем записей журнала базы данных-источника, которая не была отправлена в базы данных-получатель, в килобайтах (КБ).
log_send_rate bigint Средняя скорость отправки данных первичной реплики в течение последнего активного периода в килобайтах (КБ)/в секунду.
redo_queue_size bigint Объем записей журнала в файлах журнала вторичной реплики, которая еще не была переопределена в килобайтах (КБ).
redo_rate bigint Средняя скорость повторного изменения записей журнала в заданной базе данных-получателе в килобайтах (КБ)/в секунду.

redo_rate вычисляется путем деления общего байта байтов журнала, так как ядро СУБД запускается на период времени, когда повторное выполнение активно выполняется, а не по истечении времени. Так как повтор может не выполняться непрерывно, результирующее значение может отличаться (выше) от значения счетчика Database Replica:Redone Bytes/sec производительности.
filestream_send_rate bigint Скорость, с которой файлы FILESTREAM передаются на вторичную реплику, в килобайтах (КБ)/сек.
end_of_log_lsn numeric(25,0) Номер LSN конца локального журнала. Фактический номер LSN, соответствующий последней записи журнала в кэше журнала на базах данных источника и получателя. В первичной реплике вторичные строки отображают номер LSN конца журнала из последних сообщений о ходе выполнения, переданных вторичными репликами на первичную.

end_of_log_lsn отражает идентификатор блока журнала, заполненный нулями. Это не фактический номер последовательности журналов.
last_commit_lsn numeric(25,0) Фактический регистрационный номер транзакции в журнале, соответствующий последней записи фиксации в журнале транзакций.

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

На вторичной реплике это последняя запись фиксации, которая была повторена.
last_commit_time datetime Время, соответствующее последней записи фиксации.

На базе данных-получателе это время совпадает со временем на базе данных-источнике.

На первичной реплике в строках каждой из баз данных-получателей отображается время, возвращенное первичной реплике с вторичной реплики, на которой размещена соответствующая база данных-получатель. Разница во времени между строкой первичной базы данных и заданной строкой базы данных-получателем представляет приблизительно цель точки восстановления (RPO), предполагая, что процесс повторного выполнения выполняется и что ход выполнения передается первичной реплике вторичной репликой.
low_water_mark_for_ghosts bigint Монотонно увеличивающееся число для базы данных, указывающее низкую метку воды, используемую призраком и сохраняемой очисткой хранилища версий в базе данных-источнике. Если рабочая нагрузка записи выполняется на первичном компьютере, но это число не увеличивается с течением времени, это означает, что очистка фантомного и постоянного хранилища версий может быть сохранена. Чтобы решить, какие фантомные строки и какие версии строк следует очистить, первичная реплика использует минимальное значение этого столбца для этой базы данных во всех репликах (включая первичную реплику).
secondary_lag_seconds bigint Количество секунд, в течение которых вторичная реплика находится за первичной репликой во время синхронизации.

Не применяется к репликам горизонтального масштабирования чтения.

Применимо к: SQL Server 2016 (13.x) и более поздним версиям.
quorum_commit_lsn numeric(25,0) Указано только в ознакомительных целях. Не поддерживается. Будущая совместимость не гарантируется.
quorum_commit_time datetime Указано только в ознакомительных целях. Не поддерживается. Будущая совместимость не гарантируется.

Разрешения

Необходимо разрешение VIEW DATABASE STATE на базу данных.

Замечания

Дополнительные сведения об устранении неполадок с задержкой повтора георепликации в Azure SQL Database см. в статье Troubleshoot geo-replication lag.