DEV Community

loading...
Cover image for ການເຮັດ Automated mysql backup ຢ່າງງ່າຍ!

ການເຮັດ Automated mysql backup ຢ່າງງ່າຍ!

xang pheresakha
love to share knowledge about technology
・2 min read

ສະບາຍດີຜູ້ອ່ານທຸກຄົນມື້ນີ້ຈະມາແນະນຳການເຮັດ Automated mysql backup ແບບງ່າຍໆແຕ່ໄດ້ຜົນດີ ແລະ ຊ່ວຍຊີວິດບັນດາ Dveloper ທັງຫຼາຍໄດ້ຍາມເມື່ອ database ເກີດມີບັນຫາຂຶ້ນມາເຮົາກໍ່ສາມາດເອົາ backup ນີ້ໄປ restore ກູ້ຂໍ້ມູນຂຶ້ນມາຢ່າງງ່າຍ ແລະ ທັນການ ວ່າແລ້ວກໍ່ໄປເບິ່ງກັນເລີຍຍຍຍ. (ສຳລັບບົດຄວາມນີ້ແມ່ນທົດສອບຢູ່ Ubuntu 20.04)

ໃຊ້ງານ mysqlbkup

mysqlbkup ເປັນ Lightweight MySQL backup script ທີ່ຄົນໃຈດີເຮັດໃຫ້ໃຊ້ Free ຂໍ້ດີຄື config ເພື່ອໃຊ້ງານແບບງ່າຍໆສາມາດໄປ download ຫຼື clone ມາໃຊ້ໄດ້ເລີຍທີ່ mysqlbkup

$> git clone https://github.com/quickshiftin/mysqlbkup
Enter fullscreen mode Exit fullscreen mode

ຕິດຕັ້ງ

ເຂົ້າໄປທີ່ cd mysqlbkup ຫຼັງຈາກນັ້ນໃຊ້ຄຳສັ່ງ sudo ./install ນອກຈາກນີ້ແລ້ວໃຫ້ຕິດຕັ້ງ mysql client ພ້ອມ apt install mysql-client-core-8.0.

ຕັ້ງຄ່າການໃຊ້ງານ

ເຮົາຕ້ອງໄປຕັ້ງຄ່າຢູ່ 2 files

  • /etc/mysqlbkup.cnf. ຕັ້ງຄ່າການເຊື່ອມຕໍ່ກັບ mysql server ຂອງເຮົາ
[mysql]
host=127.1.1.1
user=root
password=mypassword

[mysqldump]
host=127.1.1.1
user=root
password=mypassword
force
opt
routines
triggers
max_allowed_packet=250M 
Enter fullscreen mode Exit fullscreen mode
  • /etc/mysqlbkup.config ຕັ້ງຄ່າບ່ອນເກັບ file backup, ການບີບອັດ file ພິເສດແມ່ນ MAX_BACKUPS ເປັນການບອກໃຫ້ mysqlbkup backup file ຕໍ່ database ສູງສຸດຈັກ file ເຮົາຄົງບໍ່ຕ້ອງການເກັບ backup ທັງໝົດຂອທຸກໆມື້ ຫຼື ທຸກໆຊົ່ວໂມງໄວ້ທີ່ server ແນ່ນອນເພາະມັນຈະເປືອງພື້ນທີ sever ໂດຍບໍ່ຈຳເປັນ ແລະ ຖ້າໃຊ້ງານໄປນານໆກໍ່ເຮັດໃຫ້ພື້ນທີ່ sever ເຕົມໄດ້ເຮົາພຽງຕ້ອງການ backup ຂໍ້ມູນລ່າສຸດເທົ່ານັ້ນ ສຳລັບຄ່ານີ້ກໍ່ຂຶ້ນກັບຕົນເອງເລີຍວ່າຕ້ອງການ backup ຍ້ອນຫຼັງໄປຈັກມື້.
##########
# Configuration file for mysqlbkup
# https://github.com/quickshiftin/mysqlbkup
##########

DEFAULTS_FILE=/etc/mysqlbkup.cnf

BACKUP_DIR=/var/mysqlbkup

MAX_BACKUPS=3

DATE_FORMAT=

# Databases to ignore
# This is a space separated list.
# Each entry supports bash pattern matching by default.
# You may use POSIX regular expressions for a given entry by prefixing it with a tilde.
DB_EXCLUDE_FILTER=

# Compression library
BKUP_BIN=gzip # Change this to xz if you wish, for tighter compression
BKUP_EXT=gz   # Change this to xz if you wish, for tighter compression
Enter fullscreen mode Exit fullscreen mode

ຫຼັງຈາກ config ຮຽບຮ້ອຍແລ້ວທົດສອບ run script

$> mysqlbkup.sh dry
Enter fullscreen mode Exit fullscreen mode

ຖ້າບໍ່ມີຂໍ້ຜິດພາດໃດໆກໍ່ເປັນອັນວ່າການຕັ້ງຄ່າສຳເລັດ ແລະ ພ້ອມໃຊ້ງານແລ້ວ

Automated ດ້ວຍ cron job

ໃນການສັ່ງ script ໃຫ້ເຮັດວຽກຕາມວັນ ແລະ ເວລາທີ່ເຮົາຕ້ອງການແມ່ນໃຊ້ crontab

  • ຕັ້ງຄ່າ crontab
$> crontab -e
Enter fullscreen mode Exit fullscreen mode

ເພື່ອງ່າຍຕໍ່ການຕັ້ງຄ່າ cron job ແນະນຳໃຊ້ generator online ທີ່ມີຫຼາກຫຼາຍໃຫ້ເລືອກເຊັ່ນ crontab guru, Crontab Generator

ຕົວຢ່າງການຕັ້ງຄ່າ crontab:

ສັ່ງໃຫ້ເຮັດວຽກທຸກໆມື້ໃນເວລາ 00:00 AM

SHELL=/bin/bash
MAILTO=example@gmail.com
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

## mysql backups --------------------------------------
0 0 * * * /usr/local/bin/mysqlbkup.sh 1>> /var/log/mysqlbkup.log 2>>/var/log/mysqlbkup-err.log
Enter fullscreen mode Exit fullscreen mode

ເພື່ອທົດສອບການເຮັດວຽກ cron job ສາມາດຕັ້ງຄ່າໃຫ້ເຮັດວຽກທຸກໆນາທີໄປເລີຍກໍ່ໄດ້

SHELL=/bin/bash
MAILTO=example@gmail.com
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

## mysql backups --------------------------------------
* * * * * /usr/local/bin/mysqlbkup.sh 1>> /var/log/mysqlbkup.log 2>>/var/log/mysqlbkup-err.log
Enter fullscreen mode Exit fullscreen mode

ຫຼັງຈາກນັ້ນກໍ່ restart cron service

$> service cron restart
Enter fullscreen mode Exit fullscreen mode

ກວດເບິ່ງ status

$> service cron restart
Enter fullscreen mode Exit fullscreen mode

ກວດເບິ່ງ cron job list

$> crontab -l
Enter fullscreen mode Exit fullscreen mode

ຖ້າຫາກບໍ່ສະແດງ config ສະແດງວ່າ cron job ຍັງບໍ່ເຮັດວຽກໃຫ້ໄປກວດເບິ່ງການຕັ້ງວ່າວ່າຖືກຕ້ອງແລ້ວຫຼືບໍ່ ອາດຈະໄປກຳນົດສິດການເຂົ້າເຖິງ chmod -R 600 /var/spool/cron/crontabs

ເມື່ອຕັ້ງຄ່າ ແລະ run cron job ສຳເລັດແລ້ວກໍ່ໃຫ້ໄປກວດເບິ່ງ log file ຫຼື backup destination ທີ່ໄດ້ກຳນົດໄວ້ໃນ file ຕັ້ງຄ່າ ວ່າມີ file backup ຢູ່ຫຼືບໍ່. ຖ້າບໍ່ມີຫຍັງຜິດພາດກໍ່ຈະເຫັນ file backup ເທົ່ານີ້ກໍ່ໃຊ້ງານ automated mysql backup ໄດ້ແລ້ວ.

ເປັນວິທີງ່າຍໆແຕ່ກໍ່ໃຊ້ໄດ້ຜົນດີ. ຖ້າຈະເອົາກັນຄັກແນ່ກໍ່ອາດຈະໃຊ້ cloud backup, database sync, ຕັ້ງ server backup ເອງ ກໍ່ແລ້ວແຕ່ຄວາມສຳຄັນຂອງຂໍ້ມູນ ແລະ ໂປຣເຈັກຂອງເຮົາ.

ມາຮອດນີ້ກໍ່ຂໍ້ຈົບບົດຄວາມສັ້ນໆນີ້ໄວ້ເທົ່ານີ້ກ່ອນໄວ້ພົບກັນໃນບົດຄວາມຕໍ່ໄປ.

Stay Safe ກັນເດີ

Discussion (0)