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

программирование php MySQL C++ sql

Дело в том, что скрипты не полностью выполнились и остановились, а они обменивались ключами, которые, в результате сбоя, не все были записаны туда куда следует, а другие стали указывать не на одно конкретное место, а на несколько, вообщем: "Бяда-бяда, огорчение!"

Мне кажется, что каждый раз когда где-то, что-то меняешь, надо:

1)Временно заблокировать запись;
2)Создать резервную копию;
3)Временно заблокировать копию;
4)Не временно заблокировать запись
5)Провести изменения;
6)Удалить копию, блокировку копии и блокировку записи;
!)Естествено, каждое следующее действие нужно начинать только, если получилось сделать предыдущее.

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

А какие у вас мысли?

Примечание:
А где же почитать про эти возможности - в гугле наверно.
Я все больше начинаю склоняться к мысли, что "собственный велосипед", на первых парах, куда надежнее и быстрее(в написании), чем надеяться на расшифровку и толкование иноязычных инструкций.
Ответы:
> как избежать это?
Не изобретать велосипед, а использовать возможности, предоставляемые движком СУБД. Это, конечно, требует правильного проектирования базы.
Дело в том, что при правильном проектировании, целостность данных будет поддерживаться автоматически, собственно, это и есть одна из ключевых характеристик нормальных СУБД (гуглите аббревиатуру ACID). Тот же механизм транзакций, который Вы пытаетесь заново изобрести, это один из фундаментальных механизмов, на которых основано всё функционирование СУБД.
То, что вы спрашиваете называется ТРАНЗАКЦИЯ и поддерживается большинством СУБД, что называется, из коробки.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

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

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.