expire_logs_days პარამეტრი MySQL სერვერის კონფიგურაციაში საშუალებას გაძლევთ ავტომატურად წაშალოთ ბინარული ლოგ ფაილები, რომლებიც გარკვეული პერიოდის შემდეგ აღარ გამოიყენება. ამისათვის საჭიროა ეს პარამეტრი დაამატოთ MySQL-ის კონფიგურაციის ფაილში.

როგორ დავამატოთ expire_logs_days ავტომატიზაციისთვის:

  1. გახსენით MySQL-ის კონფიგურაციის ფაილი: MySQL-ის მთავარი კონფიგურაციის ფაილი ჩვეულებრივ მდებარეობს შემდეგ ლოკაციებზე:
    • Ubuntu/Debian: /etc/mysql/my.cnf
    • ან
    • /etc/mysql/mysql.conf.d/mysqld.cnfCentOS/RHEL: /etc/my.cnf
    გახსენით ეს ფაილი ტექსტური რედაქტორით, მაგალითად nano-თი:bash კოდის კოპირება sudo nano /etc/mysql/my.cnf ან bash კოდის კოპირება sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

  1. მონახეთ [mysqld] სექცია ან დაამატეთ იგი: ფაილში მოძებნეთ [mysqld] სექცია. თუ არ არსებობს, დაამატეთ იგი ფაილის დასაწყისში ან სხვა პარამეტრების ზემოთ. კოდის კოპირება [mysqld]
  2. დაამატეთ expire_logs_days პარამეტრი: დაამატეთ შემდეგი სტრიქონი [mysqld] სექციის ქვეშ: კოდის კოპირება expire_logs_days = 7 ეს პარამეტრი დაადგენს, რომ ყველა ბინარული ლოჯ ფაილი, რომელიც 7 დღეზე მეტია შექმნილი, ავტომატურად წაიშლება.
  3. შეინახეთ ფაილი და დახურეთ რედაქტორი: nano რედაქტორში ფაილის შესანახად და რედაქტორიდან გამოსასვლელად დააჭირეთ Ctrl + X, შემდეგ დააჭირეთ Y და Enter.
  4. გადატვირთეთ MySQL სერვისი: პარამეტრების ცვლილებების ამოქმედებისთვის საჭიროა MySQL სერვერის გადატვირთვა: bash კოდის კოპირება: sudo systemctl restart mysql ან თუ იყენებთ service: bash კოდის კოპირება: sudo service mysql restart

შემოწმება

ცვლილებების წარმატებით ამოქმედების შემდეგ, შეგიძლიათ შეამოწმოთ, რომ expire_logs_days პარამეტრი სწორად არის კონფიგურირებული:

  1. შედით MySQL-ში: bash კოდის კოპირება mysql -u root -p
  2. შეამოწმეთ პარამეტრი: sql კოდის კოპირება SHOW VARIABLES LIKE 'expire_logs_days';

თუ ყველაფერი სწორად არის კონფიგურირებული, სისტემა ავტომატურად წაშლის ბინარულ ლოჯ ფაილებს, რომლებიც 7 დღეზე მეტია შექმნილი.

ბოლოს კი გადამოწმეთ სერვერზე ფაილების მეხსიერება რამდენი გაქვთ ეხლა: df -h (კოდით)

MySQL/MariaDB-ში ყველა ბინარული ლოგის ერთდროულად წაშლისთვის, შეგიძლიათ გამოიყენოთ PURGE BINARY LOGS ბრძანება, რომელიც საშუალებას გაძლევთ წაშალოთ ლოგები ბოლო მოქმედი ლოგის ჩათვლით.

აი, როგორ უნდა წაშალოთ ყველა ბინარული ლოგი:

  1. MySQL-ში შესვლა:ჯერ საჭიროა MySQL/MariaDB-ში შესვლა:bashკოდის კოპირებაmysql -u root -p
  2. ყველა ბინარული ლოგის წაშლა:MySQL-ის შიგნით ჩაწერეთ შემდეგი ბრძანება, რომელიც წაშლის ყველა ბინარულ ლოგს, რაც კი არსებობს:sqlკოდის კოპირებაPURGE BINARY LOGS TO 'mysql-bin.000001'; ეს ბრძანება წაშლის ყველა ბინარულ ლოგს, გარდა mysql-bin.000001 ლოგის. თუ გსურთ ყველა ლოგის წაშლა, მაშინ გამოიყენეთ:sqlკოდის კოპირებაRESET MASTER; ეს ბრძანება წაშლის ყველა ბინარულ ლოგს და “განაახლებს” ლოგების გენერირებას.

ალტერნატიული MySQL-ის კოდი:

sql კოდის კოპირება
PURGE BINARY LOGS BEFORE NOW();

ეს ბრძანება გაასუფთავებს MySQL-ის ბინარულ ლოჯებს (binary logs), რომლებიც შეიძლება დიდ ადგილს იკავებდნენ.

გაფრთხილება: ყველა ბინარული ლოგის წაშლისას, დარწმუნდით, რომ არ დაგჭირდებათ მათი აღდგენა. თუ მონაცემთა ბაზის რეპლიკაციას იყენებთ, რეპლიკაციისთვის საჭირო ბინარული ლოგები წაიშლება, რაც შეიძლება გამოიწვიოს პრობლემები.

  1. MySQL-ის გასვლა: bash კოდის კოპირება exit

ამის შემდეგ MySQL-დან ყველა ბინარული ლოგი წაიშლება.

სერვერზე დისკის სივრცის შემოწმება

MySQL-ის კონფიგურაციის ან ბინარული ლოგების წაშლის შემდეგ, შეგიძლიათ გადაამოწმოთ სერვერზე არსებული დისკის სივრცე:

bashკოდის კოპირებაdf -h

ამ ბრძანებით მიიღებთ ინფორმაციას ფაილური სისტემის გამოყენების სტატუსზე, რაც დაგეხმარებათ დისკის სივრცის მონიტორინგში.

Leave a comment

Your email address will not be published. Required fields are marked *