Отключение индексов и разрушение целостности
Отключение индексов и разрушение целостности
Проблема - при работе с базой иногда обнаруживается, что некоторые индексы отключены (неактивны). Это приводит к разрушению ссылочной целостности. Сервер FB 1.5. В программах, работающих с базой нигде нет явного выключения индексов. После разрушения
их включить уже невозможно. Раз в 10 дней проводится backup\restore. Баз несколько сотен у пользователей, проблема у
разработчиков не воспроизводится. Какие действия могут приводить к такому эффекту?
Спасибо.
их включить уже невозможно. Раз в 10 дней проводится backup\restore. Баз несколько сотен у пользователей, проблема у
разработчиков не воспроизводится. Какие действия могут приводить к такому эффекту?
Спасибо.
1. Как вы определяете, что индексы неактивны ?
Поле RDB$INDEX_INACTIVE в таблице RDB$INDICES =1
2. Опции рестора ?
Рестор делается с помощью Борландовского компонента
TIBRestoreService
DeactivateIndexes False
NoShadow False
NoValidityCheck True
OneRelationAtATime False
Replace False
CreateNew True
UseAllSpace True
3. Ошибки в логе сервера
Рад бы, но мне приходят от пользователей только проблемные базы
из других городов, у меня это не воспроизводится. Занимался долго.
4. Что говорит gfix -v -f ?
Summary of validation errors
Number of record level errors : 1
5. Работаете ли из программы с метаданными?
Структура при работе не модифицируется. Если я правильно понял.
6. Производите ли массовую заливку данных?
Если 200-300 записей одновременно, это массовая, то да.
Вряд ли и нас в 100 местах одиноково повреждена исходная база.
Насчет нехватки места - 100% нет. Наши программы проверяют
наличие места при запуске.
Поле RDB$INDEX_INACTIVE в таблице RDB$INDICES =1
2. Опции рестора ?
Рестор делается с помощью Борландовского компонента
TIBRestoreService
DeactivateIndexes False
NoShadow False
NoValidityCheck True
OneRelationAtATime False
Replace False
CreateNew True
UseAllSpace True
3. Ошибки в логе сервера
Рад бы, но мне приходят от пользователей только проблемные базы
из других городов, у меня это не воспроизводится. Занимался долго.
4. Что говорит gfix -v -f ?
Summary of validation errors
Number of record level errors : 1
5. Работаете ли из программы с метаданными?
Структура при работе не модифицируется. Если я правильно понял.
6. Производите ли массовую заливку данных?
Если 200-300 записей одновременно, это массовая, то да.
Вряд ли и нас в 100 местах одиноково повреждена исходная база.
Насчет нехватки места - 100% нет. Наши программы проверяют
наличие места при запуске.
Всегда один и тот же индекс или разные ?ganka писал(а):1. Как вы определяете, что индексы неактивны ?
Поле RDB$INDEX_INACTIVE в таблице RDB$INDICES =1
UseAllSpace - не нужно, NoValidityCheck - возможно это вам и гадит.ganka писал(а):2. Опции рестора ?
Рестор делается с помощью Борландовского компонента
TIBRestoreService
DeactivateIndexes False
NoShadow False
NoValidityCheck True
OneRelationAtATime False
Replace False
CreateNew True
UseAllSpace True
Логи ресторов ведёте ?
Требуй с базами логиganka писал(а):3. Ошибки в логе сервера
Рад бы, но мне приходят от пользователей только проблемные базы
из других городов, у меня это не воспроизводится. Занимался долго.
Ну, gfix сделать значит можем, а лог найти (в который gfix написал ошибки) - нет ? Несерьёзно этоganka писал(а):4. Что говорит gfix -v -f ?
Summary of validation errors
Number of record level errors : 1
Это гудganka писал(а):5. Работаете ли из программы с метаданными?
Структура при работе не модифицируется. Если я правильно понял.
Нет, это не массовая, не боисьganka писал(а):6. Производите ли массовую заливку данных?
Если 200-300 записей одновременно, это массовая, то да.

Т.е. 100% нет места ?ganka писал(а): Вряд ли и нас в 100 местах одиноково повреждена исходная база.
Насчет нехватки места - 100% нет. Наши программы проверяют
наличие места при запуске.

Проверка места при запуске, как и в любой другой момент - как мёртвому припарки. Только даёт ложное чувство защищённости.
В общем - давай лог сервера с проблемной БД и делай рестор правильно
>Всегда один и тот же индекс или разные ?
Разные.
>UseAllSpace - не нужно, NoValidityCheck - возможно это вам и гадит.
Отключу.
>Логи ресторов ведёте ?
Да, чисто.
>Требуй с базами логи.
Потребую, но время от требования до получения на работающем предприятии такое, что ничего не приходит. Что в них искать?
>Ну, gfix сделать значит можем, а лог найти (в который gfix написал >ошибки) - нет ? Несерьёзно это
gfix сделал по сбойной базе, а ее прислали с предприятия, после того как там неделю проработали с чудесами.
>Проверка места при запуске, как и в любой другой момент - как >мёртвому припарки. Только даёт ложное чувство защищённости.
А что дает? Если на 300 Мб базе 10 Гб места это что мало?
>В общем - давай лог сервера с проблемной БД и делай рестор >правильно.
Будет лог - продолжим.
Спасибо.
Разные.
>UseAllSpace - не нужно, NoValidityCheck - возможно это вам и гадит.
Отключу.
>Логи ресторов ведёте ?
Да, чисто.
>Требуй с базами логи.
Потребую, но время от требования до получения на работающем предприятии такое, что ничего не приходит. Что в них искать?
>Ну, gfix сделать значит можем, а лог найти (в который gfix написал >ошибки) - нет ? Несерьёзно это
gfix сделал по сбойной базе, а ее прислали с предприятия, после того как там неделю проработали с чудесами.
>Проверка места при запуске, как и в любой другой момент - как >мёртвому припарки. Только даёт ложное чувство защищённости.
А что дает? Если на 300 Мб базе 10 Гб места это что мало?
>В общем - давай лог сервера с проблемной БД и делай рестор >правильно.
Будет лог - продолжим.
Спасибо.
Чудесаganka писал(а):>Всегда один и тот же индекс или разные ?
Разные.
А откуда вы это знаете ?ganka писал(а):>Логи ресторов ведёте ?
Да, чисто.
Ошибки, кроме сетевых.ganka писал(а):>Требуй с базами логи.
Потребую, но время от требования до получения на работающем предприятии такое, что ничего не приходит. Что в них искать?
Ну и скажи мне - что написал в лог gfix который ты сам выполнял ?ganka писал(а):>Ну, gfix сделать значит можем, а лог найти (в который gfix написал >ошибки) - нет ? Несерьёзно это
gfix сделал по сбойной базе, а ее прислали с предприятия, после того как там неделю проработали с чудесами.
А если я сразу после запуска твоей программы залью туда 10 гиг фильмов - то что ?ganka писал(а):>Проверка места при запуске, как и в любой другой момент - как >мёртвому припарки. Только даёт ложное чувство защищённости.
А что дает? Если на 300 Мб базе 10 Гб места это что мало?
Просто требуйте сразу с битой базой слать логиganka писал(а): >В общем - давай лог сервера с проблемной БД и делай рестор >правильно.
Будет лог - продолжим.
Обращайсяganka писал(а):Спасибо.
