MySQL: транзакции и защита от сбоев
В базовый пакет Денвера входит сервер баз данных MySQL. Данная статья описывает, как полностью включить в нем режим поддержки транзакций и защиты от сбоев.
На данный момент MySQL может работать с двумя типами таблиц, поддерживающих транзакции. Это — Berkeley DB и InnoDB.
- Berkeley DB (BDB) подключена по умолчанию и не требует каких-либо дополнительных настроек.
-
В отличие от BDB, InnoDB обладает тем преимуществом, что в ней реализован алгоритм 100%-надежного восстановления после сбоев. Например, нажав Reset даже во время интенсивной работы с БД, вы можете быть уверены, что таблица не разрушится. Но за все приходится платить: поддержка InnoDB требует больших затрат оперативной и дисковой памяти.
Учтите: InnoDB требует, чтобы на диске было свободно не менее 100 MB. Это нужно для хранения журналов откатов операций и восстановления после сбоя.
Для того чтобы включить InnoDB (если она окажется отключенной), откройте в любом текстовом редакторе файл /usr/local/mysql4/my.cnf
и снимите комментарий (уберите #
) со следующей директивы:
#skip-innodb
При следующем запуске комплекса (и только один раз) MySQL решит «почистить перышки» и создать все необходимые для дальнейшей работы файлы. Вот тут-то и потребуются пресловутые 100 MB. Процесс довольно длительный (особенно на медленных машинах), но нужно набраться терпения и дождаться его окончания, не закрывая консольное окно сервера. И, конечно, при следующем запуске MySQL будет стартовать уже гораздо быстрее.
CREATE TABLE
.