Backup mysql otomatis di ubuntu

12

Saya memiliki server Ubuntu dengan daatabase Mysql. Saya ingin mengatur cadangan otomatis dari database ini pada malam hari di server lain (misalnya misalnya).

Saya tidak tahu apa yang akan menjadi alat terbaik untuk itu. Jika seseorang memiliki beberapa saran ...

Terima kasih sebelumnya.

pengguna1260928
sumber

Jawaban:

29

Cara termudah untuk mengotomatisasi tugas ini adalah kombinasi dari MySQL Dumps dan cronjob. Anda dapat menemukan banyak informasi tentang topik ini di situs web ini dan lainnya, tetapi untuk penyelesaian:

Buat file mysqldump.sh

Yang akan berisi perintah dump mysql yang akan kami jadwalkan dalam pekerjaan cron (ganti pengguna, kata sandi, dan jalur yang sesuai dengan lingkungan Anda):

mysqldump -u root -p<mysql_root_password> --all-databases | gzip > /desired/backup/folder/mysqldb_`date +%F`.sql.gz

Sunting: Jika Anda ingin skrip menyimpan cadangan di lokasi yang jauh, cukup pasang perangkat yang sesuai atau bagikan dan gunakan jalur pemasangan di skrip.

Uji skripnya

Pastikan skrip memiliki izin eksekusi:

chmod +x /path/to/mysqldump.sh

Jalankan skrip:

sh /path/to/mysqldump.sh

Dan mengujinya berfungsi dengan benar (File cadangan akan dibuat di folder cadangan yang ditentukan).

Buat dan jadwalkan pekerjaan cron baru

Dalam jenis prompt perintah

sudo crontab -e

Dan tambahkan baris berikut di bagian bawah file:

30 23 * * * /path/to/mysqldump.sh

Ini akan menjalankan script setiap hari pukul 23:30.

Perpanjang skrip sederhana ini

Ada banyak hal yang dapat Anda lakukan untuk meningkatkan metode pencadangan sederhana ini:

  • Mencadangkan ke sistem lain
  • Monitor ruang disk
  • Pelaporan email
  • ...

Jadi jangan berakhir di sini dan bereksperimen! :-)

Gunakan alat cadangan atau layanan cadangan berbasis cloud

Meskipun metode di atas adalah salah satu yang termudah dan dapat diperluas sesuai dengan kebutuhan spesifik Anda, perlu disebutkan bahwa ada alternatif lain:

  • backup-tools seperti AutoMySQLBackup, sebuah aplikasi open-source yang mungkin memudahkan proses konfigurasi Email-notifikasi, kompresi, enkripsi, rotasi dan jenis (misalnya inkremental) dari cadangan Anda. Adapun Mai 2018, tersedia untuk Server Ubuntu melalui APT.
  • layanan pencadangan berbasis cloud seperti BackupBird, myRepono, Bitcan, dll. yang mungkin menarik jika Anda mengelola beberapa server basis data dan ingin mengelola semua cadangan secara terpusat.

Harap diingat bahwa saya tidak memiliki hubungan apa pun dengan solusi dan layanan yang disebutkan di atas dan saya hanya mencantumkannya sebagai referensi, jadi gunakan dengan risiko Anda sendiri.

Tautan / Referensi yang Berguna:

Cron -> https://en.wikipedia.org/wiki/Cron

MySQL Dump -> https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html

Eduardo López
sumber
4
Gunakan date +%F- yang secara otomatis akan memilih kombinasi tahun + bulan + tanggal yang cocok dengan lokal pengguna (misalnya, saya akan dapatkan YYYY-MM-DD).
muru
Oh ya, jauh lebih baik. Saya akan mengedit jawabannya :-)
Eduardo López
+1 Jawaban bagus: tepat apa yang diperlukan di sini, tidak lebih, tidak kurang.
Yos
2
Jika Anda harus menggunakan sudo untuk melakukan operasi ini (a) panggil sudo crontab -edan jangan lupa untuk membuat skrip dapat dieksekusi:chmod +x /path/to/mysqldump.sh
zinon
zinon - Terima kasih atas petunjuknya! Saya memperbarui jawabannya.
Eduardo López