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

Откуда:
Сообщений: 228
Может кто-нибудь подскажет как можно вычислить(получить) checksum для страницы?
22 фев 12, 15:48    [12137954]     Ответить | Цитировать Сообщить модератору
 Re: CHECKSUM для страниц  [new]
Glory
Member

Откуда:
Сообщений: 104751
Прочитать содержимое и вычислить по любимому алгортму ?
22 фев 12, 16:03    [12138100]     Ответить | Цитировать Сообщить модератору
 Re: CHECKSUM для страниц  [new]
=Ozzy=
Member

Откуда:
Сообщений: 228
Glory,
Здесь то и вопрос какие данные брать для checksum. Структура страницы большая и на детальное изучение нет времени. Надеялся что есть стандартное sql решение для checksum страницы. Для внутренних дел она же как то вычисляется. Найти бы как и что используется.
22 фев 12, 16:08    [12138150]     Ответить | Цитировать Сообщить модератору
 Re: CHECKSUM для страниц  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
=Ozzy=
Glory,
Здесь то и вопрос какие данные брать для checksum. Структура страницы большая и на детальное изучение нет времени. Надеялся что есть стандартное sql решение для checksum страницы. Для внутренних дел она же как то вычисляется. Найти бы как и что используется.
Ничего у вас не выйдет, потому что записи свободно могут переезжать со страницы на страницу. И вообще, зачем именно по страницам? Чем по записям не устраивает? checksum(*) или checksumm_agg() и вперед.
22 фев 12, 16:27    [12138312]     Ответить | Цитировать Сообщить модератору
 Re: CHECKSUM для страниц  [new]
=Ozzy=
Member

Откуда:
Сообщений: 228
Гавриленко Сергей Алексеевич,
Что значит что могут переезжать? checksum мне нужна для моих личных целей и это статическая информация в текущий момент времени. Как бы потом они не переезжали у меня есть checksum. Например перед backup я получил все checksum и запомнил, а после restore получил checksum и сравнил.
22 фев 12, 16:36    [12138396]     Ответить | Цитировать Сообщить модератору
 Re: CHECKSUM для страниц  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
=Ozzy=
Гавриленко Сергей Алексеевич,
Что значит что могут переезжать?
Вы про расщепление страниц что-либо слышали? А представляете себе, что происходит при ребилдах всяких?
22 фев 12, 16:40    [12138431]     Ответить | Цитировать Сообщить модератору
 Re: CHECKSUM для страниц  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
И, как бы, неплохо было бы ваши цели огласить.
22 фев 12, 16:42    [12138454]     Ответить | Цитировать Сообщить модератору
 Re: CHECKSUM для страниц  [new]
=Ozzy=
Member

Откуда:
Сообщений: 228
Цель простая. Проверить содержимое базы до backup и сравнить с содержимым после restore. Естсественно это могут быть данные не только таблиц, но и индексы например. Получить какой нибудь hash базы на backup и сравнить его с hash на restore. 100% попадания не нужно. Просто примитивная проверка что восстановили "вроде бы" то.
22 фев 12, 17:20    [12138795]     Ответить | Цитировать Сообщить модератору
 Re: CHECKSUM для страниц  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
=Ozzy=
Цель простая. Проверить содержимое базы до backup и сравнить с содержимым после restore. Естсественно это могут быть данные не только таблиц, но и индексы например. Получить какой нибудь hash базы на backup и сравнить его с hash на restore. 100% попадания не нужно. Просто примитивная проверка что восстановили "вроде бы" то.
При бэкапе в бэкап база попадает по состоянию не "до backup", а по состоянию на момент окончания бэкапа. Поэтому оно может не совпадать с содержимым полсе restore по естественным причинам.

Вообще, можно по lsn. Если транзакций в базе не было, то и изменений быть не должно.
22 фев 12, 17:24    [12138817]     Ответить | Цитировать Сообщить модератору
 Re: CHECKSUM для страниц  [new]
=Ozzy=
Member

Откуда:
Сообщений: 228
Гавриленко Сергей Алексеевич,
Насчет несоответствия это понятно. Но тут не нужна 100% точность. Это больше для тестирования, когда база без нагрузки. Для QA чтоб тестили работоспособность кода. Но строчка в БД с LSN может быть, а вот данные "чудесным образом" пропали. Понятное дело, что большого толка нет от любой проверки. Но все же что то вроде варианта взять все записи вычислись для них checksum, а потом сравнить.
22 фев 12, 17:40    [12138885]     Ответить | Цитировать Сообщить модератору
 Re: CHECKSUM для страниц  [new]
Glory
Member

Откуда:
Сообщений: 104751
=Ozzy=
Здесь то и вопрос какие данные брать для checksum.

Все и брать. Иначе, что это за checksum будет ?
22 фев 12, 19:05    [12139281]     Ответить | Цитировать Сообщить модератору
 Re: CHECKSUM для страниц  [new]
Glory
Member

Откуда:
Сообщений: 104751
=Ozzy=
Насчет несоответствия это понятно. Но тут не нужна 100% точность. Это больше для тестирования, когда база без нагрузки. Для QA чтоб тестили работоспособность кода. Но строчка в БД с LSN может быть, а вот данные "чудесным образом" пропали. Понятное дело, что большого толка нет от любой проверки. Но все же что то вроде варианта взять все записи вычислись для них checksum, а потом сравнить.

А зачем для этого checksum страницы то ?
Если вы ищите "пропавшие" данные, то checksum данных недостаточно что ли ?
22 фев 12, 19:06    [12139287]     Ответить | Цитировать Сообщить модератору
 Re: CHECKSUM для страниц  [new]
Raoul
Member

Откуда:
Сообщений: 177
=Ozzy=
Проверить содержимое базы до backup и сравнить с содержимым после restore.

Еще вариант - добавить во все нужные таблицы колонку с timestamp и сравнивать по @@DBTS и числу записей в таблицах. По идее, в случае объемных таблиц это будет быстрее, чем вычислять контрольную сумму по всей таблице.
22 фев 12, 20:22    [12139651]     Ответить | Цитировать Сообщить модератору
 Re: CHECKSUM для страниц  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
=Ozzy=
Получить какой нибудь hash базы на backup и сравнить его с hash на restore. 100% попадания не нужно. Просто примитивная проверка что восстановили "вроде бы" то.

Проверка на то, что тот кто делал restore выбрал правильный файл бэкапа?
=Ozzy=
Гавриленко Сергей Алексеевич,
Но строчка в БД с LSN может быть, а вот данные "чудесным образом" пропали.

В таком случае можете смело заводить тикет на майкрософт с доказательствами, что у них совсем уж глючный продукт. А именно, изменения данных не логируются.
У вас там QA что тестят. Ваш софт или SQL Server? :)
22 фев 12, 21:42    [12139922]     Ответить | Цитировать Сообщить модератору
 Re: CHECKSUM для страниц  [new]
=Ozzy=
Member

Откуда:
Сообщений: 228
Mind,
Мой софт должны тестировать. И это провера только для того, чтобы убедиться что "вроде бы" то восстановлено и данные не потеряны. Но опять же кроме самих данных в таблицах могут быть например индексы и др.
23 фев 12, 11:48    [12141468]     Ответить | Цитировать Сообщить модератору
 Re: CHECKSUM для страниц  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
=Ozzy=,
Данные, индексы и прочее не могут потеряться при операции backup/restore, если конечно у вас все в порядке с дисками, памятью и прочим. Но даже если файл бэкапа будет попорчен, то база скорее всего не восстановится совсем, с соответствующей ошибкой.

Т.е. все таки тестируем backup/restore операцию.
23 фев 12, 21:28    [12143819]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить