Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Informix Новый топик    Ответить
 Головоломка-3 : error 284 в dbschema  [new]
Выбегалло
Member

Откуда: Scottsdale, AZ, USA
Сообщений: 3794
Очередная разминка для мозгов.
Попросили меня обновить базу CAS_UTIL в соостветствии с последними изменениями в CAS_TEST.
Данные грузить не надо - только схему.
Ну, дело элементарное - запустить dbschema -d cas_test cas_test.sql, убить cas_util, создать заново из имеющейся схемы.

Проблема, однако, в том, что dbschema вываливается с ошибкой
-284 - A subquery has returned not exactly one row.

Понятно, что в базе где-то глюк, но где ?
Решил пойти окольным путем - запустил Server Studio, сравнил обе базы, создал diff скрипт. Увы, облом - скрипт падает на новых NOT NULL полях. Решил, что быстрее будет разобраться с проблемой dbschema.
Поиск по гуглу ничего не дал, пришлось подумать самому.

Через полчаса dbschema заработала.

Ваши решения ?
30 апр 10, 23:39    [8717488]     Ответить | Цитировать Сообщить модератору
 Re: Головоломка-3 : error 284 в dbschema  [new]
Чемберлен
Guest
Что-то вроде http://www.rhinocerus.net/forum/databases-informix/301757-corrupt-record-sysmaster-systabnames.html?

Сообщение было отредактировано: 5 май 10, 11:32
1 май 10, 21:31    [8718521]     Ответить | Цитировать Сообщить модератору
 Re: Головоломка-3 : error 284 в dbschema  [new]
Выбегалло
Member

Откуда: Scottsdale, AZ, USA
Сообщений: 3794
Чемберлен
Что-то вроде http://www.rhinocerus.net/forum/databases-informix/301757-corrupt-record-sysmaster-systabnames.html?


Похоже, но не совсем. Они сразу нашли дупликат - в systables. А мне надо было выяснить в какой из таблиц глюк.

Кстати, еще один вариант - попробовать использовать Кагелевскую утилиту myschema from the utils2_ak.

Головоломка в том, чтобы найти проблемную запись / таблицу.
2 май 10, 02:26    [8719069]     Ответить | Цитировать Сообщить модератору
 Re: Головоломка-3 : error 284 в dbschema  [new]
АнатоЛой
Member

Откуда: Киев, Украина
Сообщений: 2897
Блог
ТС
Увы, облом - скрипт падает на новых NOT NULL полях.

Скрипт падает, мир рушится. Нельзя ли поподробнее?

Выбегалло, если IDS 11 - включаем SQLTRACE?
5 май 10, 10:13    [8728045]     Ответить | Цитировать Сообщить модератору
 Re: Головоломка-3 : error 284 в dbschema  [new]
svat2
Member

Откуда: Украина, Кременчуг
Сообщений: 263
Выбегалло

Проблема, однако, в том, что dbschema вываливается с ошибкой
-284 - A subquery has returned not exactly one row.

Понятно, что в базе где-то глюк, но где ?


Погадал на кофейной гуще, получается следующее:

1) методом дихотомии сужал область поиска, запуская поочередно
dbschema -f all -d cas_test cas_test_sp.sql
dbschema -t all -d cas_test cas_test_tbl.sql

2) скорее всего, ошибка вывалилась на первой команде (впрочем, не суть...)
Затем поинтересовался у БД запросом (к sysprocedures или systables соотв.), где у нас неуникальность затесалась.
... или же смотрел, до какой SP/TBL успел дойти вывод в соотв. файлы и с прищуром смотрел на следующую по списку. (см. выше) :)

3) устранил выявленное в п.2 и вуаля.
5 май 10, 16:29    [8731255]     Ответить | Цитировать Сообщить модератору
 Re: Головоломка-3 : error 284 в dbschema  [new]
Выбегалло
Member

Откуда: Scottsdale, AZ, USA
Сообщений: 3794
АнатоЛой
ТС
Увы, облом - скрипт падает на новых NOT NULL полях.

Скрипт падает, мир рушится. Нельзя ли поподробнее?

Выбегалло, если IDS 11 - включаем SQLTRACE?


Почти. Включил SQLIDEBUG, который работает на всех версиях.
В файле трассировки последние строки :
---------------------------------
C->S (70) Time: 2010-04-30 13:50:11.31688
SQ_ID
4
SQ_BIND
# values: 3
0) Type.....: CHAR; NULLABLE
Indicator: NOT NULL
Precision: 0x0
Data.....: "informix" [8]

1) Type.....: CHAR; NULLABLE
Indicator: NOT NULL
Precision: 0x0
Data.....: "idx_cspscrb_br_stat_xref" [24]

2) Type.....: CHAR; NULLABLE
Indicator: NOT NULL
Precision: 0x0
Data.....: "I" [1]

SQ_EXSELECT
SQ_EOT

S->C (12) Time: 2010-04-30 13:50:11.31699
SQ_ERR
SQL error..........: -284
ISAM/RSAM error....: 0
Offset in statement: 84
Error message......: "" [0]
SQ_EOT

---------------------

После чего осталось найти место, где SQ_ID = 4 был объявлен в последний раз (он переназначается) :

select * from informix.sysobjstate where owner = 'informix'
and name = 'idx_cspscrb_br_stat_xref' and objtype = 'I'

И удалить лишние записи.
5 май 10, 19:39    [8732371]     Ответить | Цитировать Сообщить модератору
 Re: Головоломка-3 : error 284 в dbschema  [new]
заец
Guest
и где здесь головоломка?
это один из стандартных подходов к решению проблемы часто применяемый в средах, где работают разработчики

это скорее полевые заметки администратора или что-то в этом роде
возможно все эти ваши "головоломки" всего лишь навсего претендуют для занесения в faq
как просто база знаний

Головоломка — непростая задача, для решения которой, как правило, требуется сообразительность, а не специальные знания высокого уровня.
[url=]http://ru.wikipedia.org/wiki/Головоломка[/url]
6 май 10, 01:09    [8733302]     Ответить | Цитировать Сообщить модератору
 Re: Головоломка-3 : error 284 в dbschema  [new]
Выбегалло
Member

Откуда: Scottsdale, AZ, USA
Сообщений: 3794
заец
и где здесь головоломка?
это один из стандартных подходов к решению проблемы часто применяемый в средах, где работают разработчики

это скорее полевые заметки администратора или что-то в этом роде
возможно все эти ваши "головоломки" всего лишь навсего претендуют для занесения в faq
как просто база знаний

Головоломка — непростая задача, для решения которой, как правило, требуется сообразительность, а не специальные знания высокого уровня.
[url=]http://ru.wikipedia.org/wiki/Головоломка[/url]


whatever. Лично я делюсь опытом решения практических задач. А вы, я смотрю, занимаетесь повышением образования среди меня путем википедизации ? Я, значит, слово "головоломка" неправильно употребляю ? Ну мне можно, я от корней оторвался.

Кстати, "стандартность" подхода, а равно его очевидность и общеизвестность была продемонстрирована продолжительным молчанием и отсутствием правильных решений.
6 май 10, 04:21    [8733455]     Ответить | Цитировать Сообщить модератору
 Re: Головоломка-3 : error 284 в dbschema  [new]
АнатоЛой
Member

Откуда: Киев, Украина
Сообщений: 2897
Блог
Брек!

Выбегалло
Кстати, "стандартность" подхода, а равно его очевидность и общеизвестность была продемонстрирована продолжительным молчанием и отсутствием правильных решений.

Продолжительное молчание и отсутствие правильных решений было обусловлено праздниками с 1-го по 4-ое мая включительно (думаю, не только в Украине, но и в России) .
6 май 10, 08:59    [8733762]     Ответить | Цитировать Сообщить модератору
 Re: Головоломка-3 : error 284 в dbschema  [new]
Выбегалло
Member

Откуда: Scottsdale, AZ, USA
Сообщений: 3794
АнатоЛой
Брек!

Выбегалло
Кстати, "стандартность" подхода, а равно его очевидность и общеизвестность была продемонстрирована продолжительным молчанием и отсутствием правильных решений.

Продолжительное молчание и отсутствие правильных решений было обусловлено праздниками с 1-го по 4-ое мая включительно (думаю, не только в Украине, но и в России) .


Красиво жить не запретишь !
6 май 10, 10:06    [8734145]     Ответить | Цитировать Сообщить модератору
 Re: Головоломка-3 : error 284 в dbschema  [new]
АнатоЛой
Member

Откуда: Киев, Украина
Сообщений: 2897
Блог
Выбегалло

Красиво жить не запретишь !

Эт точно... Но без напрягов рай не в радость, а в тягость (студенческий синдром, он же адреналиновая зависимость). "Дайошъ" больше головоломок всяких и разных!
6 май 10, 10:21    [8734269]     Ответить | Цитировать Сообщить модератору
 Re: Головоломка-3 : error 284 в dbschema  [new]
vasilis
Member

Откуда: Украина, Киев
Сообщений: 2205
АнатоЛой
"Дайошъ" больше головоломок всяких и разных!

Поддерживаю!
Не важно, как это называется, "головоломка" или "путевые заметки админа" - главное, чтобы видеть разные подходы и методы решения типовых и нетиповых задач админа, чтобы был повод пошевелить мозгами, подискутировать, поделиться мнениями. т.е. делать именно то, ради чего мы "здесь и собрались", заходя на данный форум.
Еще раз спасибо "Выбегалло" за полезное начинание и "заец" за отгадки :)
6 май 10, 12:33    [8735410]     Ответить | Цитировать Сообщить модератору
Все форумы / Informix Ответить