Hướng dẫn tự động sao lưu dữ liệu MySQL hoặc MariaDB

Hướng dẫn tự động sao lưu dữ liệu MySQL hoặc MariaDB

Database Backup

1. Đăng nhập vào cơ sở dữ liệu MySQL hoặc MariaDB của bạn, chạy lệnh bên dưới để tạo cơ sở dữ liệu người dùng db_user_backups để xử lý các bản sao lưu:

GRANT LOCK TABLES, SELECT, SHOW VIEW, REPLICATION CLIENT ON *.* TO 'db_user_backups'@'%' IDENTIFIED BY '{COMPLEX-PASSWORD}';

Đồng thời, chạy lệnh bên dưới để đảm bảo MySQL được cấu hình để khôi phục đúng với quy trình đã lưu:

SET GLOBAL log_bin_trust_function_creators = 1;

2. Thiết lập cấu trúc thư mục và các tập tin cần thiết

# create backup directory with environment and log file

sudo mkdir /backups && cd /backups

sudo touch .env db-backup.sh db-backup.log

sudo chmod -R 775 /backups

sudo chmod -R g+s /backups

sudo chmod +x db-backup.sh




# add mysql backup user credentials into environment file

echo "export MYSQL_USER=db_user_backups" > /backups/.env

echo "export MYSQL_PASS={COMPLEX-PASSWORD}" >> /backups/.env

3. Mở db-backup.sh nano /backups/db-backup.sh và dán lệnh bên dưới, sau đó lưu lại file (Ctrl+X -> Y -> hit Enter)

DB_NAMES=( 'db-vultr-site' 'db-vultr-blog' 'db-vultr-app' ) #replace with your own database name(s)

BKUP_NAMES=()

BKUP_DIR="/backups"




# get total number of directories

total_dbs=${#DB_NAMES[@]}




# create backup file names

for (( i=0; i<${total_dbs}; i++ )); do

    BKUP_NAMES[$i]="`date +%Y%m%d%H%M`-backup-$${DB_NAMES[$i]}.sql.gz"

done




# get backup users credentials

source $BKUP_DIR/.env




# create backups

for (( i=0; i<${total_dbs}; i++ )); do

    # NOTE: --routines flag makes sure stored procedures are also backed up

    mysqldump --routines -u ${MYSQL_USER} -p${MYSQL_PASS} | gzip > ${BKUP_DIR}/${BKUP_NAMES[$i]}

done

Cronjob Setup

Setup một cronjob để chạy mỗi nửa đêm, nó sẽ chạy tập lệnh sao lưu và lưu kết quả/đầu ra vào nhật ký dự phòng.

1. Mở crontab

crontab -e

2. Thêm mục dưới đây và crontab

0 0 * * * /usr/bin/env bash /backups/db-backup.sh &>> /backups/db-backup.log

Lưu ý: Trong khi testing, bạn có thể đặt crontab để chạy 1 phút thay vì như bên dưới.

* * * * * /usr/bin/env bash /backups/db-backup.sh &>> /backups/db-backup.log

-OR- cứ mỗi 5 phút (thay số 5 bằng số phút bạn mong muốn)

*/5 * * * * /usr/bin/env bash /backups/db-backup.sh &>> /backups/db-backup.log

Trên đây là hướng dẫn tự động backup MySQL Database/MariaDB database cho người mới. Chúc các bạn thành công!

Mọi người cùng tìm kiếm: backup mysql, backup data mysql, mariadb backup, backup mariadb, auto backup mysql, backup db mysql, backup database mysql, auto backup mysql database, back up mysql, backup database in mysql

Các gói dịch vụ Cloud VPS của KDATA mang đến cho bạn nhiều lựa chọn về hiệu suất cũng như khả năng lưu trữ, mọi nhu cầu về doanh nghiệp đều được đáp ứng. KDATA đảm bảo khả năng uptime lên đến 99,99%, toàn quyền quản trị và free backup hằng ngày. Tham khảo ngay các gói dịch vụ Cloud VPS:

https://kdata.vn/cloud-vps

👉 Liên hệ ngay KDATA hỗ trợ tận tình, support tối đa, giúp bạn trải nghiệm dịch vụ giá hời chất lượng tốt nhất