|
Не отрабатывает foreign key
|
|||
---|---|---|---|
#18+
Уважаемое сообщество, возникла проблема с базой. Firebird 3.0.7.33374. Пропадают записи, на которые есть ссылка по внешнему ключу. Таблица-detail Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Таблица - MASTER Код: sql 1. 2. 3. 4. 5. 6.
В один прекрасный момент обнаружились записи в дочерней таблице, ссылающиеся на несуществующие записи в главной таблице. Есть тригер по записи в лог, в ней видно, что запись с необходимым ИД в таблицу CALC$SOURCE вставлялась, удаления в логе нет. Чеки по базе прогнал, были ошибки Summary of validation errors Number of data page errors : 6 Number of pointer page warnings : 6 Number of database page warnings : 960 После починки, записи не появились. Вопрос - как такое возможно? Чем бороть? Есть подобные примеры и в других таблицах. Заранее благодарен. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 17:23 |
|
Не отрабатывает foreign key
|
|||
---|---|---|---|
#18+
red_tracer В один прекрасный момент обнаружились записи в дочерней таблице, ссылающиеся на несуществующие записи в главной таблице. Есть тригер по записи в лог, в ней видно, что запись с необходимым ИД в таблицу CALC$SOURCE вставлялась, удаления в логе нет. Натуралом их искали ? Валидацию делали полную ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 17:28 |
|
Не отрабатывает foreign key
|
|||
---|---|---|---|
#18+
red_tracer, Была такая проблема на одной базе, когда падал сервак и был выключен force write. На тот момент удалил все записи с несуществующими fk и сделал b/r. Потом включил fw и проблем таких больше не было. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 17:42 |
|
Не отрабатывает foreign key
|
|||
---|---|---|---|
#18+
hvlad Откуда тогда мнение, что записи в мастере не существуют ? Натуралом их искали ? Валидацию делали полную ? Валидация полная, ошибок после нее не находит. Натуралом - не находит. Рестор базы также не восстанавливает эти записи, соответственно, не поднимается foreign key. demon1992, Вроде как ForcedWrites=On - такого параметра в firebird.conf нет, соответственно, должен быть включен? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 17:55 |
|
Не отрабатывает foreign key
|
|||
---|---|---|---|
#18+
red_tracerтакого параметра в firebird.conf нет ух, ох... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 18:10 |
|
Не отрабатывает foreign key
|
|||
---|---|---|---|
#18+
red_tracerВроде как ForcedWrites=On - такого параметра в firebird.conf нет, соответственно, должен быть включен? Он не в конфиге, а в хидере бд. Сделай gstat -h, там увидишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 18:10 |
|
Не отрабатывает foreign key
|
|||
---|---|---|---|
#18+
red_tracer, Либо запись в мастере не удаляли - на что указывает лог, и проблема в индексе (PK) - её должна найти полная валидация (а как именно вы её запускали ?) Либо запись в мастере удаляли и не сработал FK (из-за проблемы в его индексе, см про валидацию), но тогда в топку этот лог. Либо вы что-то не видите и\или не договариваете. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 18:11 |
|
Не отрабатывает foreign key
|
|||
---|---|---|---|
#18+
demon1992 red_tracerВроде как ForcedWrites=On - такого параметра в firebird.conf нет, соответственно, должен быть включен? Он не в конфиге, а в хидере бд. Сделай gstat -h, там увидишь. Force write установлен, насколько вижу. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
hvlad red_tracer, Либо запись в мастере не удаляли - на что указывает лог, и проблема в индексе (PK) - её должна найти полная валидация (а как именно вы её запускали ?) Запускал валидацию таким образом gfix -mend -full -ignore -user SYSDBA -pas masterkey database.gdb hvlad Либо запись в мастере удаляли и не сработал FK (из-за проблемы в его индексе, см про валидацию), но тогда в топку этот лог. Либо вы что-то не видите и\или не договариваете. Похоже, все же проблема не с индексом, а с данными. Была еще одна проблема - после восстановления БД из бекапа пропадали некоторые записи, которые можно было выбрать в исходной БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 12:06 |
|
Не отрабатывает foreign key
|
|||
---|---|---|---|
#18+
red_tracerAttributes no reserve посторонний вопрос - вот это зачем? классический ответ - "было сделано до нас, мы не знаем". Ожидаю какой-то другой вариант ответа. red_tracerпосле восстановления БД из бекапа пропадали некоторые записи то есть, они не бэкапились. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 12:18 |
|
Не отрабатывает foreign key
|
|||
---|---|---|---|
#18+
kdv то есть, они не бэкапились. Да. Ошибок никаких в логах бекапа/рестора не было, кроме восстановления внешнего ключа, который в топике. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 12:47 |
|
Не отрабатывает foreign key
|
|||
---|---|---|---|
#18+
red_tracer Пропадают записи, на которые есть ссылка по внешнему ключу. Были такие проблемы, когда на сервере стояла битая планка памяти, причем определилась на вторые сутки тестирования memtest-ом. После замены памяти, все проблемы, естественно, исчезли. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 14:00 |
|
Не отрабатывает foreign key
|
|||
---|---|---|---|
#18+
Обнаружил такие записи в firebird.log - на проверке. Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
И еще по паре таблиц такие же ошибки. Плюс warnings Код: sql 1. 2. 3.
После исправления таких ошибок в логе нет. Но необходимые записи не появились. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 14:52 |
|
Не отрабатывает foreign key
|
|||
---|---|---|---|
#18+
red_tracer demon1992 пропущено... Он не в конфиге, а в хидере бд. Сделай gstat -h, там увидишь. Force write установлен, насколько вижу. Запускал валидацию таким образом gfix -mend -full -ignore -user SYSDBA -pas masterkey database.gdb После такой "валидации" ты их и потерял. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 15:40 |
|
|
start [/forum/topic.php?fid=40&fpage=10&tid=1560201]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
338ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
others: | 231ms |
total: | 675ms |
0 / 0 |