Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Потерялись записи  [new]
CyberMax
Member

Откуда: Хабаровск
Сообщений: 1345
FB 3.0. Сегодня наткнулся на любопытный случай. В одной таблице потерялись записи, порядка 30 штук. То есть через SELECT их не видно. Но если сделать SELECT через условие SOMEFIELD = N, где по полю SOMEFIELD есть индекс, то сервер возвращает эту строку, как будто она есть. Если сделать через SOMEFIELD + 0 = N, то план меняется на натуральный и конечно ничего не возвращается. Сами по себе эти строки пропасть не могли - там таблица очищается вся и заново заполняется. Валидации БД пока не делал. Проблема решится пересозданием индекса, но хотелось бы уточнить у разработчиков - надо ли что-то исследовать в данном случае или проигнорировать проблему?
30 окт 18, 09:09    [21718566]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9631
CyberMax,

надо было сделать онлайн валидацию и посмотреть что она выдала
30 окт 18, 09:28    [21718577]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28011
CyberMax,

обычно бывает наоборот. когда индекс битый, то по индексу не выводятся, а без индекса - выводятся.
А наоборот - это как-то совсем загадочно. Разве только ссылки на какую-то страницу с pp потерялись, а с индекса остались.
CyberMax
Проблема решится пересозданием индекса

то есть, записи окончательно пропадают? Или у вас там написано всё наоборот?
Если записи не могут быть прочитаны натуралом, то они не могут быть и проиндексированы.
30 окт 18, 10:32    [21718654]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
hvlad
Member

Откуда:
Сообщений: 10392
CyberMax
надо ли что-то исследовать в данном случае
Полную валидацию, если возможно.
В крайнем случае - онлайн валидацию одной этой таблицы.
30 окт 18, 10:46    [21718666]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
hvlad
Member

Откуда:
Сообщений: 10392
kdv
Разве только ссылки на какую-то страницу с pp потерялись, а с индекса остались.
CyberMax
Без PP в любом случае - никак
30 окт 18, 10:48    [21718670]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
CyberMax
Member

Откуда: Хабаровск
Сообщений: 1345
kdv
то есть, записи окончательно пропадают? Или у вас там написано всё наоборот?
Если записи не могут быть прочитаны натуралом, то они не могут быть и проиндексированы.

Да, записи окончательно пропадут. Но, так как эта таблица в процессе работы полностью очищается, это неважно. Я собственно и натолкнулся на это из-за того, что после очистки таблицы и загрузки заново данных (примерно тех же самых), начало срабатывать ограничение по уникальности значения поля.
30 окт 18, 10:48    [21718671]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
hvlad
Member

Откуда:
Сообщений: 10392
CyberMax
Я собственно и натолкнулся на это из-за того, что после очистки таблицы и загрузки заново данных (примерно тех же самых), начало срабатывать ограничение по уникальности значения поля.
Что-то странное ты рассказываешь. Воспроизвести можешь ?
30 окт 18, 10:53    [21718673]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
CyberMax
Member

Откуда: Хабаровск
Сообщений: 1345
Результат онлайн-валидации таблицы:
17:57:37.30 Validation started 

17:57:37.32 Relation 745 (TABLE1)
17:57:37.32 process pointer page 0 of 2
17:57:37.34 Error: Data page 2344914 {sequence 42} marked as secondary but contains primary record versions
17:57:37.51 process pointer page 1 of 2
17:57:37.62 Index 1 (IDX_TABLE1_1)
17:57:38.65 Index 2 (UNQ1_TABLE1)
17:57:39.82 Index 3 (IDX_TABLE1_2)
17:57:40.57 Index 4 (UNQ2_TABLE1)
17:57:40.59 Relation 745 (TABLE1) : 1 ERRORS found

17:57:40.59 Validation finished
30 окт 18, 10:59    [21718682]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
hvlad
Member

Откуда:
Сообщений: 10392
CyberMax
17:57:37.34 Error: Data page 2344914 {sequence 42} marked as secondary but contains primary record versions 
Интересно. Что при этом написано в firebird.log ? Находятся ли теперь эти записи ?
30 окт 18, 11:03    [21718688]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9631
CyberMax,

ого! Походу ты багу нарыл. Что-то случилось такое что первичная страница пометилась как вторичная. Походу надо будет Владу БД слать
30 окт 18, 11:03    [21718690]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
CyberMax
Member

Откуда: Хабаровск
Сообщений: 1345
hvlad,

SERVER	Tue Oct 30 17:57:37 2018
Database: --CUTTED--
Validation started


SERVER Tue Oct 30 17:57:37 2018
Database: --CUTTED--
Error: Data page 2344914 {sequence 42} marked as secondary but contains primary record versions in table --CUTTED-- (745)


SERVER Tue Oct 30 17:57:40 2018
Database: --CUTTED--
Validation finished: 1 errors, 0 warnings, 0 fixed

Эти записи по-прежнему не видны при SELECT.
30 окт 18, 11:09    [21718698]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9631
CyberMax,

а они должны быть видны или нет? Т.е. ты эти данные уже удалил, но они всё ещё видны при выборке по индексу или ещё не удалял, но они не видны при выборке натуралом?
30 окт 18, 11:14    [21718707]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
CyberMax
Member

Откуда: Хабаровск
Сообщений: 1345
Симонов Денис
а они должны быть видны или нет? Т.е. ты эти данные уже удалил, но они всё ещё видны при выборке по индексу или ещё не удалял, но они не видны при выборке натуралом?

Должны быть видны, т.к. записи не удаляются частями - только все вместе.
30 окт 18, 11:17    [21718709]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
CyberMax
Member

Откуда: Хабаровск
Сообщений: 1345
Видимо это CORE-5459.
Добавил в выборке ORDER BY по индексированному полю - и вытащились все записи.
30 окт 18, 11:21    [21718718]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9631
CyberMax,

прежде чем исправлять сохрани куда-нибудь косячную базу, она может потребоваться разработчикам для анализа.
Дальше умолкаю, путь тебя Влад пытает.
30 окт 18, 11:23    [21718721]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
hvlad
Member

Откуда:
Сообщений: 10392
CyberMax
SERVER	Tue Oct 30 17:57:40 2018
Database: --CUTTED--
Validation finished: 1 errors, 0 warnings, 0 fixed
Эти записи по-прежнему не видны при SELECT.
Т.к. 0 fixed - то это ожидаемо.

Таблица - GTT ? Какая точная версия сервера ?
30 окт 18, 11:51    [21718771]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
hvlad
Member

Откуда:
Сообщений: 10392
Кстати, полная валидация (не в онлайн режиме) должна исправить эту ошибку
30 окт 18, 12:50    [21718865]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9631
hvlad,

ну это да, но всё же причину ошибки выяснить надо
30 окт 18, 13:15    [21718900]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
CyberMax
Member

Откуда: Хабаровск
Сообщений: 1345
hvlad
Таблица - GTT ? Какая точная версия сервера ?

Нет. Таблица - обычная. Сервер 3.0.4.32987.
31 окт 18, 01:21    [21719700]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
hvlad
Member

Откуда:
Сообщений: 10392
CyberMax,

можешь описать действия с этой таблицей, которые приводят к такому результату ?

Я, думаю, что могу соломку подложить, чтобы этого не повторялось - но в идеале, конечно, хотелось бы воспроизвести, чтобы быть уверенным...
31 окт 18, 02:00    [21719718]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
CyberMax
Member

Откуда: Хабаровск
Сообщений: 1345
hvlad
можешь описать действия с этой таблицей, которые приводят к такому результату ?

Эта таблица каждый понедельник полностью очищается через DELETE FROM TABLE, которое обернуто в ХП. Сверху загружаются примерно такие же данные, в пятницу записи обновляются через обработку в ХП. После чего все повторяется. Иных обновлений не делается. С момента перехода на FB3 (в июне) таких итераций было примерно 20.

hvlad
Я, думаю, что могу соломку подложить, чтобы этого не повторялось - но в идеале, конечно, хотелось бы воспроизвести, чтобы быть уверенным...

Если снапшот будет в ближайшие дни, получится его поставить 3-5 ноября на сервер. Воспроизвести сам вряд ли смогу - тут только ждать, когда еще раз такая оказия случится.

А под соломкой что подразумевается? Предварительное исправление или какое-то исключение в онлайн-режиме? Главное, чтобы без багчека.
31 окт 18, 05:56    [21719736]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
CyberMax
Member

Откуда: Хабаровск
Сообщений: 1345
Подумал сейчас и понял, что в принципе можно делать сделать повтор этих операций за один присест, сколько нужно, хоть тысячу раз. Тогда можно будет протестить до и после патча. Если, конечно, оно воспроизведется :).
31 окт 18, 05:59    [21719737]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
hvlad
Member

Откуда:
Сообщений: 10392
CyberMax,

не пробовал ?
1 ноя 18, 12:46    [21721383]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
hvlad
Member

Откуда:
Сообщений: 10392
CyberMax
А под соломкой что подразумевается? Предварительное исправление или какое-то исключение в онлайн-режиме? Главное, чтобы без багчека.
Исправление, есс-но. Никаких багчеков :)
Но - исправлениям "в слепую" не очень-то верится.
1 ноя 18, 12:47    [21721385]     Ответить | Цитировать Сообщить модератору
 Re: Потерялись записи  [new]
CyberMax
Member

Откуда: Хабаровск
Сообщений: 1345
hvlad
не пробовал ?

Сделал триста циклов просто обновления - ошибок нет.
Сейчас запустил эмуляцию полного цикла работ. Это на несколько часов.
2 ноя 18, 09:50    [21722175]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Firebird, InterBase Ответить