|
Теряются записи в таблице
|
|||
---|---|---|---|
#18+
Доброго времени суток. Firebird 3.0.4.33054. ServerMode = Super Уже не первый раз "теряются" записи в таблице. Не полностью, но доступ к "потерянным" записям можно получить только по индексу. Наполнение данной таблицы происходит в процедуре, где добавляются данные и в другие таблицы. А "теряются" только в одной. Таблица ничем принципиально не отличается от других, id - pk, пару внешних ключей, и пару блов полей. Код: sql 1. 2.
Второй запрос получает с таблицы на пару десятков записей больше. Для восстановления делаю копию таблицы. Записываю в новую таблицу полученные данные с первой таблицы без использования ключа. Затем добавляю остальные записи полученные через ключ, помечаю их. Отключаю триггеры. Добавляю потерянные записи как новые. Переписываю внешние ключи к этим записям. Удаляю "потерянные" записи. На всякий бекап/ресторе. Может кто сталкивался, подскажите что делать. И как, если что, быстро восстановить записи в этом случае, а то на процедуру описанную выше уходит не меньше часа. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2019, 18:11 |
|
Теряются записи в таблице
|
|||
---|---|---|---|
#18+
SHS_SHS, подозреваю что вот это https://www.sql.ru/forum/1313832/fb3-0-portyatsya-indeksy-nevosstanovimyy-bekap?hl=????????? gfix такое чинит. Вообще неплохо бы чтобы кто-то уже смог сделать воспроизводимый пример, чтобы это починили ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2019, 19:36 |
|
Теряются записи в таблице
|
|||
---|---|---|---|
#18+
Симонов Денисподозреваю что вот это Да, прям один-в-один. Мы тоже перешли с 2.5 в этом году, и до этого не было ошибок вообще. Только я бы сказал, что не индексы портятся, больше похоже, что между записью и таблицей связи нет. По индексу как раз таки можно к записи обратиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2019, 21:29 |
|
Теряются записи в таблице
|
|||
---|---|---|---|
#18+
SHS_SHS, там не понятный глюк когда некоторые DP помечаются как вторичные (страницы на которых только фрагменты или версии, без самих записей). Они пропускаются при NATURAL SCAN. Чтобы это исправить нужен воспроизводимый пример. Ну или хотя бы поведуйте что с этой таблицей делалось, какой FW=ON/OFF? Появится Влад может ещё чего спросит ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2019, 21:45 |
|
Теряются записи в таблице
|
|||
---|---|---|---|
#18+
Симонов ДенисПоявится Влад может ещё чего спроситВопросы всё те же самые ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2019, 21:58 |
|
Теряются записи в таблице
|
|||
---|---|---|---|
#18+
IBE говорит, что Forced Writes включен. Кажется нашел кое-что. Таблица адресов клиентов "CLIENT_ADDRESSES". У одного клиента может быть несколько адресов и только один может использоваться по умолчанию. Поэтому в триггере AFTER UPDATE есть это: Код: sql 1. 2. 3. 4. 5.
а должно быть, наверное, это: Код: sql 1. 2. 3. 4. 5. 6.
Первый запрос (отдельно от триггера) на не загруженной базе выполняется почти 2 сек. Меняет около 80к записей. Походу отваливается с ошибкой (завтра узнаю), т.к. судя по нему почти все записи должны быть с is_default = 0. Второй запрос выполняется мгновенно. И все усугубляет запись во втором триггере на BEFORE UPDATE: Код: sql 1. 2. 3.
З.Ы. Так что единственное, что нужно тут исправлять - это кому-то руки... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2019, 23:17 |
|
Теряются записи в таблице
|
|||
---|---|---|---|
#18+
Посмотрели программу, посмотрели код формы. Если просто менять эту галку, то все отрабатывает (если это можно так назвать) без ошибок. По коду в этой же транзакции может быть добавление, удаление и изменение других записей таблицы адресов. Вот тогда и вываливается ошибка памяти. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2019, 09:41 |
|
Теряются записи в таблице
|
|||
---|---|---|---|
#18+
SHS_SHSЗ.Ы. Так что единственное, что нужно тут исправлять - это кому-то руки... кривизна вашей реализации никак не должна приводить к порче базы данных на физическом уровне. Так что вопрос остаётся открытым. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2019, 10:23 |
|
Теряются записи в таблице
|
|||
---|---|---|---|
#18+
Сохранил вчерашний бекап базы и код программы. Будет время - постараюсь повторить и свести базу до минимума. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2019, 10:45 |
|
|
start [/forum/topic.php?fid=40&msg=39879725&tid=1560529]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
137ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 239ms |
0 / 0 |