MariaDB - термін зберігання двійкових журналів, частина друга

MariaDB - термін зберігання двійкових журналів, частина друга

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

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

 

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

  1. Перегляд усього списку бінарних журналів у консолі.
  2. Перегляд усього списку через файл mariadb-binary-log.index.
  3. Перегляд якого двійкового журналу зараз активний для запису.
  4. Видаляємо всі журнали RESET MASTER.
  5. Видалити журнали за допомогою  PURGE BINARY LOGS.
  6. Змінні binlog_expire_logs_seconds та expire_logs_days

 

1. Перегляд усього списку двійкових журналів у консолі.

Для перегляду всього списку у нас є два варіанти: SHOW BINARY LOGS та SHOW MASTER LOGS.

mariadb> SHOW BINARY LOGS;

binary_log

 

mariadb> SHOW MASTER LOGS;

binary_log

 

Обидва ці варіанти абсолютно однакові, вони покажуть вам весь список двійкових журналів, які є на даний момент на сервері.


 

2. Перегляд усього списку через файл mariadb-binary-log.index

Є ще один варіант перегляду списку через файл  mariadb-binary-log.index. Я ним користуюся дуже рідко, користуюся тільки тоді, коли хочеться на 100% переконається, що результат консолі відповідає результату в цьому файлі.

Для початку давайте знайдемо цей файл, для пошуку можна скористатися командою в консолі:

mariadb> SHOW VARIABLES LIKE 'log_bin_index';

binary_log

binary_log

Як бачимо у файлі mariadb-binary-log.index знаходиться 5 записів, а значить консоль бази даних сказала нам правду.


 

3. Перегляд якого двійкового журналу зараз активний для запису.

Як ми пам'ятаємо з минулої статті, кожен двійковий журнал має розмір за замовчуванням 1 гігабайт. І щоб дізнатися, який журнал зараз використовує база даних для запису в нього є команда:

mariadb> SHOW MASTER STATUS;

binary_log

Як бачимо база даних зараз використовує двійковий журнал mariadb-binary-log.000005 для запису. Position означає на якій позиції зараз йде запис у файл, цей параметр дуже важливий коли у вас побудована реплікація.


 

4. Видаляємо всі журнали RESET MASTER.

Найпростіший спосіб видалити всі двійкові журнали це використовувати команду:

mariadb> RESET MASTER;

binary_log

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

!!!ВАЖЛИВО!!! Ніколи не використовуйте цю команду, якщо у вас побудована активна реплікація.


 

5. Видалити журнали за допомогою PURGE BINARY LOGS.

Як на мене PURGE BINARY LOGS є найбезпечнішою ручною командою для видалення двійкових журналів. З цією командою можна явно вказувати, які журнали ви хочете видалити.

 

Припустимо, у нас є 7 журналів.

binary_log

І припустимо я хочу видалити тільки журнал з ім'ям mariadb-binary-log.000005, а решта щоб залишилися. ТАК НЕ ВИЙДЕ!

 

Якщо ви вкажіть команду:

mariadb> PURGE BINARY LOGS TO 'mariadb-binary-log.000005';

binary_log

То виходить, що всі журнали, що були вище журналу mariadb-binary-log.000005, будуть видалені.

 

Також MariaDB має можливість видаляти двійкові журнали за певну дату:

mariadb> PURGE BINARY LOGS BEFORE '2022-05-28';

mariadb> PURGE BINARY LOGS BEFORE '2022-05-28 19:50:00';


 

6. Змінні binlog_expire_logs_seconds та expire_logs_days.

Останнім варіантом видалення двійкових журналів є налаштування двох змінних.

  • expire_logs_days - термін зберігання днями.
  • binlog_expire_logs_seconds - термін зберігання в секундах.

 

binary_log

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

 

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

mariadb> SET GLOBAL expire_logs_days = 2;

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
Читати далі