# Главная
# О библиотеке

# Выбор дистрибутива
преимущества Linux/UNIX | основные дистрибутивы | серверный Linux | BSD | LiveCDs | прочее

# Установка и удаление программ
общие вопросы | каталоги софта | специальные случаи

# Настройка и работа
установка, загрузчики | настройка Linux | консоль | файловые системы | процессы | шеллы, русификация, коммандеры | виртуальные машины, эмуляторы

# X Window и оконные менеджеры
настройка X Window | GNOME | KDE | IceWM и др.

# Работа с текстами
редакторы | офис | шрифты, кодировки и русификация | преобразования текстовых файлов | LaTeX, SGML и др. | словари

# Графика
GIMP | фото | обработка изображений | форматы графических файлов

# Сети, администрирование
общие вопросы | Dialup & PPP | брандмауэры | маршрутизация | работа в Windows-сетях | веб-серверы | Apache | прокси-серверы | сетевая печать | прочее

# Программирование
GCC & GNU make | программирование в UNIX | графические библиотеки | Tcl | Perl | PHP | Java & C# | СУБД | CVS | прочее

# Ядро
# Мультимедиа
# Интернет
# Почта
# Безопасность
# Железо
# Разное

# Linux HowTo (как сделать)
# Книги и руководства
# Материалы на английском языке


MySQL The World's Most Popular Open Source Database # Online shop | Site map |  
CompanyProductsSupport & ConsultingTraining & CertificationDownloadsDocumentation
  BooksArticlesMailing ListsPresentationsOther Sites  
Search the MySQL manual:
MySQL Manual
  • 4 Администрирование баз данных
    • 4.9 Файлы журналов MySQL
      • 4.9.1 Журнал ошибок
      • 4.9.2 Общий журнал запросов
      • 4.9.3 Журнал обновлений (update)
      • 4.9.4 Бинарный журнал обновлений
      • 4.9.5 Журнал медленных запросов
      • 4.9.6 Обслуживание файлов журналов

Buy this Reference Manual in softcover from Barnes & Noble!

MySQL Reference Manual
Previous / Next / Up / Table of Contents

4.9.4 Бинарный журнал обновлений

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

Бинарный журнал содержит всю информацию, имеющуюся в журнале обновлений, в более эффективном формате. В нем имеется информация и о времени выполнения каждого обновляющего базу запроса.

Бинарный журнал используется и при репликации подчиненного сервера (slave) с головного (master) (see section 4.10 Репликация в MySQL).

При запуске с ключом --log-bin[=file_name] mysqld создает файл журнала, в который вносятся данные обо всех обновляющих данные командах SQL. Если имя файла не задано, по умолчанию ему дается имя хоста с окончанием -bin. Если файлу присвоено имя, не содержащее пути доступа к нему, этот файл сохраняется в каталоге данных.

При вводе расширения в имя файла (например: --log-bin=filename.extension) это расширение удаляется без предупреждения.

К имени файла бинарного журнала программа mysqld прибавляет специальное расширение - номер, увеличивающийся при каждом выполнении команд mysqladmin refresh, mysqladmin flush-logs, FLUSH LOGS или перезапуске сервера. При достижении файлом журнала максимального размера, заданного в параметре max_bin_log_size, автоматически создается новый. Все неактивные файлы бинарных журналов можно удалить командой RESET MASTER (see section 4.5.4 Синтаксис команды RESET.

На выбор данных, записываемых в журнал, влияют следующие настройки mysqld:

Опция Описание
binlog-do-db=database_name Заставляет master заносить в журнал все обновления определенной базы данных, все явно не указанные базы исключаются (пример: binlog-do-db=some_database)
binlog-ignore-db=database_name Заставляет master отказаться от занесения в журнал обновлений определенной базы данных (пример: binlog-ignore-db=some_database)

Чтобы была возможность определить, какие файлы журналов используются в данный момент, mysqld создает и индексный файл, содержащий имена всех находящихся в работе файлов. По умолчанию ему присваивается то же имя, что и файлу журнала, но с расширением .index. Имя этого файла можно изменить с помощью параметра --log-bin-index=[filename].

При использовании репликации удалять старые файлы журналов не стоит до тех пор, пока вы не будете уверены в том, что они никогда не понадобятся ни одной зависимой базе. Добиться такого результата можно, запуская команду mysqladmin flush-logs раз в день и затем удаляя все журналы, созданные более 3 дней назад.

Работать с файлами бинарного журнала можно с помощью программы mysqlbinlog. Обновить MySQL в соответствии с записями в журнале можно так:

mysqlbinlog log-file | mysql -h server_name

С помощью программы mysqlbinlog можно даже считывать файлы журнала прямо с удаленного сервера MySQL!

При запуске mysqlbinlog с ключом --help на экран выводится дополнительная информация по работе с этой программой.

При работе с настройками BEGIN [WORK] или SET AUTOCOMMIT=0 для резервного копирования нужно использовать бинарный журнал, а не старый журнал обновлений.

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

Все обновления (UPDATE, DELETE или INSERT), изменяющие транзакционную таблицу (например, BDB-таблицу) находятся в кэше до вызова COMMIT. Обновления нетранзакционных таблиц заносятся в журнал сразу же. При запуске каждого потока создается буфер запросов, объем которого соответствует значению параметра binlog_cache_size. Если запрос не помещается в буфере, поток создаст временный файл для кэша. Временный файл удаляется по завершении работы потока.

Параметр max_binlog_cache_size позволяет ограничить общий объем памяти, используемой для кэширования мультитранзакционного запроса.

При использовании журнала обновлений или бинарного журнала параллельные операции вставки столбцов в таблицу не могут работать с командами CREATE ... INSERT и INSERT ... SELECT. Это сделано специально - для того, чтобы обеспечить возможность создания точной копии таблиц путем объединения резервной копии с журналом.

User Comments

Add your own comment.

Top / Previous / Next / Up / Table of Contents
# MySQL.com home | Site map | Contact us | Press | Jobs | Privacy policy | Trademark info | © 1995-2003 MySQL AB. All rights reserved.