Hướng dẫn dùng cronjob lập lịch tự động restart Mysql khi server quá tải

1. Restart Mysql thủ công khi quá tải

MySQL có thể gặp sự cố khi hết bộ nhớ hoặc vì một số vấn đề khác trong trường hợp của mình là khi server chạy nhiều site khác nhau. Trong hầu hết các trường hợp, chúng ta có thể giải quyết vấn đề này bằng cách khởi động lại dịch vụ MySQL thủ công.

Để kiểm MySQL có đang chạy hay không, chạy câu lệnh:

Hoặc:

Nếu trạng thái Mysql đã tắt, khởi động lại bằng dòng lệnh:

Nếu làm thủ công như vậy thì đơn giản rồi, tuy nhiên nếu csdl bị quá tải vào giữa đêm, khi chúng ta đang ngủ thì website truy cập sẽ bị gián đoạn, dó chính là vấn đề, vậy làm sao để giải quyết vấn đề này ?

Với linux/Centos, hệ điều hành cung cấp cho chúng ta tính năng Cron , đó là một công cụ lập lịch công việc tự động chạy tập lệnh dựa trên thời gian cho Linux để có thể chạy các tập lệnh mà chúng ta không cần thao tác thủ công nữa.

2. Tạo một kịch bản (Bash script) khởi động lại MySQL

Bạn có thể cấu hình cron để tự động kiểm tra trạng thái của máy chủ MySQL và khởi động lại nó nếu nó gặp sự cố. Tất nhiên, đây không phải là một bản sửa lỗi vĩnh viễn cho máy chủ MySQL tồi tàn của bạn, nhưng nó có thể giúp bạn mất thời gian cho đến khi bạn có thể điều tra thêm.

Trước tiên, chúng ta cần tạo một tập lệnh BASH đơn giản và lưu trữ nó trong thư mục chính (hoặc bất cứ nơi nào bạn muốn), sau đó hướng dẫn cron chạy tập lệnh BASH này mỗi phút một lần.

Bạn có thể đặt tập lệnh này ở bất cứ đâu, nhưng trong ví dụ này, mình sẽ đặt nó trong thư mục root. hoặc, bạn có thể sử dụng bitvise để truy cập tới server và tạo folder mô phỏng theo dòng lệnh của mình, tiếp theo, tạo một folder tên là scripts

sử dụng bitvise truy cập vào thư mục root

Truy cập vào thư mục scripts vào tạo file mysqlmon bằng công cụ nano ( trình biên tập dữ liệu trên terminal linux), hoặc sử dụng bitvise để tạo file này

Dùng bitvise tạo mysqlmon.sh

Chèn đoạn code này vào file mysqlmon.sh vừa tạo tùy theo dịch vụ của bạn là mysql hay mysqld nhé:

Nếu sử dụng nano, lưu lại và thoát (bấm tổ hợp phím Ctrl + X , bấm Y(yes) sau đó bấm enter)

Cấp quyền thực thi cho kịch bản:

3. Kiểm tra file kịch bản vừa tạo xem đã hoạt động đúng chưa

Chạy dòng lệnh này để thực thi file script vừa tạo:

Nếu dịch vụ Mysql vẫn chạy, terminal sẽ hiển thị dòng:

Nếu bạn muốn xem điều gì sẽ xảy ra khi tập lệnh phát hiện nếu MySQL gặp sự cố, hãy dừng dịch vụ MySQL, hãy lưu ý công đoạn này, server của bạn sẽ bị lỗi tạm thời do không load được database:

Sau khi stop, thử chạy lại file mysqlmon.sh vừa tạo xem có nhận diện được và khởi động lại mysql không:

Nếu chạy đúng, dòng văn bản này sẽ hiển thị

Kiểm tra lại trạng thái lần cuối xem đã thành công chưa:

4. Tự động hóa việc chạy file script bằng tính năng cron

Tạo file cron bằng nano hoặc bitvise:

Paste dòng lệnh này vào file auto_restart

file auto_restart hiển thị trong cron.d

Lưu lại file cron để hoàn tất.

Lưu ý, khi sử dụng cách này, bạn sẽ không thể tìm thấy lệnh cron bằng dòng lệnh crontab -l , để xem lệnh của bạn đã được nhận diện chưa, sử dụng dòng lệnh:

Chúc bạn thành công !

Nguồn: https://web888.vn/huong-dan-dung-cronjob-lap-lich-tu-dong-restart-mysql-khi-server-qua-tai/