powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
25 сообщений из 59, страница 1 из 3
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071315
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня,

FB2.5
есть скрипт обновления версии базы данных, запускается из delphi (firedac).
Хочется выполнять его в рамках одной транзакции дабы если что не так всё откатить назад.
В скрипте есть, к примеру добавление полей в таблицу, потом вставка записей в эту таблицу или создание хранимой процедуры использующих добавленное поле и выполнение этой хранимой процедуры итп
Есть ли возможность выполнить все эти действия в рамках одной транзакции, без промежуточных коммитов? Дабы при попытке внесения данных в таблицу с добавленным полем не вываливало исключение что такого поля нет итп Как добиться атомарности всего обновления?

Спасибо
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071318
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нельзя.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071325
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий,

есть ли тогда другая возможность добиться атомарности обновления?
Есть же какои то механизм работы через Delta файл при резервном копировании.
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071326
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hlopotunесть ли тогда другая возможность добиться атомарности обновления?

Бэкап перед обновлением.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071329
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скажем искуственно инициировать работу через delta файл а потом в случае успеха слить его с базой или отбросить. Или при работе через delta файл операции с метаданными запрещены?
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071331
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

hlopotunесть ли тогда другая возможность добиться атомарности обновления?

Бэкап перед обновлением.

это по любому
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071334
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
19.05.2021 14:29, hlopotun пишет:
> есть ли тогда другая возможность добиться атомарности обновления?

1. шатдаун
2. бекап
3. накат скрипта
4. перевод в онлайн.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071335
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hlopotunэто по любому

Восстановление при неудаче. Вот тебе и атомарность.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071339
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
или, допустим, есть же тип транзакций который позволяет видеть изменения которые ещё не зафиксированы коммитом в других транзакциях. Если представить себе 2 таких транзакции. Одна делает изменение метаданных но не делает коммит, вторая позднее вносит данные в таблицу и в случае проблем обе делают роллбак в обратном порядке.
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071341
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hlopotun
и в случае проблем
Хочешь проблем - занимайся ими сам, другим людям их нести не обязательно.
Разработчики говорят, и в документации (уверен ;) ) написано, что после любого изменения методанных следует делать коммит, чтобы не иметь проблем.
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071343
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockРазработчики говорят, и в документации (уверен ;) ) написано, что после любого изменения
методанных следует делать коммит, чтобы не иметь проблем.

Точнее не после любого, а после того, которое выполняется только во время коммита.
Создание и изменение таблицы как раз попадает в эту категорию.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071346
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

жалко, было бы удобно :/
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071348
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оно так работало в изначальном дизайне Джима, но потом полезли глюки из-за которых всё и
запретили.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071350
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

Оно так работало в изначальном дизайне Джима, но потом полезли глюки из-за которых всё и
запретили.

интересно было бы почитать что то об этом
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071352
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Архивы этого форума, firebird-support и firebird-devel рекомендую.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071356
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

Архивы этого форума, firebird-support и firebird-devel рекомендую.

я подписан, но там чёрт ногу сломит. В кой хоть версии примерно такое было возможно? или всё дальше альфы не поднималось?
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071358
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я же сказал: в оригинальной архитектуре Джима. То есть Groton Database и Interbase до
тройки или четвёрки.

PS: Хотя нет, вру. Отбил видимость новосозданной таблицы в той же транзакции только Еманов где-то в районе Firebird 2. До этого в неё можно было добавлять записи, портя при этом базу.
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071361
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

интересно было бы если бы разработчики тут ещё что то сказали. В чём возникли когда то проблемы, есть ли такое в планах итп.
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071364
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov
Я же сказал: в оригинальной архитектуре Джима. То есть Groton Database и Interbase до
тройки или четвёрки.

PS: Хотя нет, вру. Отбил видимость новосозданной таблицы в той же транзакции только Еманов где-то в районе Firebird 2. До этого в неё можно было добавлять записи, портя при этом базу.

т.е. только с порчей базы, по нормальному и не работало
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071366
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы это более-менее работало надо:

1. Избавиться от DFW.
2. Желательно избавиться от RDB$FORMAT.
3. Изменить способ нумерации таблиц.
4. Перенести работу с системными таблицами из системной транзакции в пользоательскую.
5. Что-то сделать с кэшем метаданных.
6. Обучить сборщик мусора удалять структуры из база при чистке системных таблиц.

Это только то, что мне вспоминается сходу и кто знает какие ещё глюки после этого полезут.
Поэтому в планах ничего похожего ни у кого нет. Кроме разве что второго пункта для пятёрки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071367
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

ок, если обновление метаданных происходит в рамках системной транзакции то соотв. всь мой бред выше можно выкинуть.
По крайней мере смогу теперь обьяснить заинтересованным почему так сделать нельзя.

Спасибо за информацию.
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071368
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
19.05.2021 15:12, hlopotun пишет:
> По крайней мере смогу теперь обьяснить заинтересованным почему так сделать нельзя.

бесполезно.
ибо сказано в писании: "мы, в MSSQL, транзакции не используем!" ©
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071370
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
единственное по повору delta файла, когда работа ведётся через него, скорее всего обновление метаданных тоже невозможно? Что бы уж была полная картина.
Хотя конечно сомнительно что в delta файле хранятся и изменения в метаданных.
Интересно было бы почитать что то более подробное про механизм его работы.
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071376
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тут пишут про эволюцию nbackup
В частности:
ibphoenixDelta file contains:
– Changed database pages
– Mapping table between delta and database

означает ли это что всётаки можно вносить изменения.
Надо попробовать.
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071382
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hlopotun,

изменения куда? при нбэкапе ЛЮБЫЕ изменения пишутся в дельту.
...
Рейтинг: 0 / 0
25 сообщений из 59, страница 1 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]