Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 С какой периодичностью нужно делать checkdb?  [new]
Гость-трость
Guest
Всем привет.
Подскажите, при обслуживании баз данных, как часто нужно делать checkdb и нужно ли вообще его делать?
29 июл 16, 18:09    [19474593]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
o-o
Guest
Да хоть каждый день (в смысле, каждую ночь)
29 июл 16, 18:22    [19474664]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
Гость-трость
Guest
o-o
Да хоть каждый день (в смысле, каждую ночь)


а если не делать, что будет?
29 июл 16, 19:20    [19474930]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37155
Гость-трость
o-o
Да хоть каждый день (в смысле, каждую ночь)


а если не делать, что будет?
Сюрпризы.
29 июл 16, 19:33    [19474992]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
Гость-трость
Guest
Гавриленко Сергей Алексеевич
Гость-трость
пропущено...


а если не делать, что будет?
Сюрпризы.


Какие ? )
29 июл 16, 21:44    [19475436]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
i-i
Guest
один из ярких примеров - полетели данные, обнаружилось ето через два месяца, когда отчет надо делать на вчера.
29 июл 16, 22:39    [19475657]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37155
Гость-трость
Гавриленко Сергей Алексеевич
пропущено...
Сюрпризы.


Какие ? )
Как правило, неприятные.
29 июл 16, 22:53    [19475713]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
JVF
Member [заблокирован]

Откуда: 87652
Сообщений: 630
Гость-трость
Всем привет.
Подскажите, при обслуживании баз данных, как часто нужно делать checkdb и нужно ли вообще его делать?
делать checkdb не нужно. лучше зеркало настрой.
29 июл 16, 23:55    [19475862]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
denisden
Member

Откуда: Россия Санкт-Петербург
Сообщений: 3
лучше делайте каждый день, если есть такая возможность
31 июл 16, 14:55    [19478747]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
o-o
Guest
JVF
Гость-трость
Всем привет.
Подскажите, при обслуживании баз данных, как часто нужно делать checkdb и нужно ли вообще его делать?
делать checkdb не нужно. лучше зеркало настрой.

любителям зеркал (на все базы) и противникам dbcc checkdb посвящается
Помогите остановить dumping !!!
1 авг 16, 12:17    [19481312]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
komrad
Member

Откуда:
Сообщений: 5516
JVF
Гость-трость
Всем привет.
Подскажите, при обслуживании баз данных, как часто нужно делать checkdb и нужно ли вообще его делать?
делать checkdb не нужно. лучше зеркало настрой.

системные базы не зеркалятся
совет дурацкий

https://www.brentozar.com/archive/2016/02/how-often-should-i-run-dbcc-checkdb/
https://bradmcgehee.com/2010/10/20/how-often-do-you-run-checkdb-against-your-databases/
1 авг 16, 12:54    [19481530]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
o-o
Guest
да вообще, с чего бы вдруг зеркалировать *вообще все базы подряд*, если оно не надо?
только чтобы не делать чекдб? оригинально
в той теме проблемная база была второстепенной важности, но сервер лег весь.
так типа давайте лучше настроим зеркало pub-у, но ни за что не будем проверять?
1 авг 16, 13:02    [19481573]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31783
o-o
да вообще, с чего бы вдруг зеркалировать *вообще все базы подряд*, если оно не надо?
только чтобы не делать чекдб? оригинально
А с чего зеркалирование заменит checkdb?
Ну, будут 2 битые базы - основная и зеркальная, чем это хорошо, что их две?
1 авг 16, 16:43    [19483059]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
o-o
Guest
alexeyvg
o-o
да вообще, с чего бы вдруг зеркалировать *вообще все базы подряд*, если оно не надо?
только чтобы не делать чекдб? оригинально
А с чего зеркалирование заменит checkdb?
Ну, будут 2 битые базы - основная и зеркальная, чем это хорошо, что их две?

вероятность того, что 2 независимые базы на двух разных серверах одновременно побьются конечно не 0,
но что-то вроде того.
при зеркалировании передается лог, а не страницы данных, поэтому битые страницы не пролезут на зеркало.
хотя на самом зеркале независимо от принципала может конечно случиться все что угодно.
поэтому в решении с зеркалом надо делать чекдб обеим базам
Randal
The crux of the matter lies in understanding how the mirror database is maintained.
Corruption would certainly be propagated to the mirror if the underlying synchronization mechanism copied complete database pages
from the principal to the mirror database.
A corrupt page from the principal would then be placed in the mirror.

However, database mirroring specifically avoids this because it doesn’t copy database pages from one database to the other.
Database mirroring works by copying the transaction log records from the principal database to the mirror.
Transaction log records describe physical changes made to database pages, and do not contain the actual pages themselves.
(For a complete explanation of transaction log records,
logging and recovery see my article from February 2009: “ Understanding Logging and Recovery in SQL Server.”)

Even if a database page is corrupted by the underlying I/O subsystem of the principal database,
there’s no way for that corruption to directly propagate to the mirror database.
The worst that could possibly happen is if SQL Server doesn’t detect a page corruption (because page checksums are not enabled),
and a corrupt column value is used to calculate a value stored in the database.
The resulting incorrect result would be propagated to the mirror database—a second-order corruption effect.
As I mentioned, if page checksums are enabled, such corruption would be detected when the page is read from disk,
and the second-order corruption would not occur.

This behavior also explains why running a consistency check on the principal database
doesn’t yield any information about the consistency state of the mirror database and vice-versa.
They are two separate databases kept synchronized by shipping descriptions of physical changes to the database,
not the actual database pages.
1 авг 16, 16:59    [19483155]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
komrad
Member

Откуда:
Сообщений: 5516
alexeyvg
o-o
да вообще, с чего бы вдруг зеркалировать *вообще все базы подряд*, если оно не надо?
только чтобы не делать чекдб? оригинально
А с чего зеркалирование заменит checkdb?
Ну, будут 2 битые базы - основная и зеркальная, чем это хорошо, что их две?

идея, наверно, построена на том, что сиквел возьмет не битый блок данных с зеркальной базы, если на основной бд этот блок поврежден

https://www.mssqltips.com/sqlservertip/3660/sql-server-database-mirroring-automatic-page-repair/
1 авг 16, 17:00    [19483156]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31783
o-o
вероятность того, что 2 независимые базы на двух разных серверах одновременно побьются конечно не 0,
но что-то вроде того.
при зеркалировании передается лог, а не страницы данных, поэтому битые страницы не пролезут на зеркало.
хотя на самом зеркале независимо от принципала может конечно случиться все что угодно.
ИМХО вероятность 100% :-)

Если вообще возникают нарушения целостности (из за багов сиквела, ос или железа), то они обнаруживаются не сразу. А потом, может, через полгодика-годик.
И на зеркале они возникнут и обнаружатся тогда же (вот именно, "независимо от принципала").
И бакапы уже с битыми страницами.

Единственно, имея зеркало, больше вероятности, что вы выковыряете нужные данные, т.к. ошибки наверняка будут в разных страницах.
o-o
поэтому в решении с зеркалом надо делать чекдб обеим базам
Вот именно.

И тогда зеркало будет очень кстати, потому что действительно вероятность одновременной ошибки невелика, а "битые страницы не пролезут на зеркало". Поэтому можно будет спокойно восстановиться с зеркала.
1 авг 16, 17:30    [19483331]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31783
komrad
alexeyvg
А с чего зеркалирование заменит checkdb?
Ну, будут 2 битые базы - основная и зеркальная, чем это хорошо, что их две?

идея, наверно, построена на том, что сиквел возьмет не битый блок данных с зеркальной базы, если на основной бд этот блок поврежден
Идея в том, что на зеркале будут свои ошибки целостности базы.
1 авг 16, 17:31    [19483335]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
komrad
Member

Откуда:
Сообщений: 5516
alexeyvg
komrad
пропущено...

идея, наверно, построена на том, что сиквел возьмет не битый блок данных с зеркальной базы, если на основной бд этот блок поврежден
Идея в том, что на зеркале будут свои ошибки целостности базы.

:)
1 авг 16, 17:48    [19483403]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
odisssey
Member

Откуда:
Сообщений: 64
заджобить чтоб выполнялась каждую ночь, если позволяют ресурсы.
1 авг 16, 18:42    [19483639]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 892
ну если бд большая, то можно проверять с параметром physical_only, которая проверяет только на уровне железа целостность, что сокращает использование ресурсов и времени проверки бд.
ну а в джоб на ежедневное никто вам не мешает это сделать.
2 авг 16, 11:29    [19485747]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
JVF
Member [заблокирован]

Откуда: 87652
Сообщений: 630
Slava_Nik
ну если бд большая, то можно проверять с параметром physical_only, которая проверяет только на уровне железа целостность
а разве бекап не проверяет страницы перед копирование?
2 авг 16, 18:53    [19489037]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31783
JVF
Slava_Nik
ну если бд большая, то можно проверять с параметром physical_only, которая проверяет только на уровне железа целостность
а разве бекап не проверяет страницы перед копирование?
Нет.
Ни бакап, ни рестор.
Страницы бьются, искажаются, бакапы с ними записываются, перетирают старые бакапы.
А потом, через полгода, когда уже куча битых страниц, на безобидном селекте происходит ошибка.
2 авг 16, 22:26    [19490018]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31783
alexeyvg
JVF
а разве бекап не проверяет страницы перед копирование?
Нет.
Ни бакап, ни рестор.
Собственно, это и правильно. Не надо, что бы ещё и бакап-рестор перестали работать.
И зачем, когда есть команда для проверки, зачем её интегрировать в команду бакапа? К тому же она небыстрая, а длявспомогательных целей иногда нужно сделать бакапы часто.
2 авг 16, 22:28    [19490034]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
JVF
Member [заблокирован]

Откуда: 87652
Сообщений: 630
alexeyvg
alexeyvg
пропущено...
Нет.
Ни бакап, ни рестор.
Собственно, это и правильно. Не надо, что бы ещё и бакап-рестор перестали работать.
И зачем, когда есть команда для проверки, зачем её интегрировать в команду бакапа? К тому же она небыстрая, а длявспомогательных целей иногда нужно сделать бакапы часто.
Почему-бы и нет? Я на Оракле вырос. Там RMAN делает проверки и забрасывает коррупты в алерт лог. К тому-же там принято бекапить не примари базу, а стендбай (зеркало). Хотя команда тоже есть специальная - dbverify.
2 авг 16, 22:46    [19490123]     Ответить | Цитировать Сообщить модератору
 Re: С какой периодичностью нужно делать checkdb?  [new]
JVF
Member [заблокирован]

Откуда: 87652
Сообщений: 630
alexeyvg
JVF
пропущено...
а разве бекап не проверяет страницы перед копирование?
Нет.
Ни бакап, ни рестор.
Страницы бьются, искажаются, бакапы с ними записываются, перетирают старые бакапы.
А потом, через полгода, когда уже куча битых страниц, на безобидном селекте происходит ошибка.
Такого я даже у dBase не помню =). Там максимум ломались индексы. Лечилось переиндексацией.
2 авг 16, 22:49    [19490144]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить