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

Откуда:
Сообщений: 192
Можно ли выполнить dbcc checkdb без использования блокировок, т.к. бд использует в ПО и останавливать это ПО для проведения проверки очень нежелательно, но проверить нужно. Как выполнить проверку бд в таком случае ?
7 май 18, 06:34    [21391933]     Ответить | Цитировать Сообщить модератору
 Re: DBCC Checkdb для бд используемой в ПО  [new]
aleks222
Member

Откуда:
Сообщений: 847
1. Делаешь бякап.
2.Восстанавливаешь бякап в левую базу.
3. Проверяешь.
7 май 18, 07:44    [21391954]     Ответить | Цитировать Сообщить модератору
 Re: DBCC Checkdb для бд используемой в ПО  [new]
aleksrov
Member

Откуда:
Сообщений: 948
ev-kov,

При чекдб делается снапшот, блокировок нет. Есть доп. нагрузка на систему, поэтому лучше делать когда нагрузка минимальна.
7 май 18, 08:29    [21391982]     Ответить | Цитировать Сообщить модератору
 Re: DBCC Checkdb для бд используемой в ПО  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30702
aleks222
1. Делаешь бякап.
2.Восстанавливаешь бякап в левую базу.
3. Проверяешь.
Ага, к тому же при этом проверяется бакап, что очень полезно.
7 май 18, 12:48    [21392782]     Ответить | Цитировать Сообщить модератору
 Re: DBCC Checkdb для бд используемой в ПО  [new]
aleksrov
Member

Откуда:
Сообщений: 948
alexeyvg,

Это конечно полезно. Но ТС спрашивал про блокировки, а ответ aleks222 подразумевает типа "да, блокировки есть, чтобы не останавливать работу делай так", что разумеется неверно.
Чек можно и нужно делать на рабочей БД, также как нужно проверять резервные копии.
7 май 18, 12:52    [21392815]     Ответить | Цитировать Сообщить модератору
 Re: DBCC Checkdb для бд используемой в ПО  [new]
aleks222
Member

Откуда:
Сообщений: 847
aleksrov
alexeyvg,

Это конечно полезно. Но ТС спрашивал про блокировки, а ответ aleks222 подразумевает типа "да, блокировки есть, чтобы не останавливать работу делай так", что разумеется неверно.
Чек можно и нужно делать на рабочей БД, также как нужно проверять резервные копии.


1. Ээээ... существуют обстоятельства, когда снапшот не могет сделаться. Я видел этот ужос.
2. В момент изготовления снапшота, может блокировок и нету, хотя как без них? Но для ПО это будет тяжким ударом.
3. Бякап, в этом смысле, гуменнее. Да и его, все равно, делают.
7 май 18, 13:55    [21393104]     Ответить | Цитировать Сообщить модератору
 mssql 2005, log shipping и full backup  [new]
ev-kov
Member

Откуда:
Сообщений: 192
aleks222
aleksrov
alexeyvg,

Это конечно полезно. Но ТС спрашивал про блокировки, а ответ aleks222 подразумевает типа "да, блокировки есть, чтобы не останавливать работу делай так", что разумеется неверно.
Чек можно и нужно делать на рабочей БД, также как нужно проверять резервные копии.


1. Ээээ... существуют обстоятельства, когда снапшот не могет сделаться. Я видел этот ужос.
2. В момент изготовления снапшота, может блокировок и нету, хотя как без них? Но для ПО это будет тяжким ударом.
3. Бякап, в этом смысле, гуменнее. Да и его, все равно, делают.


Например выполняю только dbcc checkdb (namedb), блокировки в таком варианте отсутствуют (tablock не указан).
Будет попытка создать снапшот, бд большая и в неё круглосуточно пишет ПО и оно может начать вылетать по таймауту, так ?

Создание бекапа такой бд приведет также к вылетам ПО по таймауту.
ПО многомашинное, есть возможность вывести ПО на этом сервере из работы и провести необходимые проверки не мешая работе ПО.
8 май 18, 10:00    [21394865]     Ответить | Цитировать Сообщить модератору
 Re: DBCC Checkdb для бд используемой в ПО  [new]
invm
Member

Откуда: Москва
Сообщений: 9114
ev-kov
Будет попытка создать снапшот, бд большая и в неё круглосуточно пишет ПО и оно может начать вылетать по таймауту, так ?
Создание снепшота, это не создание полной копии исходной БД. Читайте документацию, - там описано как работает database snapshot.
ev-kov
Создание бекапа такой бд приведет также к вылетам ПО по таймауту.
Создание бекапа вовсе не означает, что БД будет недоступна до момента его окончания. Опять же, - читайте документацию.
8 май 18, 10:23    [21394921]     Ответить | Цитировать Сообщить модератору
 Re: DBCC Checkdb для бд используемой в ПО  [new]
Eleanor
Member

Откуда:
Сообщений: 2618
ev-kov
Бякап, в этом смысле, гуменнее. Да и его, все равно, делают...
Создание бекапа такой бд приведет также к вылетам ПО по таймауту

Т.е. вы вообще не делаете бэкапы БД?
Зачем тогда делать checkdb? Checkdb может показать такие ошибки в БД, что восстановиться можно будет только из бэкапа.
8 май 18, 12:06    [21395445]     Ответить | Цитировать Сообщить модератору
 Re: DBCC Checkdb для бд используемой в ПО  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30702
aleksrov
alexeyvg,

Это конечно полезно. Но ТС спрашивал про блокировки, а ответ aleks222 подразумевает типа "да, блокировки есть, чтобы не останавливать работу делай так", что разумеется неверно.
Чек можно и нужно делать на рабочей БД, также как нужно проверять резервные копии.
Да-да, я просто показал дополнительные преимущества проверки на отдельной копии. Для штатной проверки по расписанию это разумнее, т.к. заодно проверяется бакап, чего многие не делают, а зря.

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

Точности ради, блокировки при чекдб тоже есть, просто очень специфические. Например, предполагаю (проверять лень), что нельзя добавить к базе файл, или нельзя сделать файлгруппу рид-онли (что требует перевода в сингл), или, может быть, даже нельзя добавить секцию в таблицу.
ev-kov
Создание бекапа такой бд приведет также к вылетам ПО по таймауту.
Бакап, конечно, создаёт дополнительную нагрузку, но тут ведь нет других вариантов, всё равно делать надо? Или у вас такая специфика системы, что базу можно в любой момент удалить, а пользователи этого не заметят и продолжат работать?

А что бы бакап не мешал пользователям, его производят в период наименьшей нагрузки, и делают на отдельный дисковый массив.
8 май 18, 14:07    [21395903]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить