สำรองฐานข้อมูล MySQL หรือ MariaDB หลายตัวโดยอัตโนมัติ

บทนำ

ในบทความนี้เราจะอธิบายวิธีสำรองข้อมูลหลายฐานข้อมูล MySQL หรือ MariaDB ที่อยู่ในเครื่องเดียวกันโดยใช้สคริปต์ทุบตีที่กำหนดเองและตั้งค่างาน cron

สำรองฐานข้อมูล

เราจะสมมติว่าเรามีฐานข้อมูล MySQL สามแห่งบนอินสแตนซ์ Vultr ของเราชื่อdb-vultr-site , db-vultr-blog , db-vultr-app (ไม่ต้องกังวลเกี่ยวกับการสร้างฐานข้อมูลเหล่านี้คุณจะสามารถแทนที่ชื่อของพวกเขาได้ สำหรับคุณ hwere พวกเขาจะใช้ในสคริปต์ในขั้นตอนที่ 2 ด้านล่าง)

  1. เข้าสู่ระบบฐานข้อมูล MySQL หรือ MariaDB ของคุณและเรียกใช้แบบสอบถามด้านล่างเพื่อสร้างผู้ใช้ฐานข้อมูลdb_user_backupsเพื่อจัดการการสำรองข้อมูล

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

    เรียกใช้ด้านล่างเพื่อให้แน่ใจว่า MySQL ได้รับการกำหนดค่าให้เรียกคืนขั้นตอนการจัดเก็บอย่างเหมาะสม

    SET GLOBAL log_bin_trust_function_creators = 1;
    
  2. ตั้งค่าโครงสร้างไดเรกทอรีที่จำเป็นและไฟล์ที่จำเป็น

    # 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. เปิด db-backup.sh nano /backups/db-backup.shและวางโค้ดข้างล่างนี้ภายในมันแล้วบันทึกไฟล์(Ctrl + X -> Y -> กด 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

ตั้งค่า cronjob เพื่อรันทุกเที่ยงคืนที่รันสคริปต์สำรองและบันทึกผลลัพธ์ / ผลลัพธ์ไปยังบันทึกสำรอง

  1. เปิด crontab

    crontab -e
    
  2. เพิ่มรายการด้านล่างเพื่อ crontab

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

    หมายเหตุ: ในขณะทดสอบคุณสามารถตั้ง cronjob ให้ทำงานทุก ๆ 1 นาทีแทนดังนี้

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

    - หรือ - ทุก 5 นาที (แทนที่ 5 ด้วยจำนวนนาทีที่คุณต้องการ)

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

อะไรต่อไป

คุณอาจไม่ต้องการสำรองข้อมูลของคุณบนเซิร์ฟเวอร์เดียวกันที่รันฐานข้อมูลของคุณ แต่แทนที่จะอยู่บนเซิร์ฟเวอร์ในที่ตั้งทางภูมิศาสตร์อื่น มีหลายวิธีในการทำเช่นนี้ตั้งแต่การใช้ SFTP ไปจนถึงการใช้เครื่องมือแบบกำหนดเองที่จัดหาโดยผู้ให้บริการพื้นที่เก็บข้อมูลบนคลาวด์มากมายที่มีให้ ทางเลือกหนึ่งที่ดีคือ Rsync ตามที่อธิบายไว้ที่นี่ - vultr.com/docs/setup-file-mirroring-using-rsync-in-debian-ubuntu

เขียนโดย Lami Adabonyan

ฝากความเห็น

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true