170 похожих чатов

У меня возникла задача сделать "защиту от долбоебов". У меня

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

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

Как вы делаете бекап базы данных по таймеру? Вплане у меня ивент луп с тг ботом, который ловит запросики. Делать мультитредом ещё один процесс с бекапом базы?

Насколько я помню, мможет возникнуть ошибка, при которой я буду читать файл во время записи в него данных. А делать всё однопотоком - будет проблема с задержкой на время чтения, и бот не будет отвечать.


В общем, я ни разу не видел как это реализовывают и понятия не имею как это работает. Хелп ми плиз

26 ответов

36 просмотров
Ax3🇺🇦- Автор вопроса

Если кинете статью или лучше пример исходников - буду очень благодарен

делать бэкап перед каждым "DELETE ..."🤓

Ax3🇺🇦- Автор вопроса

Бля. Может "техническую паузу" на это время просто делать...

Ax3🇺🇦- Автор вопроса
Ax3🇺🇦
Бля. Может "техническую паузу" на это время просто...

база легковестная, один текст небольшой да файл айдишники. Даже если большая будет - максимум минуты три

Как копировать БД зависит от того как эта БД устроена

Можно триггер поставить на BEFORE DELETE или я что-то не так понял. Чтобы другие транзакции не влияли можно поставить лок или синхронизировать сами корутины/потоки. А чего бы вообще не добавить флаг в схему. По дефолту true, если надо удалить запись ставишь false

Ax3🇺🇦- Автор вопроса
Леонид
Можно триггер поставить на BEFORE DELETE или я что...

у меня делит происходит каждые минут 5. Бекапать всю базу перед каждой транзакцией - бред

>бд которая может изменяться в рантайме через админ-панель, куда имеет доступ владелец и админы. Это изначально хуёвый подход. Сделай нормальную админку

Arkady Strugatsky
>бд которая может изменяться в рантайме через адми...

Ну если там кнопка добавить/удалить юзера, то что не так

quantum super position
Ну если там кнопка добавить/удалить юзера, то что ...

Я так понял у него прямой доступ к базе из админки

quantum super position
типа запросы писать что ли

Мне кажется у него просто какой-то pgadmin)

Ax3🇺🇦- Автор вопроса
Arkady Strugatsky
>бд которая может изменяться в рантайме через адми...

Э, смысле? Админы имеют доступ изменять бд. Владелец имеет доступ удалить или добавить админов, а так же доступ к бд Доступ к бд через отдельные методы, там нет возможности прописать голый скуль. Аля "нажми на кнопочку чтобы изменить Х в базе данных"

Ax3🇺🇦
Э, смысле? Админы имеют доступ изменять бд. Владе...

Если так, то почему что-то должно сломаться от этих действий?

Ax3🇺🇦- Автор вопроса
Arkady Strugatsky
Я так понял у него прямой доступ к базе из админки

Нет. Прослойка из функций, напрямую скуль запрос написать админы не могут

Ax3🇺🇦- Автор вопроса
Arkady Strugatsky
Если так, то почему что-то должно сломаться от эти...

Потому что админ может удалить нахуй всю базу, а бекапов нет защита от долбоеба же, писал выше

Ax3🇺🇦
Потому что админ может удалить нахуй всю базу, а б...

Каким образом админ вообще может удалить базу через админку? Нахуя в админке такая функциональность?

Ax3🇺🇦- Автор вопроса
Arkady Strugatsky
Каким образом админ вообще может удалить базу чере...

У меня бд с курсами и уроками. Админы могут редактировать данные курса, добавлять уроки и изменять их содержание.

Ax3🇺🇦
У меня бд с курсами и уроками. Админы могут реда...

Дамп по времени такое себе, новые записи будут теряться же. Можно планировщиком задать команду по расписанию. Посмотри cron если используешь линукс

Ax3🇺🇦
вянда(

На ней должен быть тоже планировщик. Также скрипт пишешь и будет запускать по заданному расписанию

Ax3🇺🇦- Автор вопроса
Ax3🇺🇦
хм. Окей

Всем большое спасибо

quantum super position
Кажется здесь какое-то противоречие

Я имел в виду, что в целом дамп данных по расписанию не будет учитывать новые данные, которые внесены после дампа и будут теряться при откате. Но это можно сделать планировщиком, если так хочется

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта