Cannot sort on a field that does not exist
Модератор: kdv
Cannot sort on a field that does not exist
Что может означать эта ошибка? Может у кого то что то подобное проявлялось?
Re: Cannot sort on a field that does not exist
Не могу сортировать по полю, которое не существует.azrael писал(а):Что может означать эта ошибка
-
- Сообщения: 17
- Зарегистрирован: 25 янв 2006, 05:33
Прошу прощения за поднятие старой темы, но судя по всему решение никто не нашёл...
У меня такая же проблема почти каждый раз, когда принудительно выкидываю юзеров (или не из-за этого) с помощью ibconsvc.
По логу видно, что прерывается на одном и том же месте... при создании индекса...
Backup происходит gbak'ом.
При работающей базе backup делается без проблем.
В общем после отрубания всех юзеров первый коннект - эта ошибка.
И видимо при этом происходит лечение базы, т.к. со второго раза backup проходит всегда.
IB: Yaffil build 885 (но и на более ранних была та же проблема).
Т.е. самый подходящий вывод из всего этого - принудительный дисконнект клиентов? Но без этого тоже никак - почему-то висят коннекты, хотя компы клиентов уже могут быть выключены...
У меня такая же проблема почти каждый раз, когда принудительно выкидываю юзеров (или не из-за этого) с помощью ibconsvc.
По логу видно, что прерывается на одном и том же месте... при создании индекса...
Backup происходит gbak'ом.
При работающей базе backup делается без проблем.
В общем после отрубания всех юзеров первый коннект - эта ошибка.
И видимо при этом происходит лечение базы, т.к. со второго раза backup проходит всегда.
IB: Yaffil build 885 (но и на более ранних была та же проблема).
Т.е. самый подходящий вывод из всего этого - принудительный дисконнект клиентов? Но без этого тоже никак - почему-то висят коннекты, хотя компы клиентов уже могут быть выключены...

-
- Заслуженный разработчик
- Сообщения: 644
- Зарегистрирован: 15 фев 2005, 11:34
решение чего, собственно?но судя по всему решение никто не нашёл...
по логу чего? индексы, вообще-то, создаются или при restore, или при их явном или неявном (constraint) создании.По логу видно, что прерывается на одном и том же месте... при создании индекса...
при бэкапе никакие индексы никогда не создаются.
"лечение базы" самостоятельно не происходит никогда.И видимо при этом происходит лечение базы, т.к. со второго раза backup проходит всегда.
проверь соответствие *.msg и gds32.dll. может у тебя файл сообщений не от клиента Yaffil.
-
- Сообщения: 17
- Зарегистрирован: 25 янв 2006, 05:33
Ivan_Pisarevsky
Так вот. Даже если не делать backup, а просто сделать запрос по любой таблице, то пару минут зависон, после чего отвисает и запрос выполняется.
kdv
Естесственно индексы не создаются. Я неправильно выразился - не при создании индекса, а при записи его в файл backup'а.
Вот место ошибки:
gbak: writing index RDB$FOREIGN86
gbak: ERROR:cannot sort on a field that does not exist
gbak: ERROR:isc_compile_request failed
gbak:Exiting before completion due to errors
А про лечение не совсем согласен. Ведь при первом коннекте что-то там делается... И не так уж и важно - backup это или простой запрос. Подвисон на пару минут с последующей работой (но backup при этом не завершается корректно).
Я вообще-то написал, чтоС каких пор конекты стали мешать делать резервную копию гбак-ом?
Но мне нужно получать полный доступ к файлу БД. Поэтому все коннекты должны быть отрублены.При работающей базе backup делается без проблем.
Так вот. Даже если не делать backup, а просто сделать запрос по любой таблице, то пару минут зависон, после чего отвисает и запрос выполняется.
kdv
От Yaffil'а, это точно. А yaffil.msg вообще убран, начиная с билда 856.проверь соответствие *.msg и gds32.dll. может у тебя файл сообщений не от клиента Yaffil.
Ну видно по логу при backup'е.по логу чего? индексы, вообще-то, создаются или при restore, или при их явном или неявном (constraint) создании.
при бэкапе никакие индексы никогда не создаются.
Естесственно индексы не создаются. Я неправильно выразился - не при создании индекса, а при записи его в файл backup'а.
Вот место ошибки:
gbak: writing index RDB$FOREIGN86
gbak: ERROR:cannot sort on a field that does not exist
gbak: ERROR:isc_compile_request failed
gbak:Exiting before completion due to errors
Хотелось бы без таких вот заморочек.решение чего, собственно?
А про лечение не совсем согласен. Ведь при первом коннекте что-то там делается... И не так уж и важно - backup это или простой запрос. Подвисон на пару минут с последующей работой (но backup при этом не завершается корректно).
-
- Сообщения: 17
- Зарегистрирован: 25 янв 2006, 05:33
слушай, так много вопросов... Законы Мэрфи знаешь? Все что может портиться - портится.Подскажите, где копать?
www.ibase.ru/devinfo/db_repair.htm
нет. что значит "выкидывание клиента"?И если так, то они портятся именно в момент выкидывания клиента?
-
- Сообщения: 17
- Зарегистрирован: 25 янв 2006, 05:33
Бывает, что остаются коннекты уже выключенных компов...kdv писал(а):нет. что значит "выкидывание клиента"?
Т.е. клиент давно уже домой ушёл, а сервер думает, что клиент жив...
Почему такое происходит, неизвестно (может, с сетью что-то не так?).
И приходится выкидывать принудительно этот коннект с помощью ibconsvc.
Ну и собственно всё. Ничего криминального не делается...
-
- Заслуженный разработчик
- Сообщения: 644
- Зарегистрирован: 15 фев 2005, 11:34
Про кипалив почитай таки.Alex Prodigy писал(а):Бывает, что остаются коннекты уже выключенных компов...kdv писал(а):нет. что значит "выкидывание клиента"?
Т.е. клиент давно уже домой ушёл, а сервер думает, что клиент жив...
Почему такое происходит, неизвестно (может, с сетью что-то не так?).
И приходится выкидывать принудительно этот коннект с помощью ibconsvc.
Ну и собственно всё. Ничего криминального не делается...
Если БД выгрузить в скрипт и потом из этого скрипта создать? Что происходит?
-
- Сообщения: 17
- Зарегистрирован: 25 янв 2006, 05:33
Про keepalive читал давно-давно. И такие ошибки (10054) возникают. И возникали во всех конторах, где я видел IB.Ivan_Pisarevsky писал(а):Про кипалив почитай таки.
Если БД выгрузить в скрипт и потом из этого скрипта создать? Что происходит?
Т.е. в итоге Вы считаете, что та ошибка при backup'е происходит именно из-за подвисших коннектов или непредвиденных разрывов?
Буду тогда копать в этом направлении.
Спасибо.
А по поводу скрипта отпишусь завтра, сегодня уже раб. день заканчивается...

Не говорите за весь IB.Alex Prodigy писал(а):И такие ошибки (10054) возникают. И возникали во всех конторах, где я видел IB.
FB 1.0.3. Куча повисших/оставленных/дохлых коннектов, да ещё половина через BDE который вообще транзакцию не завершает никогда, 1 - 2 раза в день бэкап-рестор (работа круглосуточная) помножим на три десятка таких баз - не вижу я никаких проблем с gbak, по крайней мере, регулярно возникающих.
А описанную тобой вообще не припоминаю.
Пользователи рубятся через gfix shutdown базы.
-
- Заслуженный разработчик
- Сообщения: 644
- Зарегистрирован: 15 фев 2005, 11:34
-
- Сообщения: 17
- Зарегистрирован: 25 янв 2006, 05:33
Хм. Ну тогда я вообще не понимаю, в чём может быть причина.kdv писал(а):нет, не считаем.Т.е. в итоге Вы считаете, что та ошибка при backup'е происходит именно из-за подвисших коннектов или непредвиденных разрывов?
Ведь если нет подвисших коннектов, то база бэкапится с первого раза безо всяких ошибок.
Ivan_Pisarevsky
База из скрипта создалась. Сейчас заливаются данные из второго скрипта.
-
- Заслуженный разработчик
- Сообщения: 644
- Зарегистрирован: 15 фев 2005, 11:34
-
- Сообщения: 17
- Зарегистрирован: 25 янв 2006, 05:33
Но база-то неповреждённая!Ivan_Pisarevsky писал(а):Причина такого поведения может быть в повреждении файла БД, о чем КДВ говорил выше. А уж повредиться она могла по многим причинам, как то отрубание питания, сбойный жесткий диск, сбойная память и т.п.
Я же говорю, что она "повреждается" только после дисконнекта повисших клиентов. И если не делать backup, а подключиться к базе и попытаться выполнить любой запрос, она подвисает (ну лечится всё-таки видимо

В общем, если keepalive не поможет избавиться от повисших клиентов, то больше вариантов у меня просто не останется... Придётся закрыть глаза на 2-х разовый backup и всё... База-то всё равно целая получается.
P.S. Только что закончился залив данных... Уууффф... А создание базы из скрипта с последующим заливанием всех данных говорит о неиспорченности БД или нет?
Классик ? свип_интевал != 0 ?Alex Prodigy писал(а):Но база-то неповреждённая!
Я же говорю, что она "повреждается" только после дисконнекта повисших клиентов. И если не делать backup, а подключиться к базе и попытаться выполнить любой запрос, она подвисает (ну лечится всё-таки видимо), через пару минут отвисает и выдаёт ответ на запрос.
-
- Сообщения: 17
- Зарегистрирован: 25 янв 2006, 05:33