Bagaimana cara menjadwalkan cadangan mysql di linux?

Saat ini, kehilangan data seperti kehilangan asuransi jiwa Anda. Jadi sistem manajemen basis data yang Anda gunakan harus memiliki orientasi pencadangan. Jika Anda adalah administrator MySQL atau pengguna yang berurusan dengan pertumbuhan data, Anda harus mempertimbangkan untuk menerapkan rencana otomatisasi pencadangan yang lebih sering. Alasan?

Keadaan seperti itu dapat menyebabkan pelanggaran data yang tak termaafkan, terutama bila Anda tidak memiliki rencana pencadangan basis data. Jika Anda adalah pengguna atau administrator MySQL yang diinvestasikan, artikel ini ada di sini untuk memperbaiki kekhawatiran cadangan basis data Anda. Kami akan memenuhi dua tujuan. Pertama, Anda akan memahami implementasi ekspor database melalui "mysqldump". Kemudian, terakhir, kita akan membahas bagaimana menggunakan “crontab” dapat membuat seluruh proses ini lebih mudah melalui otomatisasi

Siapkan direktori cadangan data

Karena Linux tidak membuat rekomendasi pengguna untuk tujuan pencadangan data MySQL, terserah Anda untuk memilih lokasi pencadangan yang sesuai. Misalnya, dalam panduan tutorial ini, kami akan bekerja di bawah direktori cadangan di “/var/www_my_backups/”. Kami hanya mempertimbangkan pendekatan ini untuk memahami mekanisme pencadangan data MySQL. Idealnya, disarankan agar semua pencadangan data penting dilakukan di server offside.  

Anda dapat membuat direktori cadangan pilihan Anda di mesin lokal Anda melalui perintah terminal yang mirip dengan berikut ini

$ sudo mkdir /var/www_my_backups/

Pastikan bahwa mesin cadangan yang dioperasikan Linux yang Anda gunakan telah memberi Anda hak istimewa dengan akses root atau hak istimewa sudo. Jika Anda tidak memiliki akses pemilik ke direktori cadangan yang dibuat, Anda akan menghadapi kesalahan izin saat menjalankan tes mysqldump. Perintah berikut harus mencantumkan pengguna sistem yang sedang aktif dan detailnya jika Anda memiliki hak kepemilikan pada folder cadangan yang dibuat

$ sudo chown $(whoami):$(whoami) /var/www_my_backups/
_

Utilitas klien mysqldump

Alat MySQL ini melakukan pencadangan logis. Ini menghasilkan beberapa kumpulan pernyataan SQL, yang membuat ulang data tabel database asli dan definisi objek saat dijalankan. Selain itu, satu atau beberapa dump database MySQL dicadangkan atau ditransfer ke server database SQL sekunder.  

Perintah mysqldump standar diwakili oleh sintaks perintah berikut

$ mysqldump -u [mysql_username] -p[mysql_password] [mysql_database_name] > /path/to/[mysql_dump_file_name].sql
  • -u [nama_pengguna_mysql]. mewakili pengguna istimewa dari database MySQL. Pengguna ini harus dapat menjalankan operasi dump database
  • -p[mysql_password]. mewakili kata sandi pengguna dari database MySQL. JANGAN menambahkan spasi antara “-p” dan “[mysql_password]”
  • [mysql_dump_file_name]. mewakili nama database MySQL Anda
  • >. menunjuk ke tujuan dump output
  • /path/ke/[mysql_dump_file_name]. sql. menunjuk ke lokasi jalur file dump terkait. Anda dapat memberikan file dump ini [mysql_dump_file_name] nama khusus jika Anda mau.  

Sebelum kita melanjutkan panduan tutorial ini, ada sesuatu yang perlu disebutkan tentang “-p[mysql_password]”. Meskipun panduan artikel ini akan berfokus pada pengaitan penggunaannya dengan beberapa contoh dump MySQL, Anda harus menghindari penggunaannya secara langsung saat menangani dump cadangan MySQL yang sebenarnya, terutama di jaringan bersama.  

Dump yang sedang berjalan dapat dibajak dengan perintah dua dimensi seperti "ps ax", yang mengungkapkan nama pengguna dan sandi database terkait. Namun, menggunakan lokasi “~/. -ku. cnf” untuk menyimpan kata sandi database MySQL Anda menggunakan “-p[mysql_password]” dalam perintah dump yang disebutkan tidak diperlukan. Jika perintah dump ini dijalankan melalui tugas cron, opsi perintah “–defaults-extra-file=/path/to/. -ku. cnf” harus mengarahkan perintah mysqldump ke lokasi kata sandi basis data.    

Beberapa contoh backup database MySQL

Mari kita pertimbangkan beberapa skenario pengguna di mana kita dapat menggunakan perintah mysqldump untuk membuat cadangan data database MySQL.   

Back up semua database

Menggunakan opsi perintah “–all-databases” di perintah mysqldump Anda akan menangani semua dump database MySQL di sistem Linux Anda. Misalnya, perintah berikut menunjukkan cara membuang semua database MySQL Anda ke file “/var/www_my_backups/” yang sudah ada. Pengguna sistem Linux ini harus menjadi root atau memiliki hak sudo.  

Dalam kasus kami, dan untuk pengertian Anda, kami menamai file dump kami “all-databases. sql”, tetapi Anda dapat menggunakan nama lain sesuai keinginan Anda. Karena kita berurusan dengan semua database, menjadi pengguna akun root MySQL diperlukan.  

$ mysqldump -u root -p[mysql_password] --all-databases > /var/www_my_backups/all-databases.sql

Mencadangkan satu basis data

Jika hanya satu database MySQL yang penting bagi Anda, membuat cadangannya dengan perintah mysqldump memerlukan penggantian opsi perintah “[mysql_database]” dengan nama sebenarnya. Nama file dump bisa mengambil nama database ini “[mysql_database]. sql” sehingga mudah dilacak dan dipulihkan nanti. Anda juga dapat menggunakan nama file dump khusus lainnya jika diinginkan.  

Perintah contoh ini diimplementasikan menggunakan pengguna root, tetapi pengguna lain yang memiliki akses ke database target adalah opsi yang layak.  

$ mysqldump -u root -p[mysql_password] [mysql_database_name] > /var/www_my_backups/[mysql_database_name].sql
_

Mencadangkan banyak basis data

Mungkin Anda memiliki pilihan database MySQL tertentu yang ingin Anda cadangkan. Dalam hal ini, opsi perintah “[mysql_database_name]” akan muncul lebih dari satu kali, dan setiap kasus dikaitkan dengan nama database yang ingin Anda cadangkan. Ingatlah untuk memberi spasi pada nama basis data ini pada perintah mysqldump. File dump “[mysql_database_name]. sql” juga harus dikaitkan dengan nama unik yang akan Anda ingat

$ mysqldump -u root -p[mysql_password] [mysql_database_1_name] [mysql_database_2_name] > /var/www_my_backups/[mysql_databases_1_2_names].sql

Mencadangkan satu tabel

Ketika rutinitas pencadangan Anda hanya setelah tabel basis data tertentu, membuat cadangannya harus memiliki nama basis data dan nama tabel basis data sebagai opsi perintah dari perintah mysqldump. Anda dapat memberikan file dump Anda nama yang sama dengan tabel database yang ditargetkan, mis. g. [mysql_database_table_name]. sql.      

$ mysqldump -u root -p[mysql_password] [mysql_database_name] [mysql_database_table_name] > /var/www_my_backups/[mysql_databases_table_name].sql
_

Mencadangkan beberapa tabel

Saat Anda ingin mencadangkan banyak tabel database MySQL tertentu, penyebutan semua nama tabel database yang Anda pilih harus dilakukan setelah nama database yang menghosting tabel ini. File dump yang ditargetkan dapat menggunakan nama seperti [mysql_database_tables_1_2_names]. sql

$ mysqldump -u root -p[mysql_password] [mysql_database_name] [mysql_database_table_1_name] [mysql_database_table_2_name] > /var/www_my_backups/[mysql_databases_tables_1_2_names].sql

Mencadangkan basis data jarak jauh

Implementasi contoh ini juga mudah. Perintah dump database MySQL perlu menyertakan opsi perintah "-h" diikuti dengan nama host mesin jarak jauh atau alamat IP terkait. Semua sintaks perintah cadangan basis data biasa lainnya harus mengikuti.  

$ mysqldump -h [remote_computer_ip_or_hostname] -u root -p[mysql_password] [mysql_database_name] > /var/www_my_backups/[remote_mysql_database_name].sql
_

Anda dapat menyesuaikan perintah mysqldump ini untuk menangani kasus backup database lain yang sudah dibahas, mis. g. , cadangan MySQL dengan banyak basis data atau tabel.   

Mencadangkan database yang terkait dengan kompresi

Jika Anda ingin mengaitkan cadangan data Anda dengan kompresi, tombol “. gzip -c >” opsi perintah mysqldump dapat digunakan untuk mem-pipe keluaran gzip.  

$ mysqldump -u root -p[mysql_password] [mysql_database_name] | gzip -c > /var/www_my_backups/[mysql_database_name].sql.gz
_

Jika database MySQL Anda sangat besar dan Anda ingin melacak kemajuan kompresi, selalu pertimbangkan untuk mengimplementasikan opsi verbose seperti yang digambarkan dalam contoh berikut.   

$ sudo chown $(whoami):$(whoami) /var/www_my_backups/
_0

Mengembalikan database MySQL

Setelah Anda selesai dengan backup database MySQL Anda, apa selanjutnya? .  

$ sudo chown $(whoami):$(whoami) /var/www_my_backups/
_1

As you might not have noted, the only difference between this database restoration command and the database backup command is that we use the “mysql” option instead of the “mysqldump” option and the “<” option instead of the “>” option.  

Mengotomatiskan cadangan MySQL

Sistem operasi Linux dilengkapi dengan beberapa layanan berguna yang tak ternilai harganya bagi seorang administrator basis data seperti yang ada di bawah RDBMS MySQL. Salah satu layanan ini adalah layanan cron. Ini efektif dalam menjadwalkan perintah otomatis. Perintah-perintah ini, setelah dibuat, dialokasikan ke tabel cron crontab. Anda dapat mengakses crontab melalui perintah berikut.  

$ sudo chown $(whoami):$(whoami) /var/www_my_backups/
_2

Jika diminta, perintah ini mungkin ingin mengaitkan eksekusinya ke editor teks untuk memilih editor teks nano

Bagaimana cara menjadwalkan cadangan mysql di linux?
Bagaimana cara menjadwalkan cadangan mysql di linux?

memilih editor crontab

File dengan nama seperti “/tmp/crontab. LVY6A9/crontab” akan terbuka. Di bagian bawah file crontab ini, masukkan jadwal cron yang layak bersama dengan perintah dump MySQL yang berlaku. Contoh yang diilustrasikan di bawah ini mengimplementasikan penggunaan kompresi gzip untuk backup database harian. Kadang-kadang Anda mungkin memiliki besar. file sql dijadwalkan untuk cadangan. Menggunakan gzip mengurangi file tersebut ke ukuran yang wajar sebelum penyimpanan cadangan. Ini membantu dengan manajemen memori cadangan.     

$ sudo chown $(whoami):$(whoami) /var/www_my_backups/
_3

Opsi perintah “00 03 ***” dapat diartikan sebagai berikut. Setiap 24 jam setelah jam 3 pagi, perintah mysqldump yang mengikutinya dijalankan untuk membuat cadangan database. File cadangan database yang saat ini ada sebelum dimulainya proses pencadangan ini akan ditimpa. Dalam kasus Anda, Anda tidak perlu menunggu setelah 24 jam untuk menyaksikan otomatisasi backup database Anda beraksi melalui crontab

Anda dapat mengedit opsi "00 03 ***" pada file crontab menjadi seperti "02 00 ***", dan hanya dalam dua menit, proses pencadangan akan diinisialisasi sendiri. Atau, jika waktu Anda adalah 22. 30, mengedit file dengan "34 22 ***" akan menginisialisasi proses backup database pada 22. 34. Ingatlah untuk menyimpan (Ctrl+X) file crontab ini sebelum menutupnya agar perintah ini dapat dieksekusi.  

Setelah menit yang Anda atur berlalu, tugas cron seharusnya sudah dijalankan. Kemudian, daftarkan folder cadangan yang dibuat di terminal Anda, dan folder yang dibuat. sql. file cadangan gz harus ada.  

$ sudo chown $(whoami):$(whoami) /var/www_my_backups/
_4

Output yang dihasilkan harus serupa dengan yang berikut ini

$ sudo chown $(whoami):$(whoami) /var/www_my_backups/
_5

Jika Anda memiliki masalah menemukan. sql. gz file cadangan MySQL, mengoreksi waktu crontab Anda atau seluruh perintah. Mungkin ada kesalahan sintaksis, atau ada sesuatu yang hilang. Alternatifnya, log cron sistem dapat menunjukkan di mana ada masalah

$ sudo chown $(whoami):$(whoami) /var/www_my_backups/
_6

Ingatlah untuk mengatur ulang entri crontab ke jadwal basis data pilihan Anda setelah Anda memastikan semuanya berfungsi dengan benar.    

Menggunakan saya. cnf untuk menyimpan password database MySQL

Kami telah menyebutkan kelemahan opsi "-p[mysql_password]" pada perintah mysqldump, terutama di bawah jaringan bersama. Kita perlu membahas bagaimana mengimplementasikan penyimpanan kata sandi di “~/. -ku. .cnf”. Pengguna yang menggunakan cron untuk mengotomatiskan pencadangan basis data mereka perlu memahami implementasi dari “–defaults-extra-file=/path/to/. -ku. opsi perintah cnf”.    

Mengedit saya. file cnf

Direktori home sistem Linux Anda berisi file tersembunyi ini. Jalur sistem langsung ke sana adalah “/home/your_username/. -ku. cnf”. Gunakan editor teks nano untuk membuka file ini. Opsi "~" menunjuk ke direktori home

$ sudo chown $(whoami):$(whoami) /var/www_my_backups/
_7

Edit file yang terbuka ini sesuai dengan sintaks berikut untuk berhasil menyimpan kata sandi database MySQL Anda. Bagian "YOUR_DB_PASS" adalah satu-satunya entri yang perlu Anda ubah dengan kata sandi basis data Anda yang sebenarnya. Masukkan detail informasi ini di bagian bawah file dan simpan.  

$ sudo chown $(whoami):$(whoami) /var/www_my_backups/
_8

Gunakan Ctrl+X untuk menyimpan file ini. Ini “saya. cnf” juga memerlukan beberapa pengaturan izin. Terapkan perintah berikut

$ sudo chown $(whoami):$(whoami) /var/www_my_backups/
_9

Sekarang saatnya untuk melihat pembuatan ulang perintah mysqldump baru kami dengan opsi perintah "-p[mysql_password]" dihilangkan

$ mysqldump -u [mysql_username] -p[mysql_password] [mysql_database_name] > /path/to/[mysql_dump_file_name].sql
0

Seperti yang Anda lihat, kami tidak menambahkan apa pun. Sepertinya satu-satunya hal yang kami hapus adalah opsi perintah "-p[mysql_password]".  

Crontab dan –default-extra-file

Untuk pengguna yang lebih suka mengotomatiskan pencadangan basis data, Anda perlu mengambil kata sandi basis data di "~/. -ku. cnf” melalui opsi perintah “–default-extra-file”. Pendekatan ini memudahkan perintah mysqldump ketika perlu mereferensikan pengguna basis data dan keaslian kata sandi. Anda harus spesifik tentang jalur ke my. cnf dan tidak hanya menggunakan simbol "~". Pertimbangkan implementasi berikut di dalam file crontab

$ mysqldump -u [mysql_username] -p[mysql_password] [mysql_database_name] > /path/to/[mysql_dump_file_name].sql
1

Dalam contoh ini, crontab dijalankan setiap hari pada pukul 22. 30 jam untuk membuat kompresi gzip yang dicadangkan dari database MySQL.   

Catatan akhir

Artikel ini membahas mekanisme pencadangan basis data lokal tentang direktori pencadangan “/var/www_my_backups”. Karena sekarang Anda memahami bagaimana proses pencadangan berlangsung, Anda harus menskalakan lebih tinggi dan mulai memikirkan tentang pencadangan di luar kantor. Namun, pendekatan yang lebih praktis adalah melalui konfigurasi akses SFTP yang mengarah ke direktori cadangan “/var/www_my_backups” ini

Dengan konfigurasi seperti itu, dimungkinkan untuk membuat tugas cron SFTP melalui server jarak jauh untuk mengambil salinan file database yang disimpan secara lokal ini untuk penyimpanan asuransi di malam hari dan setiap hari.  

Saat kami menyimpulkan panduan artikel yang luar biasa ini, Anda sekarang menjadi master yang bangga akan skenario cadangan database MySQL, pemulihan cadangan basis data, dan otomatisasi cadangan basis data. Anda sekarang harus percaya diri dan percaya diri dalam menggunakan cron job untuk menjadwalkan dan menangani otomatisasi backup database MySQL Anda. Jadwal otomasi tidak harus harian karena bisa juga mingguan dan bulanan.       

Bagaimana cara membuat cadangan otomatis database MySQL saya?

Cara Menjadwalkan Pencadangan MySQL Otomatis .
Pencadangan Terjadwal MySQL. AutoMySQLBackup
Langkah 1. Pilih Opsi Cadangan Anda
Langkah 2. Dapatkan Informasi yang Diperlukan untuk Menambahkan Situs Web Anda
Langkah 3. Pilih Direktori Root Anda
Langkah 4. Pilih Konten yang akan Dicadangkan
Langkah 5. Tambahkan Database dari Jendela Penyelesaian

Bagaimana cara menjadwalkan cadangan MySQL di Ubuntu?

Cara menjadwalkan backup database MySQL di Ubuntu .
Gunakan mysqldump
Otomatiskan mysqldump melalui crontab
Gunakan automysqlbackup
Menyesuaikan automysqlbackup

Bagaimana cara membuat cadangan database MySQL menggunakan baris perintah Linux?

Cadangkan Database MySQL Menggunakan mysqldump melalui Baris Perintah .
-u [nama_pengguna_database]. Nama pengguna untuk terhubung ke server MySQL
-p [database_password]. Kata sandi nama pengguna basis data
[nama_database]. Nama database yang ingin Anda ambil cadangannya

Bagaimana cara mengotomatiskan pencadangan basis data?

Di Penjadwal Tugas, klik kanan Perpustakaan Jadwal Tugas dan klik Buat tugas Dasar …. Masukkan nama untuk tugas baru (misalnya. SQLBackup) dan klik Berikutnya. Pilih Harian untuk Pemicu Tugas dan klik Berikutnya. Setel pengulangan ke satu hari dan klik Berikutnya.