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