Cadangkan Banyak Basis Data MySQL Atau MariaDB Secara Otomatis

pengantar

Dalam artikel ini, kita akan membahas cara membuat cadangan beberapa basis data MySQL atau MariaDB yang duduk di mesin yang sama menggunakan skrip bash khusus dan menyiapkan tugas cron.

Cadangan Basis Data

Kami akan menganggap kami memiliki tiga database MySQL pada contoh Vultr kami bernama db-vultr-situs , db-vultr-blog , db-vultr-app (Jangan khawatir tentang membuat database ini, Anda akan dapat mengganti nama mereka untuk Anda, apakah mereka digunakan dalam skrip pada Langkah 2 di bawah) .

  1. Masuk ke database MySQL atau MariaDB Anda dan jalankan query di bawah ini untuk membuat pengguna database db_user_backupsuntuk menangani backup

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

    Jalankan juga di bawah untuk memastikan MySQL dikonfigurasikan untuk mengembalikan prosedur tersimpan dengan benar

    SET GLOBAL log_bin_trust_function_creators = 1;
    
  2. Atur struktur direktori dan file yang diperlukan

    # 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. Buka db-backup.sh nano /backups/db-backup.shdan rekatkan kode di bawahnya, lalu simpan file (Ctrl + X -> Y -> tekan 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
    

    Kode di atas adalah perulangan melalui array dengan nama database yang ingin Anda backup dan melakukannya.

Pengaturan Cronjob

Atur cronjob untuk menjalankan setiap tengah malam yang menjalankan skrip cadangan dan menyimpan hasil / keluaran ke log cadangan.

  1. Buka crontab

    crontab -e
    
  2. Tambahkan entri di bawah ini ke crontab

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

    Catatan: Saat menguji Anda dapat mengatur cronjob untuk dijalankan setiap 1 menit, bukan seperti di bawah ini

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

    -OR- setiap 5 menit (ganti 5 dengan jumlah menit yang Anda inginkan)

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

Apa berikutnya

Anda mungkin tidak ingin cadangan Anda di server yang sama menjalankan database Anda, tetapi pada server di lokasi geografis yang berbeda. Ada beberapa cara untuk melakukan ini, mulai dari menggunakan SFTP, hingga menggunakan alat khusus yang disediakan oleh segudang penyedia penyimpanan cloud yang tersedia di luar sana. Salah satu alternatif yang baik adalah Rsync seperti yang dijelaskan di sini - vultr.com/docs/setup-file-mirroring-using-rsync-in-debian-ubuntu

Ditulis oleh Lami Adabonyan

Tinggalkan Komentar

Cara Memasang Panel Kontrol Hosting Mudah di Ubuntu 16.04

Cara Memasang Panel Kontrol Hosting Mudah di Ubuntu 16.04

Pelajari langkah-langkah untuk memasang Panel Kontrol Hosting Mudah (EHCP) di Ubuntu 16.04 dengan panduan ini.

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.