Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
19.05.2021, 14:15
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
Всем доброго дня, FB2.5 есть скрипт обновления версии базы данных, запускается из delphi (firedac). Хочется выполнять его в рамках одной транзакции дабы если что не так всё откатить назад. В скрипте есть, к примеру добавление полей в таблицу, потом вставка записей в эту таблицу или создание хранимой процедуры использующих добавленное поле и выполнение этой хранимой процедуры итп Есть ли возможность выполнить все эти действия в рамках одной транзакции, без промежуточных коммитов? Дабы при попытке внесения данных в таблицу с добавленным полем не вываливало исключение что такого поля нет итп Как добиться атомарности всего обновления? Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 14:18
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
нельзя. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 14:22
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
Мимопроходящий, есть ли тогда другая возможность добиться атомарности обновления? Есть же какои то механизм работы через Delta файл при резервном копировании. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 14:26
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
hlopotunесть ли тогда другая возможность добиться атомарности обновления? Бэкап перед обновлением. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 14:28
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
скажем искуственно инициировать работу через delta файл а потом в случае успеха слить его с базой или отбросить. Или при работе через delta файл операции с метаданными запрещены? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 14:29
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
Dimitry Sibiryakov hlopotunесть ли тогда другая возможность добиться атомарности обновления? Бэкап перед обновлением. это по любому ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 14:31
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
19.05.2021 14:29, hlopotun пишет: > есть ли тогда другая возможность добиться атомарности обновления? 1. шатдаун 2. бекап 3. накат скрипта 4. перевод в онлайн. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 14:31
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
hlopotunэто по любому Восстановление при неудаче. Вот тебе и атомарность. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 14:35
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
или, допустим, есть же тип транзакций который позволяет видеть изменения которые ещё не зафиксированы коммитом в других транзакциях. Если представить себе 2 таких транзакции. Одна делает изменение метаданных но не делает коммит, вторая позднее вносит данные в таблицу и в случае проблем обе делают роллбак в обратном порядке. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 14:38
|
|||
---|---|---|---|
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
hlopotun и в случае проблем Разработчики говорят, и в документации (уверен ;) ) написано, что после любого изменения методанных следует делать коммит, чтобы не иметь проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 14:41
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
YuRockРазработчики говорят, и в документации (уверен ;) ) написано, что после любого изменения методанных следует делать коммит, чтобы не иметь проблем. Точнее не после любого, а после того, которое выполняется только во время коммита. Создание и изменение таблицы как раз попадает в эту категорию. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 14:43
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
Dimitry Sibiryakov, жалко, было бы удобно :/ ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 14:45
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
Оно так работало в изначальном дизайне Джима, но потом полезли глюки из-за которых всё и запретили. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 14:46
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
Dimitry Sibiryakov Оно так работало в изначальном дизайне Джима, но потом полезли глюки из-за которых всё и запретили. интересно было бы почитать что то об этом ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 14:49
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
Архивы этого форума, firebird-support и firebird-devel рекомендую. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 14:52
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
Dimitry Sibiryakov Архивы этого форума, firebird-support и firebird-devel рекомендую. я подписан, но там чёрт ногу сломит. В кой хоть версии примерно такое было возможно? или всё дальше альфы не поднималось? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 14:54
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
Я же сказал: в оригинальной архитектуре Джима. То есть Groton Database и Interbase до тройки или четвёрки. PS: Хотя нет, вру. Отбил видимость новосозданной таблицы в той же транзакции только Еманов где-то в районе Firebird 2. До этого в неё можно было добавлять записи, портя при этом базу. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 14:57
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
Dimitry Sibiryakov, интересно было бы если бы разработчики тут ещё что то сказали. В чём возникли когда то проблемы, есть ли такое в планах итп. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 15:00
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
Dimitry Sibiryakov Я же сказал: в оригинальной архитектуре Джима. То есть Groton Database и Interbase до тройки или четвёрки. PS: Хотя нет, вру. Отбил видимость новосозданной таблицы в той же транзакции только Еманов где-то в районе Firebird 2. До этого в неё можно было добавлять записи, портя при этом базу. т.е. только с порчей базы, по нормальному и не работало ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 15:04
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
Чтобы это более-менее работало надо: 1. Избавиться от DFW. 2. Желательно избавиться от RDB$FORMAT. 3. Изменить способ нумерации таблиц. 4. Перенести работу с системными таблицами из системной транзакции в пользоательскую. 5. Что-то сделать с кэшем метаданных. 6. Обучить сборщик мусора удалять структуры из база при чистке системных таблиц. Это только то, что мне вспоминается сходу и кто знает какие ещё глюки после этого полезут. Поэтому в планах ничего похожего ни у кого нет. Кроме разве что второго пункта для пятёрки. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 15:12
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
Dimitry Sibiryakov, ок, если обновление метаданных происходит в рамках системной транзакции то соотв. всь мой бред выше можно выкинуть. По крайней мере смогу теперь обьяснить заинтересованным почему так сделать нельзя. Спасибо за информацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 15:15
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
19.05.2021 15:12, hlopotun пишет: > По крайней мере смогу теперь обьяснить заинтересованным почему так сделать нельзя. бесполезно. ибо сказано в писании: "мы, в MSSQL, транзакции не используем!" © Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 15:16
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
единственное по повору delta файла, когда работа ведётся через него, скорее всего обновление метаданных тоже невозможно? Что бы уж была полная картина. Хотя конечно сомнительно что в delta файле хранятся и изменения в метаданных. Интересно было бы почитать что то более подробное про механизм его работы. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2021, 15:33
|
|||
---|---|---|---|
|
|||
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции |
|||
#18+
тут пишут про эволюцию nbackup В частности: ibphoenixDelta file contains: – Changed database pages – Mapping table between delta and database означает ли это что всётаки можно вносить изменения. Надо попробовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=40&tablet=1&tid=1560030]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
180ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 301ms |
0 / 0 |