Birden Çok MySQL Veya MariaDB Veritabanını Otomatik Olarak Yedekle

Giriş

Bu yazıda, özel bir bash betiği kullanarak ve bir cron işi ayarlayarak aynı makinede oturan birden fazla MySQL veya MariaDB veritabanının nasıl yedekleneceğini ele alacağız.

Veritabanı Yedekleme (ler) i

Vultr örneğimizde db-vultr-site , db-vultr-blog , db-vultr-app adlı üç MySQL veritabanımız olduğunu varsayacağız (Bu veritabanlarını oluşturma konusunda endişelenmeyin, adlarını değiştirebilirsiniz sizin için aşağıdaki Adım 2'deki komut dosyasında kullanılmıştır) .

  1. MySQL veya MariaDB veritabanınızda oturum açın db_user_backupsve yedeklemeleri işlemek için bir veritabanı kullanıcısı oluşturmak üzere aşağıdaki sorguyu çalıştırın

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

    Ayrıca MySQL'in saklı yordamları düzgün bir şekilde geri yükleyecek şekilde yapılandırıldığından emin olmak için aşağıda çalıştırın

    SET GLOBAL log_bin_trust_function_creators = 1;
    
  2. Gerekli dizin yapısını ve gereken dosyaları ayarlayın

    # 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 dosyasını açın nano /backups/db-backup.shve aşağıdaki kodu içine yapıştırın, ardından dosyayı kaydedin (Ctrl + X -> Y -> Enter tuşuna basın) .

    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
    

    Yukarıdaki kod, yedeklemek istediğiniz veritabanı (ler) in adlarını içeren bir dizi üzerinden dönüyor ve bunu yapıyor.

Cronjob Kurulumu

Yedek komut dosyasını çalıştıran ve sonucu / çıktıyı yedekleme günlüğüne kaydeden her gece yarısı çalışacak bir cronjob ayarlayın.

  1. Açık crontab

    crontab -e
    
  2. Aşağıdaki girişi crontab'a ekle

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

    Not: Test sırasında cronjob'u aşağıdaki gibi her 1 dakikada bir çalışacak şekilde ayarlayabilirsiniz

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

    -VEYA- her 5 dakikada bir (5'i istediğiniz dakika sayısıyla değiştirin)

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

Sıradaki ne

Büyük olasılıkla, aynı sunucu (lar) da veritabanlarınızı çalıştıran yedeklemelerinizi değil, farklı bir coğrafi konumdaki bir sunucuda olmasını isteyeceksiniz. Bunu yapmanın SFTP kullanmaktan çok sayıda bulut depolama sağlayıcısı tarafından sağlanan özel araçları kullanmaya kadar çeşitli yolları vardır. İyi bir alternatif burada açıklandığı gibi Rsync'dir - vultr.com/docs/setup-file-mirroring-using-rsync-in-debian-ubuntu

Yazan Lami Adabonyan

Yorum bırak

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

OpenNMS, çok sayıda cihazı izlemek ve yönetmek için kullanılabilen bir açık kaynak ağ yönetim platformudur. Ubuntu 16.04 LTS üzerinde OpenNMS kurulumu için tüm adımları keşfedin.

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Farklı Bir Sistem mi Kullanıyorsunuz? LibreNMS tam özellikli bir açık kaynak ağ izleme sistemidir.

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.