powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
9 сообщений из 59, страница 3 из 3
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071521
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hlopotun Например возможна ли ситуация при работе с дельтой когда что то может пойти не так как предполагается (с точки зрения обновления метаданных итп).
этот вопрос уже был задан. Метаданные - это почти такие же таблицы, как и обычные таблицы, разве что со специфической информацией. Запись который в БД требуется по всякому - например, один оператор рассовывается по разным таблицам (rdb$relations, rdb$fields, rdb$relation_fields, ....), другой оператор - выполняется по коммиту (alter index...), третий - еще как-то иначе.
При этом, никакой связи у метаданных с нбэкапом нет. Запись идет либо в дельту, либо в базу. И поэтому, перефразируя вопрос - "если нбэкапа нет, и при работе с БАЗОЙ что-то произошло, и т.д.".
Исходя из такой конструкции я бы как раз обновления метаданных только с дельтой и рекомендовал :-)

А с точки зрения повреждений - да, всякое бывает. Мы даже FirstAid научили дельты сливать с базой, если что. :-)
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071536
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvp.s. я так понимаю, это надо у Самофатова спрашивать, зачем понадобились sql-команды.

Чтобы обойтись без утилиты, например:
Код: sql
1.
2.
3.
alter database begin backup;
shell copy database.fdb backup.file;
alter database end backup;


Или "потому что так сделано в оракуле".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071616
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hlopotun
Небольшое дополнение ко всей этой истории.
Дело в то что размер базы данных бывает очень большим, у некоторых клиентов исчисляется терабайтами. Люди которым приходится делать обновление у клиентов вынуждены работать по ночам и выходным (дабы не останавливать фирмы на время обновления). Резервная копия (инкрементная) к моменту начала обновления всегда уже существует, но что бы её накатить нужны часы, иногда ночи недостаточно. Поэтому давно витала идея как то эту проблему обойти. Если работать через дельту то откат можно произвести в течении минут, при этом на крайний случай конечно иметь резервную копию. Со спеца снимается временное давление и он сможет спокойно решить проблему и накатить обновление снова. Более того успеть обслужить нескольких клиентов.
Поэтому спасибо всем за советы и за критику. Хотелось бы ещё услышать аргументы против такого решения, где это может споткнуться. Например возможна ли ситуация при работе с дельтой когда что то может пойти не так как предполагается (с точки зрения обновления метаданных итп). То что нормальная резервная копия есть это как бы подразумевается.

Спасибо

На копию базы накатываете изменения.
Работа клиентов продолжается с основной базой.
Потом подключаете копию к системе репликации, изменения данных из основной базы переносятся в копию. Клиенты при следующих коннектах подключаются к копии, далее копия становится основной базой.

Изменения должны быть совместимы с системой репликации, конечно.
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071909
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ъъъъъ
hlopotun
Небольшое дополнение ко всей этой истории.
Дело в то что размер базы данных бывает очень большим, у некоторых клиентов исчисляется терабайтами. Люди которым приходится делать обновление у клиентов вынуждены работать по ночам и выходным (дабы не останавливать фирмы на время обновления). Резервная копия (инкрементная) к моменту начала обновления всегда уже существует, но что бы её накатить нужны часы, иногда ночи недостаточно. Поэтому давно витала идея как то эту проблему обойти. Если работать через дельту то откат можно произвести в течении минут, при этом на крайний случай конечно иметь резервную копию. Со спеца снимается временное давление и он сможет спокойно решить проблему и накатить обновление снова. Более того успеть обслужить нескольких клиентов.
Поэтому спасибо всем за советы и за критику. Хотелось бы ещё услышать аргументы против такого решения, где это может споткнуться. Например возможна ли ситуация при работе с дельтой когда что то может пойти не так как предполагается (с точки зрения обновления метаданных итп). То что нормальная резервная копия есть это как бы подразумевается.

Спасибо

На копию базы накатываете изменения.
Работа клиентов продолжается с основной базой.
Потом подключаете копию к системе репликации, изменения данных из основной базы переносятся в копию. Клиенты при следующих коннектах подключаются к копии, далее копия становится основной базой.

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


проблема в том что клиенты очень разношерстные. Есть большие конторы а есть совсем маленькие шарашкины конторы. Если для больших заморачиваться с репликачией может и имеет смысл то с маленькими это только лишний гемморой и траты. Тут порой даже проблема тупо в дисковом пространстве встаёт, у клиента не оказывается под рукой достаточно дискового пространства что бы сделать резервную копию в процессе обновления и потом её использовать. Бызы порой здоровенные (даже у маленьких контор), тупо их копировать уже куча времени. Поэтому вариант с delta и муссируется. Мы не можем сказать клиенту "пока то и то не сделаешь обновление не получишь". Все они платят денюжку и конечная цель что бы и дальше её исправно и вовремя платили. Клиентов конечно предупреждают если видят проблемы но конечный выбор остаётся за клиентом. К тому же маленькие конторы не всегда могут позволить себе многочассовую поддержку при обновлении, дорогое железо и своих спецов. Поэтому приходится выкручиваться как можем. Пока получается.
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071922
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv
Шавлюк Евгений,

если задача именно в том чтобы тырить дельту, то шатдаун не обязателен :-)

другими словами останавливать FB необязательно? достаточно запустить nbackup -F .... при работаюшем FB не запуская gfix для shutdown и он отпустит deltа файл и переключится в режим normal?
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40071977
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,

с репликацией в hqbird и FB4 это не получится. Потому что копия реплики - ридонли. А если ее перевести в RW, она уже перестанет быть копией.
Тут же как было бы прикольно - с рабочей базы сделал реплику, на реплику накатил изменения, и потом пульнул "изменения" с реплики на копию. Но нет, не выйдет, это должна быть мастер-мастер репликация.
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40072105
Sergey A. Volkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv
p.s. я так понимаю, это надо у Самофатова спрашивать, зачем понадобились sql-команды.

Для копирования БД с windows сервера без доступа к терминалу.
Алгоритм
В sql блокируем БД "alter database begin backup;"
Копируем файл с сетевого диска windows сервера
В sql разблокируем БД "alter database end backup;"
...
Рейтинг: 0 / 0
Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
    #40072405
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
21.05.2021 23:54, Sergey A. Volkov пишет:
> В sql блокируем БД "alter database begin backup;"
> Копируем файл с сетевого диска windows сервера
> В sql разблокируем БД "alter database end backup;"

ахуи восхитительно!
(сарказм)

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

Ораклоиды с прошлого века жрут и не морщатся.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
9 сообщений из 59, страница 3 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Изменить метаданные, структуру таблицы и добавить в неё данные в одной транзакции
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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