Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема ОФФ Диагностика базы sql сервера. (число прочтений - 4697 )
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
ОФФ Диагностика базы sql сервера.
18. Ноября 2006 :: 12:51
Печать  
Сегодня с утра пользователи 1С не смогли попасть в программу, вероятно просто не устанавливалось соединение с базой данных (меня в это время не было на месте, по этому воспроизвожу со слов помошника). Было принято решение произвести перезагрузку SQL сервера, после чего программа заработала.
Сейчас просматриваю логии, в которых до перезагрузки отражались следующие ошибка:

I/O error 21(Устройство не готово.) detected during write at offset 0x0000004b3c4000 in file 'E:\DataBase\sql1c_Data.MDF'.
Эта ошибка записывалась в те моменты когда была попытка выгрузки данных для перифирийной базы (производится по расписаниию)

После перезагрузки следующие сообщения:
Выполнен запуск MS DTC со следующими настройками.


Настройки безопасности (OFF = 0, ON = 1):

     Сетевое администрирование транзакций = (null),

     Сетевые клиенты = (null),

     Распределенные транзакции через внутренний протокол MSDTC = (null),

     Протокол TIP = (null),

     Транзакции XA = (null).

Server Process ID is 1136.
The description for Event ID ( 17176 ) in Source ( MSSQLSERVER ) could not be found. It contains the following insertion string(s): .
1132
18.11.2006 9:05:17
18.11.2006 6:05:17
SQL Server is starting at priority class 'normal'(4 CPUs detected).
SQL Server configured for thread mode processing.
Using dynamic lock allocation. [2500] Lock Blocks, [5000] Lock Owner Blocks.
The description for Event ID ( 1002 ) in Source ( APCPBEAgent ) could not be found. It contains the following insertion string(s): .
"Communications Established"
SuperSocket info: (SpnRegister) : Error 1355.

Analysis of database 'sql1c' (7) is 8% complete (approximately 2 more seconds)
3450 :
Recovery of database 'sql1c' (7) is 0% complete (approximately 56 more seconds) (Phase 2 of 3).

845 transactions rolled forward in database 'sql1c' (7).

На сколько я понял файл базы данных был поврежден, и система произведя при запуске диагностику восстановила его.
Как и чем еще можно проверить состояние базы ?

Что касается причины: то как выяснилось , вчера вечером, мой помошник проявив инициативу решил проверить chkdsk –ом E – диск sql сервера, где как раз и находился файл базы данных, именно с этого момента и пошли ошибки в журнале событий.
Из 1С я запустил тестирование и исправление базы 1С.
Но я не уверен что этого достаточно, какие еще меры предпринять?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ОФФ Диагностика базы sql сервера.
Ответ #1 - 18. Ноября 2006 :: 13:07
Печать  
При chkdsk с ключом /f том отмонтируется, файловые дескрипторы становятся невалидными..
Если бы SQL Server не был уверен в качестве восстановления, база была бы в состоянии suspect. Для собственной уверенности запусти dbcc checkdb. И права админские у помощника отбери.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: ОФФ Диагностика базы sql сервера.
Ответ #2 - 19. Ноября 2006 :: 10:54
Печать  
(1) Он запускал chkdsk /f /r - не ос тановив службы sql - сервера.

Ну а если с остановленным sql сервером можно проверять диски?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ОФФ Диагностика базы sql сервера.
Ответ #3 - 20. Ноября 2006 :: 09:56
Печать  
dimm73 писал(а) 19. Ноября 2006 :: 10:54:
Ну а если с остановленным sql сервером можно проверять диски?

Да.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ОФФ Диагностика базы sql сервера.
Ответ #4 - 20. Ноября 2006 :: 10:05
Печать  
berezdetsky писал(а) 20. Ноября 2006 :: 09:56:
dimm73 писал(а) 19. Ноября 2006 :: 10:54:
Ну а если с остановленным sql сервером можно проверять диски?

Да.

А вот, кстати, такой теоретический вопрос.

Предположим, chkdsk нашел проблему физического носителя как раз в файле базы данных или в файле журнала.
"Исправил" ее.

Сам файл при этом не потерян.
Но и информация в нем не 100% достоверная (ну, это как восстановления файла excel на дискете - bad sector отремапили, но информацию в нем потеряли - файл не открывается).

berezdetsky
Как ты думаешь (или может по опыту).
Как отреагирует sql server? Поместит базу в suspect или вообще начнет падать?
Как эту проблему отдиагностировать средствами sql server? DBCC CHECKDB?

P.S.
Мне бы было не по себе, я бы пошел за архивом...
  

De quelle planète es-tu?
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ОФФ Диагностика базы sql сервера.
Ответ #5 - 20. Ноября 2006 :: 11:02
Печать  
Если torn page detection не отключен, то при обращении к битым страницам сервер переводит базу в suspect. Если отключен - сервер падать не будет (по крайней мере, у меня не получилось его уронить таким способом); а вот клиент начинает получать разного рода сообщения об ошибках или не находит только что записанные данные - как повезёт.

Архив, конечно, лучшее решение. За неимением - перевод базы в emergency mode и импорт оставшихся данных. checkdb не всегда может вернуть базу в 100% рабочее состояние после torn page.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ОФФ Диагностика базы sql сервера.
Ответ #6 - 20. Ноября 2006 :: 11:33
Печать  
Точно, про torn page detection я забыл. А без этого действительно - смотря куда пуля попадет, можно сразу и не заметить. Спасибо.

Тогда это нормальная стратегия: torn page detection позволяет отследить  момент, когда диск или контроллер откажет, а дальше - архив.

Вот еще только что нашел, что в sql 2005 возможена проверка контрольных сумм страниц.
Тоже, видимо, отличная возможность.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать