Mysqldump banyak tabel dari banyak database

Salah satu utilitas terbaik yang digunakan untuk membuat salinan cadangan data server MariaDB adalah mysqldump. Itu datang dengan MariaDB, jadi tidak ada biaya lebih. Yang terbaik dari semuanya, Anda tidak perlu mematikan layanan MariaDB untuk membuat cadangan. Ini bekerja sangat sederhana. itu mengambil data dan skema dari setiap database dan tabel dan membangun file teks data di luar MariaDB. File teks data ini (dikenal sebagai file dump) akan berisi pernyataan SQL yang diperlukan untuk merekonstruksi database dan data. Jika Anda membuka file dump yang dihasilkan oleh mysqldump, Anda akan melihat pernyataan CREATE TABLE dan banyak pernyataan INSERT, satu untuk setiap baris data

Mencadangkan Semuanya

Untuk mengekspor semua database di MariaDB menggunakan mysqldump, berikut ini akan dimasukkan dari baris perintah sistem file

mysqldump -u admin_backup -p -x -A > /data/backup/dbs.sql

Kumpulan opsi pertama di sini (-u admin_backup -p_) memberi tahu MariaDB bahwa utilitas ini akan dijalankan oleh pengguna admin_backup dan bahwa pengguna perlu dimintai kata sandi, yang harus diketik di baris berikutnya saat diminta. Kebetulan, meskipun Anda mungkin tergoda untuk hanya menggunakan pengguna root, Anda harus membuat pengguna administratif khusus seperti yang kami gunakan di sini. Jika dump akan dieksekusi oleh cron melalui skrip shell, opsi ini dapat diubah menjadi -pmypwd, di mana mypwd adalah kata sandinya—tidak ada ruang antara -p dan kata sandi. Opsi -x_ membuat MariaDB mengunci semua tabel sebelum melakukan pencadangan. Kunci tidak akan dilepaskan sampai proses selesai. Untuk menyatukan pernyataan INSERT untuk setiap tabel, kami telah menambahkan opsi -e. Opsi penyisipan yang diperpanjang ini akan menyebabkan file dump menjadi lebih kecil dan memungkinkan pemulihan di masa mendatang yang mungkin dilakukan lebih cepat. Opsi -A_ menentukan bahwa semua database akan diekspor. Terakhir, tanda lebih besar dari adalah pengalihan shell dari keluaran standar (STDOUT) ke jalur dan file yang dinamai menurut namanya

Contoh yang diberikan untuk membackup semua database adalah versi singkatnya. Konvensi bermigrasi ke opsi yang lebih panjang, bukan opsi satu huruf. Faktanya, beberapa sudah tidak digunakan lagi dan tidak akan tersedia di masa mendatang. Jadi, hal di atas bisa dan harus dimasukkan seperti ini

mysqldump --user=admin_backup --password --lock-tables --all-databases > /data/backup/dbs.sql
_

Nama opsi yang lebih panjang lebih mudah diikuti dan diingat. Sekali lagi, jika pencadangan akan dijalankan oleh skrip shell, kata sandi pengguna harus dicantumkan.

mysqldump --user=admin_backup --password --lock-tables --all-databases > /data/backup/dbs.sql
_0. Perhatikan bahwa tanda sama dengan ditambahkan saat kata sandi diberikan dengan nama opsi yang panjang

Hanya Satu Basis Data

Mencadangkan semua database sekaligus dengan mysqldump dapat menghasilkan satu file dump yang besar. Ini bisa memakan waktu lebih lama untuk menyelesaikan pencadangan dan membuat pemulihan nanti agak rumit. Oleh karena itu, mungkin lebih berguna untuk mengatur cadangan berdasarkan basis data, membuat mungkin beberapa file yang lebih kecil. Anda kemudian dapat mencadangkan database yang lebih besar selama waktu lalu lintas yang lebih lambat. Anda juga dapat mencadangkan basis data penting atau yang banyak berubah selama waktu yang lebih lambat dalam sehari sehingga Anda tidak mengurangi interaksi pengguna

Untuk mengekspor hanya satu database dan tidak semua, masukkan sesuatu seperti berikut dari baris perintah

mysqldump --user=admin_backup --password --lock-tables --databases db1 > /data/backup/db1.sql

Satu-satunya perbedaan yang signifikan pada baris ini adalah bahwa opsi -A telah diganti dengan

mysqldump --user=admin_backup --password --lock-tables --all-databases > /data/backup/dbs.sql
2 dan database yang akan diekspor telah diberikan. Untuk mengekspor banyak basis data, cukup masukkan setelah opsi
mysqldump --user=admin_backup --password --lock-tables --all-databases > /data/backup/dbs.sql
2, dipisahkan dengan spasi (e. g. ,
mysqldump --user=admin_backup --password --lock-tables --all-databases > /data/backup/dbs.sql
_4)

Meja Pembuangan

Untuk database yang sangat besar, Anda mungkin ingin mencadangkan data berdasarkan tabel daripada keseluruhan database. Anda dapat mencadangkan seluruh basis data setiap minggu dan kemudian hanya mencadangkan setiap tabel harian yang datanya sering berubah. Untuk mencadangkan hanya satu tabel, berikut ini dapat dimasukkan dari baris perintah

mysqldump --user=admin_backup --password --lock-tables db1 table1 > /data/backup/db1_table1.sql

Pemberitahuan pertama bahwa opsi

mysqldump --user=admin_backup --password --lock-tables --all-databases > /data/backup/dbs.sql
_5 belum disertakan pada baris di atas. Utilitas mengasumsikan bahwa nama pertama yang diberikan adalah database dan nama kedua adalah nama tabel dan bukan database lain. Untuk mencadangkan beberapa tabel dari database, cukup cantumkan setelah nama database, dipisahkan dengan spasi (mis. g. , db1 tabel1 tabel2)

Kesimpulan

Seperti yang Anda lihat dari artikel ini, mysqldump mudah digunakan dan sangat kuat. Faktanya, ini dapat merusak data Anda jika Anda tidak berhati-hati. Oleh karena itu, Anda harus berlatih menggunakannya pada database pengujian—bahkan server pengujian—beberapa kali hingga Anda merasa nyaman membuat cadangan dan memulihkannya. Jangan menunggu sampai Anda kehilangan data dan panik untuk memulihkan data Anda untuk mengetahui bahwa Anda belum mencadangkan data Anda dengan benar atau Anda tidak tahu cara menyempurnakan pemulihan data. Kembangkan beberapa keterampilan terlebih dahulu dan dengan cara yang aman dan terkendali. Untuk mempelajari cara memulihkan file dump, lihat artikel kami tentang Memulihkan Data