MariaDB - Двійковий журнал, частина перша

MariaDB - Двійковий журнал, частина перша

Колеги всім привіт.

Я починаю нову серію статей про дуже важливий компонент у MariaDB який називається Binary Log.

Двійковий журнал важливий тим, що він містить всі записи і зміни, які відбуваються в базі даних. У двійкових журналах міститься як дані, так і структура всіх схем баз даних, а також про те, скільки часу знадобилося для виконання кожного оператора. У двійкових журналах не реєструються ті дії, які не змінюють базу даних, такі команди як: SELECT і SHOW.

Використовувати двійкові журнали можна з різною метою. Наприклад, при реплікації або резервному копіюванні, а також відкотити базу даних на якийсь момент часу і багато іншого.

У своїх статтях я розповідатиму вам про всі можливості двійкових журналів.

Версію бази даних я використовую 10.8.3.

 

Вміст статті:

  1. Перевірка увімкнена чи двійковий журнал.
  2. Включаємо двійковий журнал.
  3. Налаштування імені та місця зберігання двійкових журналів.
  4. Стиск.
  5. Розмір двійкового журналу.

 

1. Перевірка чи двійковий журнал.

Після встановлення стандарту СУБД двійковий журнал вимкнено. За включення двійкового журналу відповідає змінна log_bin.

mariadb> SHOW VARIABLES LIKE 'log_bin';

binary_log

Значення OFF означає двійковий журнал вимкнено.


 

2. Включаємо двійковий журнал.

Змінна log_bin є статичною, це означає, що через команду SET або SET GLOBAL не вдасться змінити значення змінної. Щоб увімкнути двійковий журнал, потрібно змінювати значення змінної у конфігураційному файлі. Конфігураційний файл знаходиться у директорії /etc/my.cnf.d/server.cnf

$. vim /etc/my.cnf.d/server.cnf

binary_log

Зберігаємо файл та перезапускаємо базу даних.

 

binary_log

Після повторної перевірки змінної ми бачимо, що значення OFF змінилося на ON.

 

binary_log

І ще до всього у нашій директорії з базою даних з'явилося два файли.

  • ON.000001 - Це якраз і є двійковий журнал.
  • ON.index - У цьому файлі зберігається весь список двійкових журналів, які створюються в процесі роботи бази даних.

 

3. Налаштування імені та місця зберігання двійкових журналів.

Я думаю зі мною багато хто погодиться, що початок назви двійкового журналу яка починається на ON якось не дуже добре. Та й взагалі краще всі двійкові журнали зберігати десь окремо від бази даних.

mariadb> SHOW VARIABLES LIKE '%log_bin%';

binary_log

  • log_bin - означає, що двійковий журнал увімкнено.
  • log_bin_basename - Ім'я журналу та директорія, де зберігатимуться всі журнали. 
  • log_bin_index - Простий файл, в якому будуть перераховані всі двійкові журнали.

 

Я пропоную створити окрему директорію binarylog для зберігання всіх двійкових журналів.

$. mkdir /mariadb/binarylog

Після створення директорії тепер можна змінювати значення змінної log_bin, але змінна є статичною і тому ми змінюватимемо значення в конфігураційному файлі бази даних.

$. vim /etc/my.cnf.d/server.cnf

binary_log

Зберігаємо файл та перезапускаємо базу даних.

 

binary_log

binary_log

Як бачимо тепер файли у нас називаються mariadb-binary-log і зберігаються вони будуть завжди в директорії binarylog.


 

4. Стиск.

Двійкові журнали заради економії місця на диску можна стискати, на продуктивність бази даних стиск не впливає. За стиснення відповідає змінна log_bin_compress, за замовчуванням стиснення вимкнено.

mariadb> SHOW VARIABLES LIKE 'log_bin_compress';

binary_log

 

Змінна динамічна, тому можна змінити значення в консолі.

mariadb> SET GLOBAL log_bin_compress = ON;

binary_log

 

Ну і звичайно теж міняємо значення змінної у конфігураційному файлі.

binary_log


 

5. Розмір двійкового журналу.

Двійкові журнали мають свій максимальний розмір, за це відповідає змінна max_binlog_size. За замовчуванням розмір кожного двійкового журналу дорівнює 1 гігабайту.

mariadb> SHOW VARIABLES LIKE 'max_binlog_size';

binary_log

Розмір вказаний у байтах.

Змінна динамічна і тому ви можете змінити розмір консолі. Якщо чесно, то мені ще не разу не доводилося змінювати розмір двійкового журналу, і тому краще чіпати його не будемо таким.


 

Всім дякую, я сподіваюся, що вам моя стаття хоч чимось допомогла.

СХОЖІ СТАТТІ

MariaDB - ERROR Incorrect definition of table
MariaDB - ERROR Incorrect definition of table
MARIADB
Читати далі
Mariabackup резервне копіювання - Стиснення gzip
Mariabackup резервне копіювання - Стиснення gzip
MARIADB
Читати далі
Mariabackup помилка - Error writing file UNKNOWN errno 32 Broken pipe
Mariabackup помилка - Error writing file UNKNOWN errno 32 Broken pipe
MARIADB
Читати далі