CDX currupt index file & Windows 2003 Server
We're experiencing almost everyday database index corruption on Windows Server 2003. I wonder if it can be somehow connected with caching or other server settings.
We are running an old application which uses DBF/CDX tables. Everything was fine for ages, but 6 months after we've installed Advantage Database Server (which allows access to some tables to our website) we started to get index corruption problems. And we don't know whom to blame. ADS returns an error: Error 7017: Corrupt.ADI,.CDX, or.IDX index. Table name: RBOOKM
We've tried to exclude all possible causes of this corruption. Now all users work in terminal mode - so no network problems can cause that, OpLocks also can't be a reason. We changed hardware, network cards, switches, reinstalled Server and even moved to new dedicated server. The only thing we can't exclude is ADS - because it should be working.
Is that possible that local read/write caching that causes that problem? Eg one user or process uses cached data, later another user/process changes it, and later the first user changes it again without knowing about the first change. Is it possible theoretically?
Возможно ли, что эта проблема вызвана импортером файлового сервера или настройками кэширования? Возможно ли, что обычные пользователи используют некэшированные данные, а ADS использует кэшированные данные? Или наоборот? Возможно ли, чтобы у каждого пользователя терминала был свой кеш? Или, может быть, проблема в том, что кеширование RAID каким-то образом мешает кешированию Windows Server? Или, может быть, есть некоторые специальные настройки для Windows Server для работы с таблицами DBF, которые пишутся одновременно несколькими пользователями терминала? Может быть, есть способ отключить кэширование некоторых файлов, чтобы проверить это?
Иногда происходит сбой индекса два раза в день, иногда все нормально в течение 5 дней подряд. Но обычно это происходит ежедневно. Сегодня вечером только один пользователь работал с базой данных (обычно 30-50 пользователей работают одновременно в рабочее время). Так что это почти нулевая нагрузка на сервер. Синхронизация с сайтом выполняется каждые 5 минут в рабочее время и каждые 15 минут вечером и в выходные дни.
Мы провели аудит доступа к файлам, и он показывает, что во время синхронизации веб-сайтов сервер ADS открывает файлы таблиц и индексов для ReadEA и WriteEA, хотя он выполняет только запросы SELECT. ADS выполняет запросы UPDATE/INSERT, но реже - не во время регулярных синхронизаций, а только при размещении заказа посетителем сайта).
Пожалуйста, помогите мне. Мы боремся с этой проблемой почти год и до сих пор не можем найти какой-либо образец или какой-либо ключ к решению этой проблемы.
Вот мой предыдущий вопрос об этой проблеме на DBA: https://dba.stackexchange.com/questions/8646/foxpro-dbf-index-corruption