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

Откуда:
Сообщений: 1368
Какие причины появления битых страниц могут быть и были у вас? кроме аппаратного
У меня битая таблица, точнее две, с ошибкой:
7986 - System table pre-checks: Object ID 3 has cross-object chain linkage. Page (1:14443644) points to (1:14444136) in alloc unit ID 72058460119760896 (should be 196608). Check statement terminated due to unrepairable error."

одну таблицу удалили, теперь ошибка:
Msg 7984, Level 16, State 1, Line 1
System table pre-checks: Object ID 3. Page (1:14444136) has unexpected page type 2. Check statement terminated due to unrepairable error.
DBCC results for 'table'.
CHECKDB found 0 allocation errors and 0 consistency errors in database 'db'.
.
ошибок с оборудованием нет, на СХД так же нет ошибок.
21 янв 13, 11:32    [13801513]     Ответить | Цитировать Сообщить модератору
 Re: причины появления битых страниц  [new]
Crimean
Member

Откуда:
Сообщений: 13147
"жесткие" рестарты или сервиса или всего хоста
особенно "ресетом" или выключением питания
21 янв 13, 11:35    [13801538]     Ответить | Цитировать Сообщить модератору
 Re: причины появления битых страниц  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31990
смотрю_тут
Какие причины появления битых страниц могут быть и были у вас? кроме аппаратного
Про другие причины не слышал, даже в бета-версиях. Движок всё таки досаточно надёжен, файлы не портит.
21 янв 13, 11:35    [13801541]     Ответить | Цитировать Сообщить модератору
 Re: причины появления битых страниц  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31990
Crimean
"жесткие" рестарты или сервиса или всего хоста
особенно "ресетом" или выключением питания
Так ведь из лога накатит?
21 янв 13, 11:36    [13801547]     Ответить | Цитировать Сообщить модератору
 Re: причины появления битых страниц  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
любой HEX-редактор, как вариант
21 янв 13, 11:48    [13801678]     Ответить | Цитировать Сообщить модератору
 Re: причины появления битых страниц  [new]
Гость333
Member

Откуда:
Сообщений: 3683
alexeyvg
Crimean
"жесткие" рестарты или сервиса или всего хоста
особенно "ресетом" или выключением питания
Так ведь из лога накатит?

А если включено кэширование записи и нет BBU?
21 янв 13, 12:05    [13801857]     Ответить | Цитировать Сообщить модератору
 Re: причины появления битых страниц  [new]
Crimean
Member

Откуда:
Сообщений: 13147
на ранних версиях сиквела было пару раз когда сервис стопился по стопу ОС, а не по стопу сиквела "такое"
разница есть в логах. сообщения отличаются да и для любого сервиса это разные команды. "принято" когда сервис стопится "как сервис" - останавливаться "корректно", когда стопится "стопом ОС" - закрываться "в аварийном режиме" ибо вот-вот вообще все накроется
21 янв 13, 12:15    [13801954]     Ответить | Цитировать Сообщить модератору
 Re: причины появления битых страниц  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31990
Гость333
alexeyvg
пропущено...
Так ведь из лога накатит?

А если включено кэширование записи и нет BBU?
Это уже называется "аппаратными проблемами"

ТС же предположил, что со стороны железа ошибок быть не может, вот я это ставлю под сомнение.

Ну конечно, гарантию 146% дать нельзя, могут быть и ошибки сиквела, пусть я про такое и не слышал...
21 янв 13, 12:20    [13801989]     Ответить | Цитировать Сообщить модератору
 Re: причины появления битых страниц  [new]
смотрю_тут
Member

Откуда:
Сообщений: 1368
а теперь ошибка, когда вторая таблица удалилась:
Msg 7984, Sev 16, State 1, Line 1 : System table pre-checks: Object ID 3. Page (1:14444136) has unexpected page type 2. Check statement terminated due to unrepairable error. [SQLSTATE 42000]
Msg 2536, Sev 16, State 1, Line 1 : DBCC results for 'db'. [SQLSTATE 01000]
Msg 8989, Sev 16, State 1, Line 1 : CHECKDB found 0 allocation errors and 0 consistency errors in database 'db'. [SQLSTATE 01000]
и checkdb не проходит , отвалиивается после 2-3 минут после начала.

изначально то ошибка говорила, что одна страница принадлежит двум таблицам, таблицу удалили, теперь ошибка другая.
21 янв 13, 12:21    [13801995]     Ответить | Цитировать Сообщить модератору
 Re: причины появления битых страниц  [new]
Crimean
Member

Откуда:
Сообщений: 13147
ошибки сиквела также могли быть. к примеру, в R2 до какого-то фикса он-лайн индексация разваливала данные
без физического повреждения, правда, но изменения переставали быть транзакционными
очень "доставляло"
так что вовсе не исключено что определенные расклады и физику били
21 янв 13, 12:23    [13802010]     Ответить | Цитировать Сообщить модератору
 Re: причины появления битых страниц  [new]
смотрю_тут
Member

Откуда:
Сообщений: 1368
кстати, в таблице suspecе_pages нет страниц.
21 янв 13, 12:27    [13802058]     Ответить | Цитировать Сообщить модератору
 Re: причины появления битых страниц  [new]
смотрю_тут
Member

Откуда:
Сообщений: 1368
Crimean
ошибки сиквела также могли быть. к примеру, в R2 до какого-то фикса он-лайн индексация разваливала данные
без физического повреждения, правда, но изменения переставали быть транзакционными
очень "доставляло"
так что вовсе не исключено что определенные расклады и физику били


у меня это произошло на бд с размером боле 700 Гб, 90 % данных которые хранятся в кучах(вообще без индексов).
таблица с которой ошибка вообще небольшая , так же без индексов.
21 янв 13, 12:29    [13802076]     Ответить | Цитировать Сообщить модератору
 Re: причины появления битых страниц  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
смотрю_тут
кстати, в таблице suspecе_pages нет страниц.

значит в свойствах БД стоит "NONE" для проверки целостности страниц.

А вообще, такое бывает потому что страницы данных в SQL Server (8K), а в Windows (512 байт), то бишь разных размеров. Каждый раз, когда операционная система записывает 8K данных SQL Server страницы на диск, она должна разбить данные на несколько 512-байтовых блоков. После первых 512 байт записи данных, SQL Server предполагает, что весь нужный объём информации в 8K был записан на диск успешно. Так что, если в такой момент произойдёт резкое выключение питания аля без упса из розетки выдернули, то SQL Server не знает, что произошло и появятся разорваные страницы.
21 янв 13, 15:58    [13804022]     Ответить | Цитировать Сообщить модератору
 Re: причины появления битых страниц  [new]
Гость333
Member

Откуда:
Сообщений: 3683
stavgreengo
страницы данных ... в Windows (512 байт)

Что такое "страницы данных в Windows"?

stavgreengo
После первых 512 байт записи данных, SQL Server предполагает, что весь нужный объём информации в 8K был записан на диск успешно.

И решает не записывать оставшиеся 7.5К?
Можно тынц, подтверждающий ваше утверждение?

stavgreengo
SQL Server не знает, что произошло

Бедный, несчастный SQL Server
Простите, не сдержался.


Как бы я догадываюсь, что вы пытаетесь пересказать содержимое whitepaper "Microsoft SQL Server I/O Basics" или какой-то другой статьи/книги, описывающей механизм Torn Page Protection / Checksum Protection. Но нельзя же так вольно подходить к прочитанному.
21 янв 13, 16:43    [13804448]     Ответить | Цитировать Сообщить модератору
 Re: причины появления битых страниц  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
Гость333
stavgreengo
страницы данных ... в Windows (512 байт)

Что такое "страницы данных в Windows"?

stavgreengo
После первых 512 байт записи данных, SQL Server предполагает, что весь нужный объём информации в 8K был записан на диск успешно.

И решает не записывать оставшиеся 7.5К?
Можно тынц, подтверждающий ваше утверждение?

stavgreengo
SQL Server не знает, что произошло

Бедный, несчастный SQL Server
Простите, не сдержался.


Как бы я догадываюсь, что вы пытаетесь пересказать содержимое whitepaper "Microsoft SQL Server I/O Basics" или какой-то другой статьи/книги, описывающей механизм Torn Page Protection / Checksum Protection. Но нельзя же так вольно подходить к прочитанному.

ну да, а ещё у меня с английским плохо :) Главное чтоб ТС проверил свойство БД, что у него там выставлено ;)
Because data pages in SQL Server (8K) and Windows 2000 or 2003 Server (512 bytes) are different sizes, it is possible during power failures, or if you are having disk driver or physical disk problems, for your database to become corrupted.

Here’s why. Every time the operating system writes an 8K SQL Server data page to disk, it must break up the data into multiple 512-byte pages. After the first 512 byte of data is written, SQL Server assumes that the entire 8K has been written to disk successfully. So if the power should go out before all of the 512 byte pages that make up the 8K SQL Server page are written, then SQL Server does not know what has happened. This is known as a torn page.

As you can imagine, this corrupts the data page, and in effect makes your entire database corrupt. There is no easy way to fix a database made corrupt due to a torn page, except to restore a known good backup. One of the best ways to prevent this problem is to ensure your server has a battery backup. But this does not prevent all problems because a defective disk driver can also cause similar problems (I have seen this.)

If you are worried about getting torn pages in your SQL Server databases, you can have SQL Server tell you if they occur. There is a database option called “torn page detection” that can be turned on and off at the database level. Each database must be set separately. Keep in mind that this option does not prevent torn pages; it only tells you if you have one. Once it discovers one, your database is marked as corrupt, and you have little choice but to restore your database with your latest backup.

http://www.sql-server-performance.com/2007/database-settings/3/
21 янв 13, 16:53    [13804535]     Ответить | Цитировать Сообщить модератору
 Re: причины появления битых страниц  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Имхо, феерическая чушь по ссылке.
21 янв 13, 17:02    [13804601]     Ответить | Цитировать Сообщить модератору
 Re: причины появления битых страниц  [new]
Гость333
Member

Откуда:
Сообщений: 3683
stavgreengo
http://www.sql-server-performance.com/2007/database-settings/3/

Блин, господин Brad McGehee пишет такое. Я в печали.
21 янв 13, 17:07    [13804641]     Ответить | Цитировать Сообщить модератору
 Re: причины появления битых страниц  [new]
invm
Member

Откуда: Москва
Сообщений: 9845
stavgreengo,

Как SQL Server находит оборванные страницы и зачем он этим занимается
21 янв 13, 17:23    [13804793]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить