sys.dm_hadr_database_replica_states (Transact-SQL)
Возвращает по строке для каждой из баз данных, участвующих в группе доступности AlwaysOn, реплика доступности которой размещена на локальном экземпляре SQL Server. Это динамическое административное представление предоставляет сведения о состоянии первичной и вторичной реплик. На вторичной реплике это представление возвращает по строке для каждой из баз данных-получателей на экземпляре сервера. На первичной реплике это представление возвращает по строке для каждой из баз данных-источников и по дополнительной строке для соответствующих баз данных-получателей.
Важно! |
---|
В зависимости от действия и состояний более высоких уровней, информация о состоянии базы данных может быть недоступной или устаревшей.Кроме того, эти значения имеют смысл только в локальном контексте.Например, в первичной реплике значение столбца last_hardened_lsn отражает сведения о заданной базе данных-получателе, доступные в настоящий момент для первичной реплики, а не фактически зафиксированное значение номера LSN, которое может в настоящий момент иметь вторичная реплика. |
Применимо для следующих объектов: SQL Server (начиная с SQL Server 2012 до текущей версии). |
Имя столбца |
Тип данных |
Описание (в основной реплике) |
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
database_id |
int |
Идентификатор базы данных, который является уникальным в рамках экземпляра SQL Server. Это то же значение, которое отображается в представлении каталога sys.databases. |
||||||||||||
group_id |
uniqueidentifier |
Идентификатор группы доступности, к которой принадлежит база данных. |
||||||||||||
replica_id |
uniqueidentifier |
Идентификатор реплики доступности в группе доступности. |
||||||||||||
group_database_id |
uniqueidentifier |
Идентификатор базы данных из группы доступности. Этот идентификатор совпадает на всех репликах, к которым присоединена эта база данных. |
||||||||||||
is_local |
bit |
Является ли база данных доступности локальной. Может принимать одно из следующих значений: 0 = база данных не локальна по отношению к экземпляру SQL Server. 1 = база данных локальна по отношению к экземпляру сервера. |
||||||||||||
synchronization_state |
tinyint |
Состояние перемещения данных. Может принимать одно из следующих значений:
|
||||||||||||
synchronization_state_desc |
nvarchar(60) |
Одно из следующих описаний состояния перемещения файла. NOT SYNCHRONIZING SYNCHRONIZING SYNCHRONIZED REVERTING INITIALIZING |
||||||||||||
is_commit_participant |
bit |
0 = фиксация транзакции не синхронизирована по отношению к этой базе данных. 1 = фиксация транзакции синхронизирована по отношению к этой базе данных. Для баз данных в реплике доступности асинхронной фиксации это значение всегда равно 0. Что касается базы данных в реплике доступности с синхронной фиксацией, то данное значение является точным только в базе данных-источнике. |
||||||||||||
synchronization_health |
tinyint |
Отражает пересечение состояния синхронизации базы данных, присоединенной к группе доступности реплики доступности, и режима доступности для реплики доступности (в режиме синхронной или асинхронной фиксации). Может принимать одно из следующих значений.
|
||||||||||||
synchronization_health_desc |
nvarchar(60) |
Описание состояния synchronization_health базы данных доступности. NOT_HEALTHY PARTIALLY_HEALTHY HEALTHY |
||||||||||||
database_state |
tinyint |
0 = В сети 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 в sys.databases. |
||||||||||||
is_suspended |
bit |
Состояние базы данных. Может принимать одно из следующих значений: 0 = возобновлено; 1 = приостановлено; |
||||||||||||
suspend_reason |
tinyint |
Если база данных приостановлена, то причина состояния приостановки. Может принимать одно из следующих значений: 0 = В результате действий пользователя 1 = Приостановлена партнером 2 = Повтор 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). Сведения о способе получения данного значения см. в подразделе Основные сведения о значениях столбца 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 соответствует идентификатору блока журнала, дополненному нулями.Это не фактический регистрационный номер транзакции в журнале.Дополнительные сведения см. в подразделе Основные сведения о значениях столбца 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 |
Скорость повтора записей в журнале на заданной базе данных-получателе, в килобайтах (КБ) в секунду. |
||||||||||||
filestream_send_rate |
bigint |
Скорость, с которой файлы FILESTREAM передаются на вторичную реплику, в килобайтах (КБ)/сек. |
||||||||||||
end_of_log_lsn |
numeric(25,0) |
Номер LSN конца локального журнала. Фактический номер LSN, соответствующий последней записи журнала в кэше журнала на базах данных источника и получателя. В первичной реплике вторичные строки отображают номер LSN конца журнала из последних сообщений о ходе выполнения, переданных вторичными репликами на первичную. end_of_log_lsn соответствует идентификатору блока журнала, дополненному нулями. Это не фактический регистрационный номер транзакции в журнале. Дополнительные сведения см. в подразделе Основные сведения о значениях столбца LSN далее в этом разделе. |
||||||||||||
last_commit_lsn |
Numeric(25,0) |
Фактический регистрационный номер транзакции в журнале, соответствующий последней записи фиксации в журнале транзакций. На базе данных-источнике он соответствует последней обработанной записи фиксации. Строки для баз данных-получателей показывают последовательный номер транзакции в журнале, переданный вторичной репликой в первичную. На вторичной реплике это последняя запись фиксации, которая была повторена. |
||||||||||||
last_commit_time |
datetime |
Время, соответствующее последней записи фиксации. На базе данных-получателе это время совпадает со временем на базе данных-источнике. На первичной реплике в строках каждой из баз данных-получателей отображается время, возвращенное первичной реплике с вторичной реплики, на которой размещена соответствующая база данных-получатель. Разница между временем в строке базы данных-источника и заданной строке базы данных-получателя приблизительно соответствует целевому времени восстановления (RTO) при условии, что процесс отслеживания не отстает и о ходе его выполнения вторичная реплика сообщила первичной реплике. |
||||||||||||
low_water_mark_for_ghosts |
bigint |
Непрерывно возрастающее число для базы данных, указывающее метку низкого уровня, которая используется задачей очистки фантомных записей в базе данных-источнике. Если это число с течением времени не увеличивается, то задача очистки фантомных записей, вероятно, не выполняется. Чтобы определить, какие из фантомных строк необходимо очистить, первичная реплика использует минимальное значение данного столбца в этой базе данных по всем репликам доступности (включая первичную реплику). |
Основные сведения о значениях столбца LSN
Значения столбцов end_of_log_lsn, last_hardened_lsn, last_received_lsn, last_sent_lsn, recovery_lsn и truncation_lsn не являются фактическими последовательными номерами транзакций в журнале (номерами LSN). Вместо этого каждое из данных значений представляет идентификатор блока журнала, дополненный нулями.
end_of_log_lsn, last_hardened_lsn и recovery_lsn представляют собой номера LSN, соответствующие записи на диск. Например, last_hardened_lsn указывает на начало следующего блока после блоков, уже записанных на диск. Поэтому любой номер LSN < будет больше значения last_hardened_lsn, представленного на диске. Номера LSN вплоть до значения >= включительно не записаны на диск.
Из всех номеров LSN, возвращаемых sys.dm_hadr_database_replica_states, только last_redone_lsn является реальным номером LSN.
Безопасность
Разрешения
Необходимо разрешение VIEW SERVER STATE на сервере.