Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Отставание в mirroring  [new]
Rop
Member

Откуда:
Сообщений: 11
Доброго времени суток!
Возник интересный вопрос: А каково отставание (по времени) БД зеркала от БД источника?

Стандартных вещей не нашел (или не увидел).
Начал копать нестандартные. Пытался пойти через время LSN, поскольку номер зафиксированной LSN могу найти. Даже отыскал время, когда записываются те или иные LSN.
Но вот где застрял:
LSN вида: 2546040000004759500001 не могу преобразовать в вид: 0026d97d:000b71c7:0002

Не подскажете, как можно преобразовать?

Microsoft SQL Server 2005 - 9.00.4211.00 (X64)
Jan 30 2009 13:38:52
Copyright (c) 1988-2005 Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.0 (Build 6002: Service Pack 2)
14 дек 09, 18:17    [8065526]     Ответить | Цитировать Сообщить модератору
 Re: Отставание в mirroring  [new]
pr0ger
Member

Откуда: Москва
Сообщений: 1933
В каком режиме работает зеркалирование?
14 дек 09, 18:56    [8065655]     Ответить | Цитировать Сообщить модератору
 Re: Отставание в mirroring  [new]
Rop
Member

Откуда:
Сообщений: 11
Зеркало работает в режиме высокой производительности (Asynchronous)
15 дек 09, 10:56    [8067491]     Ответить | Цитировать Сообщить модератору
 Re: Отставание в mirroring  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10716
Блог
Обратная задача описана тут: http://www.sqlservercentral.com/Forums/Topic115813-8-1.aspx#bm115950
15 дек 09, 12:09    [8068095]     Ответить | Цитировать Сообщить модератору
 Re: Отставание в mirroring  [new]
Rop
Member

Откуда:
Сообщений: 11
Все нашел.
В системной хранимой процедуре sp_dbmmonitorresults есть поле time_behind
Описание поля:
Приблизительное системное время основного сервера, с которым синхронизирована зеркальная база данных. Это значение имеет смысл только на экземпляре основного сервера.

Беру разницу дат между этим полем и текущей датой и получаю требуемое :)

З.Ы. Значение поля time_behind можно выдернуть из таблички dbm_monitor_data (база msdb) поле time


тему можно закрывать!
Всем спасибо за внимание
15 дек 09, 12:38    [8068348]     Ответить | Цитировать Сообщить модератору
 Re: Отставание в mirroring  [new]
Rop
Member

Откуда:
Сообщений: 11
Александр Гладченко
Обратная задача описана тут: http://www.sqlservercentral.com/Forums/Topic115813-8-1.aspx#bm115950


Она описана, но скрипт процедуры Lsn2Dec нерабочий. Там идет переполнение переменной.
Побороть переполнение так и не смог :(
15 дек 09, 12:42    [8068386]     Ответить | Цитировать Сообщить модератору
 Re: Отставание в mirroring  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10716
Блог
Rop
Александр Гладченко
Обратная задача описана тут: http://www.sqlservercentral.com/Forums/Topic115813-8-1.aspx#bm115950


Она описана, но скрипт процедуры Lsn2Dec нерабочий. Там идет переполнение переменной.
Побороть переполнение так и не смог :(


Ну, это не проблема :) например так:

declare @lsn decimal, @hvost char(5),@hexlsn char(22) = '0026d97d:000b71c7:0002'
select @lsn = master.dbo.HexToInt(convert(nchar,left(@hexlsn,patindex('%:%',@hexlsn)-1)))
select @lsn = @lsn * 10000000000
select @lsn = @lsn + master.dbo.HexToInt(substring(@hexlsn,patindex('%:%',@hexlsn)+1,charindex(':', @hexlsn,patindex('%:%',@hexlsn)+1)-patindex('%:%',@hexlsn)-1))
select @lsn
SELECT @hvost = CAST(master.dbo.HexToInt(substring(@hexlsn,charindex(':', @hexlsn,patindex('%:%',@hexlsn)+1)+1,len(@hexlsn))) AS CHAR)
SELECT CASE LEN(@hvost)
            WHEN 1 THEN CAST(@lsn AS varchar) + '0000' + @hvost
            WHEN 2 THEN CAST(@lsn AS varchar) + '000' + @hvost
            WHEN 3 THEN CAST(@lsn AS varchar) + '00' + @hvost
            WHEN 4 THEN CAST(@lsn AS varchar) + '0' + @hvost
            WHEN 5 THEN CAST(@lsn AS varchar) + @hvost
            END
15 дек 09, 12:48    [8068446]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить