MariaDB - Двоичный журнал, часть первая
Коллеги всем привет.
Я начинаю новую серию статей об очень важном компоненте в MariaDB который называется Binary Log.
Двоичный журнал важен тем что он в себе содержит все записи и изменения которые происходят в базе данных. В двоичных журналах содержится как данные, так и структура всех схем баз данных, а также о том, сколько времени потребовалось для выполнения каждого оператора. В двоичных журналах не регистрируются только те действия которые не изменяют базу данных, такие команды как: SELECT и SHOW.
Использовать двоичные журналы можно в разных целях. Например, при репликации или резервном копировании, а так же откатить базу данных на какой-то момент времени и много другое.
В своих статьях я буду вам рассказывать обо всех возможностях двоичных журналов.
Версию базы данных я использую 10.8.3.
Содержимое статьи:
- Проверка включен ли двоичный журнал.
- Включаем двоичный журнал.
- Настройка имени и место хранения двоичных журналов.
- Сжатие.
- Размер двоичного журнала.
1. Проверка включен ли двоичный журнал.
После установки СУБД по умолчанию двоичный журнал выключен. За включения двоичного журнала отвечает переменная log_bin.
mariadb> SHOW VARIABLES LIKE 'log_bin';
Значения OFF значит двоичный журнал выключен.
2. Включаем двоичный журнал.
Переменная log_bin является статической, это значит что через команду SET либо SET GLOBAL не получится изменить значения переменной. Для того чтобы включить двоичный журнал, нужно менять значения переменной в конфигурационном файле. Конфигурационный файл находится в директории /etc/my.cnf.d/server.cnf
$. vim /etc/my.cnf.d/server.cnf
Сохраняем файл и перезапускаем базу данных.
После повторной проверки переменной мы видим что значения OFF поменялось на ON.
И еще ко всему у нас в директории с базой данных появилось два файла.
- ON.000001 - Это как раз и есть двоичный журнал.
- ON.index - В этом файле хранится весь список двоичных журналов который создаются в процессе работы базы данных.
3. Настройка имени и место хранения двоичных журналов.
Я думаю со мной многие согласятся, что начало названия двоичного журнала которое начинается на ON как-то не очень хорошо. Та и вообще лучше все двоичные журналы хранить где-то отдельно от базы данных.
mariadb> SHOW VARIABLES LIKE '%log_bin%';
- log_bin - Означает что двоичный журнал включен.
- log_bin_basename - Имя журнала и директория где будут храниться все журналы.
- log_bin_index - Простой файл в котором будут перечислены все двоичные журналы.
Я предлагаю создать отдельную директорию binarylog для хранения всех двоичных журналов.
$. mkdir /mariadb/binarylog
После создания директории теперь можно менять значения переменной log_bin, но переменная является статической и по этому мы будем менять значения в конфигурационной файле базы данных.
$. vim /etc/my.cnf.d/server.cnf
Сохраняем файл и перезапускаем базу данных.
Как видим теперь файлы у нас называются mariadb-binary-log и хранится они будут всегда в директории binarylog.
4. Сжатие.
Двоичные журналы ради экономии места на диске можно сжимать, на производительность базы данных сжатие не влияет. За сжатие отвечает переменная log_bin_compress, по умолчанию сжатие выключено.
mariadb> SHOW VARIABLES LIKE 'log_bin_compress';
Переменная является динамической, по этому можно поменять значения в консоли.
mariadb> SET GLOBAL log_bin_compress = ON;
Ну и конечно тоже меняем значения переменной в конфигурационном файле.
5. Размер двоичного журнала.
У двоичных журналов есть свой максимальный размер, за это отвечает переменная max_binlog_size. По умолчанию размер каждого двоичного журнала равен 1 гигабайту.
mariadb> SHOW VARIABLES LIKE 'max_binlog_size';
Размер указан в байтах.
Переменная является динамической и по этому вы можете поменять размер в консоли. Если честно, то мне еще не разу не приходилось менять размер двоичного журнала, и по этому лучше трогать его не будем таким.
Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.