|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.08.2015, 08:46 | #1 |
Пользователь
Регистрация: 11.07.2009
Сообщений: 90
|
Бэкап БД после каждого изменения (INSERT, UPDАTE)
Возможно ли как-то реализовать автоматический бэкап БД после каждой команды INSERT, UPDАTE (данные операции выполняются не часто, так что насчет нагрузки можно не волноваться)?? Резервные копии делаются каждый день, но все же после сбоя работы системы не все изменения могут попасть в сам бэкап. Хотелось бы избежать потерь данных в таких ситуациях.
Сама программка простая (работа с пациентами), с БД работают параллельно 2 человека. Сначала возникла мысль по поводу триггеров, но они вроде как не работают в этом плане (или я просто не нашел). Есть варианты? П.С. Сама прога реализована на механизме ADO в среде Delphi 7
Apache/2.2.23 (Win32) PHP/5.3.18
Win7Pro 64 Vertrigo Последний раз редактировалось regman; 27.08.2015 в 08:49. |
27.08.2015, 08:55 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,792
|
Бэкап в реальном режиме времени это - Репликация.
Почитай в мануалах твоей СУБД может ли репликацию она делать.
I'm learning to live...
|
27.08.2015, 09:01 | #3 |
Пользователь
Регистрация: 11.07.2009
Сообщений: 90
|
репликацию делать некуда. Программка весьма проста чтобы запускать на втором ПК еще один сервер и делать репликацию. Да и клиент хочет сам уметь в случае переустановки винды настроить прогу (установка сервера, импорт бэкапа последнего) по инструкции. Если сюда еще репликацию приделать - то вряд ли он справиться.
Apache/2.2.23 (Win32) PHP/5.3.18
Win7Pro 64 Vertrigo Последний раз редактировалось regman; 27.08.2015 в 09:11. |
27.08.2015, 09:49 | #4 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,515
|
Цитата:
Цитата:
требование постоянного копирования это требования очень "осторожного" заказчика ? может сделать проще ? ДАТЬ пользователю возможность САМОМУ запускать процедуру копирования (backup) в любое удобное и(ли) интересующее его время. СДЕЛАТЬ "кнопку" РЕЗЕРВНОЕ КОПИРОВАНИЕ. а на триггер можно будет повесить "активацию" данной кнопки. чтобы напомнить забывчивому человеку о том что в БД есть НЕ скопированные изменения и конечно это не должно заменять копирование по расписанию!!! Человеки они такие, вечно все забывают, даже если им будут постоянно об этом напоминать.
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 27.08.2015 в 10:05. |
||
27.08.2015, 09:56 | #5 | |
Пользователь
Регистрация: 11.07.2009
Сообщений: 90
|
Цитата:
Подумал, может проще будет вести дневной лог в виде текстового файла в виде списка произведенных изменений, который будет обнуляться при исполнении команды резервного копирования....
Apache/2.2.23 (Win32) PHP/5.3.18
Win7Pro 64 Vertrigo Последний раз редактировалось regman; 27.08.2015 в 10:02. |
|
27.08.2015, 10:52 | #6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,493
|
Вы опрделитесь уже - вам шашечки или ехать?
Если вам нужна надежность, тогда у вас один путь - репликация. Если нет, тогда делайте кнопку бэкапа и всегда рискуйте, что можете потерять данные после последнего бэкапа. То, что вы будете писать в какой-то файл и обнулять его после команды резервного копирования вам ничего особенного не даст - те же яйца, только в профиль. |
27.08.2015, 12:21 | #7 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,792
|
Цитата:
Зачем при каждой транзакции? Это ничего не даст, данные не будут достаточно актуализированы все равно. А что за СУБД?
I'm learning to live...
|
|
27.08.2015, 14:06 | #8 | |
Пользователь
Регистрация: 11.07.2009
Сообщений: 90
|
Цитата:
Apache/2.2.23 (Win32) PHP/5.3.18
Win7Pro 64 Vertrigo |
|
27.08.2015, 14:40 | #9 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,792
|
Зачем так часто реплики делать? Репликация делается в основном на многопользовательской системе. А если один юзырь, то простого бэкапа в начале работы вполне хватает.
I'm learning to live...
|
28.08.2015, 20:01 | #10 |
Форумчанин
Регистрация: 27.01.2014
Сообщений: 115
|
Как-то я не увидел ни в одном ответе, в том числе и от автора - а где хранится бэкап? Если он хранится не на другом сервере в другой комнате, желательно чтобы она не горела вместе с комнатой где стоит сервер с бд, грош - цена этому бэкапу.
Может, я чего и не понял из обсуждения, но у меня сложилось мнение, что мало кто понимает в чем смысл бэкапа - сделать резервную копию данных на случай потери самой БД и лога. Мысль про бэкап на триггер - верх идиотизма. Бэкапирование базы выполняется не в доли секунды, а при росте базы может и часами выполняться. Не думаю, что пользователь после полугода-года работы будет рад вашей системе, зависающей после каждого чиха на пол минуты-минуту. Если вы используете нормальную СУБД, она имеет три вещи, которые вы должны грамотно использовать - транзакции, лог операций и план резервного копирования. В общем случае достаточно иметь ежедневный бэкап базы и, если данные особо ценные - ежечасный бэкап логов, или получасовой, если супер важные - 15 минут. Главное, чтобы ресурсы, затрачиваемые на бэкапирование логов не превышали допустимых пределов, а время восстановления базы не превышало времени между двумя последними бэкапами (в части бэкапов логов - между двумя бэкапами логов). Иначе смысла от такого резервного копирования никакого, либо база будет восстанавливаться дольше допустимого времени, либо ресурсы, затрачиваемые на бэкап базы (логов) будут тормозить работу пользователей. Именно поэтому придумали репликации и кластеризацию серверов. Если работает два пользователя и ценность информации измеряется не месячным бюджетом организации, а всего лишь потраченными 15ю минутами на допрос пользователей что было в прошлый раз - чего вы заморачиваетесь на тему бэкапирования? Бэкап базы раз в день и логов хоть каждый час решит вашу проблему раз и навсегда. Но опять же, вы говорите, что операции вставки и обновления выполняются нечасто, тогда в чем смысл постоянного бэкапирования? Типа пользователь идиот, любит баловаться, вставлять всякую фигню, обновлять карточки второго пользователя и ему для этого нужно иметь кучу бэкапов, чтобы ради смеха потом всё это откатить? А что значит сбой работы системы? Какой? Вашего приложения или ОС? Если вашего приложения - тестируйте лучше, данные проверяйте, что пользователь вводит. Если ОС - другой вопрос какой именно крах. Может вирус файлы запаролил и тогда бэкапы вам могут не помочь (если паролилось всё подряд). Переустановка ОС для нормальной СУБД никаких проблем не несет - файлы должны подцепляться без особых проблем, а в них и без бэкапов все данные должны быть. Бэкап - это точка восстановления для отката. На кой черт вам частые откаты? Повторюс, в случае если у вас бэкап лежит на том же компьютере что и база - то смысла в частых бэкапах вообще нет. Крах файловой системы решит все ваши проблемы раз и навсегда. Кстати, в виде извращения, можете воспользоваться облачными дисками мэйла или яндекса (скорость выше) для хранения полного бэкапа там, тогда будет хоть какая-то гарантия, что в случае краха системы данные можно будет восстановить хотя бы на позавчера (ибо бэкап за вчера мог не доехать) Последний раз редактировалось Stilet; 28.08.2015 в 20:19. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выполнять INSERT каждого дня только 1 раз | xxbesoxx | SQL, базы данных | 9 | 22.07.2015 13:22 |
Макрос вставки после каждого слова. | Demetros | Microsoft Office Word | 2 | 15.12.2014 23:04 |
вставить заданное значение после каждого элимента массива, расположенного после первого нулевого элимента | D.vers | Общие вопросы C/C++ | 0 | 01.06.2014 17:17 |
Написать процедуру подобно insert, которая после каждого вхождения символа C в строку S1 вставляет строку S2 | azalia | Паскаль, Turbo Pascal, PascalABC.NET | 17 | 09.01.2014 12:39 |
Макрос записать файл после каждого изменения | Konstantin_Z | Microsoft Office Excel | 6 | 06.02.2013 15:05 |