Корректировка битовой карты таблицы
Функция
Определение оператора корректировки битовой карты таблицы.
Спецификация
Варианты:
::=
ON [имя схемы.]имя таблицы FOR {DATA|INDEX|BLOB}
PAGE номер страницы
[FILE номер файла]
[WAIT | NOWAIT]
::=
ON [имя схемы.]имя таблицы FOR {DATA|INDEX|BLOB}
FILE номер файла
[WAIT | NOWAIT]
Синтаксические правила
-
< Номер страницы >
задает номер страницы соответствующего файла таблицы:-
DATA
– файла данных; -
INDEX
– индексного файла; -
BLOB
– BLOB-файла.
-
-
< Номер файла >
задает номер соответствующего файла таблицы. Если не задан, по умолчанию используется значение 1. -
< Номер страницы битовой карты >
задает номер страницы битовой карты соответствующего файла таблицы.
Общие правила
-
Команду целесообразно применять в случае возникновения ошибок в битовой карте таблицы при невозможности по какой-либо причине (например, большой объём БД) использовать для устранения ошибки утилиты testdb.
-
Вариант с опцией
CORRECT BITMAP
используется при незначительных (единичных) повреждениях битов в битовой карте (в этом случае выполняется корректировка только ошибочных битов). -
Вариант с опцией
CORRECT BITMAP PAGE
используется при значительных (множественных) повреждениях битов в битовой карте (в этом случае выполняется корректировка страниц целиком).
Примеры
Сообщения утилиты testdb и соответствующие им команды корректировки битовой карты:
-
!Таблица #118, битовая карта файла данных #1, страница #1, бит #20 !Очищен бит для заполненной страницы CORRECT BITMAP ON AUTO FOR DATA PAGE 20;
-
!Таблица #118, битовая карта файла индексов #1, страница #1, бит #2 !Установлен бит для незаполненной страницы CORRECT BITMAP ON AUTO FOR INDEX PAGE 2;
-
!Таблица #5, битовая карта файла BLOB #1, страница #1, бит #20 !Очищен бит для заполненной страницы CORRECT BITMAP ON $$$PROC FOR BLOB PAGE 20;
Ошибки типа:
* Таблица #48, битовая карта файла индексов #2, страница #16, бит #28 * Очищен бит для страницы, которой нет в файле
вызваны тем, что, по какой-то причине содержимое 16-ой страницы битовой карты не было очищено от данных индекса (или данные индекса туда были возвращены при откате), после чего с этой страницей велась работа как со страницей битовой карты.
Команда для корректировки:
CORRECT BITMAP PAGE 16 ON < имя таблицы > FOR INDEX FILE 2;
Имя таблицы можно узнать по её системному номеру (48), указанному в сообщении утилиты testdb.