Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описывается управление таблицей suspect_pages в SQL Server 2014 с помощью SQL Server Management Studio или Transact-SQL. Таблица suspect_pages содержит сведения о потенциально поврежденных страницах и используется при принятии решений о необходимости восстановления. Таблица suspect_pages находится в базе данных msdb.
Страница считается «подозрительной», если при попытке ее чтения компонентом Компонент SQL Server Database Engine обнаруживается одна из следующих ошибок.
Ошибка 823, вызванная циклической избыточностью проверка (CRC), выданной операционной системой, например ошибка диска (некоторые ошибки оборудования).
Ошибка 824, например разорванная страница (любая логическая ошибка)
Идентификатор каждой "подозрительной" страницы записывается в таблицу suspect_pages . В эту таблицу Компонент Database Engine записывает все подозрительные страницы, которые встретились при обработке, в частности:
При обработке запроса необходимо считать страницу.
При выполнении инструкции DBCC CHECKDB.
Во время операции резервного копирования.
Во время операции восстановления, исправления DBCC или удаления базы данных в случае необходимости также обновляется таблица suspect_pages .
В этом разделе
Перед началом работы
Управление таблицей suspect_pages с помощью:
Перед началом
Рекомендации
Ошибки, заносящиеся в таблицу suspect_pages
Таблица suspect_pages содержит по одной строке на каждую страницу, в которой обнаружена ошибка с номером 824, но не более 1000 строк. В следующей таблице приводятся ошибки, занесенные в столбец event_type таблицы suspect_pages .
Описание ошибки Значениеevent_type Ошибка 823, вызванная ошибкой CRC операционной системы или ошибкой 824, отличной от неправильной контрольной суммы или разрыва страницы (например, идентификатор неправильной страницы) 1 Неверная контрольная сумма 2 Разрыв страницы 3 Восстановлена (страница была восстановлена после того, как была помечена поврежденной) 4 Исправленная (страница исправлена инструкцией DBCC, AlwaysOn или зеркальным отображением) 5 Удалена при выполнении DBCC 7 В таблицу suspect_pages записываются также нерегулярные ошибки. Их причиной могут быть ошибки ввода-вывода (например отсоединение кабеля) или временно возникшая ошибка проверки контрольной суммы страницы.
Как компонент Database Engine обновляет таблицу suspect_pages
Компонент Компонент Database Engine выполняет с таблицей suspect_pages следующие действия.
Если таблица не заполнена, она обновляется для каждой ошибки с номером 824 для указания на наличие ошибки; при этом счетчик ошибок увеличивается на единицу. Если страница содержит ошибку, которая впоследствии была исправлена, ее счетчик number_of_errors увеличивается на единицу и изменяется значение столбца last_update .
После того как указанная страница исправлена операцией восстановления или исправления, в соответствующей строке обновляется столбец suspect_pages , указывая, что страница исправлена (event_type = 5) или восстановлена (event_type = 4).
В ходе проверки базы данных (DBCC) все страницы, не содержащие ошибок, помечаются как исправленные (event_type = 5) или освобожденные (event_type = 7).
Автоматические обновления таблицы suspect_pages
Участник зеркального отображения базы данных или реплика группы доступности AlwaysOn обновляет таблицу suspect_pages , если попытка чтения страницы из файла данных завершается одной из следующих ошибок.
Ошибка 823, вызываемая ошибкой CRC операционной системы.
Ошибка 824 (логическая ошибка, например разрыв страницы).
Следующие действия также автоматически обновляют строки в таблице suspect_pages .
Инструкция DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS обновляет таблицу suspect_pages , отмечая освобождение или исправление каждой страницы.
Операции полного восстановления, восстановления файла или страницы помечают записи для страниц как восстановленные.
Следующие действия автоматически удаляют строки из таблицы suspect_pages .
ALTER DATABASE REMOVE FILE
DROP DATABASE
Задачи обслуживания, выполняемые администратором базы данных
За обслуживание таблицы, преимущественно за удаление старых строк, отвечают администраторы базы данных. Размер таблицы suspect_pages ограничен, поэтому после того, как она заполнена, новые ошибки в нее не заносятся. Чтобы не допустить переполнения таблицы, администратор базы данных или системный администратор должен вручную удалить из нее старые строки. Поэтому рекомендуется периодически удалять или архивировать строки, у которых event_type указывает на восстановление, или строки, значение last_update у которых устарело.
Для наблюдения за ситуацией в таблице "suspect_pages" можно использовать класс событий Database Suspect Data Page. Строки иногда добавляются в таблицу suspect_pages из-за временных ошибок. Однако если в таблицу добавляется множество строк, то, скорее всего, проблема существует в подсистеме ввода-вывода. Если было замечено резко возросшее количество строк, добавляемых в систему, то рекомендуется провести диагностику подсистемы ввода-вывода на предмет возможных проблем.
Администратор базы данных может также вставлять или обновлять записи. Например, обновление строк может оказаться полезным, если администратор базы данных знает, что какая-нибудь из сомнительных страниц на самом деле исправна, но хочет на время сохранить соответствующую запись.
Безопасность
Разрешения
Сведения в таблице suspect_pages доступны любому пользователю, имеющему доступ к базе данных msdb . Информация в таблице suspect_pages может обновляться любым пользователем, обладающим разрешением UPDATE. Члены предопределенной роли базы данных db_owner в msdb или предопределенной роли сервера sysadmin могут вставлять, обновлять и удалять записи.
Использование среды SQL Server Management Studio
Управление таблицей suspect_pages
В обозревателе объектовподключитесь к экземпляру компонента Компонент SQL Server Database Engine, разверните его, а затем разверните узел Базы данных.
Разверните последовательно узлы Системные базы данных, msdb, Таблицыи Системные таблицы.
Разверните узел dbo.suspect_pages и щелкните правой кнопкой мыши Изменить 200 верхних строк.
В окне запроса измените, обновите или удалите необходимые строки.
Использование Transact-SQL
Управление таблицей suspect_pages
Установите соединение с компонентом Компонент Database Engine.
На панели «Стандартная» нажмите Создать запрос.
Скопируйте следующие примеры в окно запроса и нажмите кнопку Выполнить. В следующем примере продемонстрировано удаление некоторых строк из таблицы
suspect_pages
.
-- Delete restored, repaired, or deallocated pages.
DELETE FROM msdb..suspect_pages
WHERE (event_type = 4 OR event_type = 5 OR event_type = 7);
GO
В этом примере происходит возврат поврежденных страниц в таблице suspect_pages
.
-- Select nonspecific 824, bad checksum, and torn page errors.
SELECT * FROM msdb..suspect_pages
WHERE (event_type = 1 OR event_type = 2 OR event_type = 3);
GO
См. также:
DROP DATABASE (Transact-SQL)
RESTORE (Transact-SQL)
BACKUP (Transact-SQL)
DBCC (Transact-SQL)
Восстановление страниц (SQL Server)
suspect_pages (Transact-SQL)
MSSQLSERVER_823
MSSQLSERVER_824