Mengambil cadangan database secara teratur adalah salah satu langkah penting setelah membuat proyek hidup. Frekuensi backup bisa sekali dalam sehari atau seminggu. Pencadangan harian lebih disukai untuk aplikasi di mana perubahan basis data lebih sering terjadi. Dalam kasus database ketersediaan tinggi, pengaturan cluster yang sesuai harus dipertimbangkan daripada penskalaan vertikal. Tutorial ini menjelaskan penggunaan
Catatan :Tutorial ini hanya mencakup opsi paling umum yang digunakan dengan
Cadangan Lokal
Cadangan - Bagian ini menjelaskan mengambil cadangan lokal dalam file dengan mengekspor database tunggal atau ganda.
Izin -
- PILIH - untuk membuang tabel
- TAMPILKAN TAMPILAN - untuk membuang tampilan
- PICU - untuk membuang pemicu
- LOCK TABLES - jika opsi --transaksi tunggal tidak digunakan
Perintah - Disebutkan di bawah ini adalah penggunaan
# Regular command - Usage - Windows, Linux
mysqldump [options] db_name [tbl_name ...] > <file path>
mysqldump [options] --databases db_name ... > <file path>
mysqldump [options] --all-databases > <file path>
Contoh untuk menggunakan perintah reguler adalah seperti yang disebutkan di bawah ini. Contoh perintah ini menggunakan perusahaan pengguna untuk mengambil cadangan basis data perusahaan . Tidak perlu menentukan pengguna dan sandi jika akun pengguna menggunakan auth_socket algoritma untuk login ke server MySQL. Pengguna sistem dapat langsung mengakses database. Anda dapat merujuk Cara Menggunakan Kata Sandi Asli Dengan MySQL 5.7 dan Cara Menginstal MySQL 8 di Ubuntu untuk mempelajari lebih lanjut tentang algoritme kata sandi.
Catatan :Tidak perlu menggunakan opsi -p, jika tidak ada kata sandi yang diberikan kepada pengguna.
Disebutkan di bawah ini adalah contoh untuk membuat cadangan satu database dengan nama pengguna, host, dan port. Sandi tidak boleh diberikan dengan perintah ini untuk tujuan keamanan. Anda dapat menentukan sandi untuk
# All tables - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise > enterprise.sql
# All tables - with username, with password - insecure
mysqldump -u enterprise -p'mypwd' enterprise > enterprise.sql
# All tables - with username, with password - Plesk way
mysqldump -u enterprise -p`cat /etc/psa/.psa.shadow` dbname > dbname.sql
# All tables - with host, with port, with username, without password - prompts for password
mysqldump -h localhost -p 3306 -u enterprise -p enterprise > enterprise.sql
# Single table(user) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise [user] > enterprise.sql
# Multiple tables(user, profile) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise user profile > enterprise.sql
Disebutkan di bawah ini adalah contoh untuk membuat cadangan beberapa database dengan nama pengguna, host, dan port.
# Multiple databases - with username, without password - prompts for password
mysqldump -u enterprise -p --databases enterprise vblog mshop > mydbs.sql
# Multiple databases - with username, with password
mysqldump -u enterprise -p'mypwd' --databases enterprise vblog mshop > mydbs.sql
Disebutkan di bawah ini adalah contoh untuk membuat cadangan semua database dengan nama pengguna, host, dan port.
# All databases - with username, without password - prompts for password
mysqldump -u enterprise -p --all-databases > mydbs.sql
# All databases - with username, with password
mysqldump -u enterprise -p'mypwd' --all-databases > mydbs.sql
Pengguna PowerShell di Windows akan membutuhkan perintah yang berbeda seperti yang disebutkan di bawah ini.
# PowerShell on Windows
shell> mysqldump [options] db_name [tbl_name ...] --result-file=<file path>
shell> mysqldump [options] --databases db_name ... --result-file=<file path>
shell> mysqldump [options] --all-databases --result-file=<file path>
# Example
shell> mysqldump -u enterprise -p enterprise --result-file=mydump.sql
Perintah yang disebutkan di atas akan mengekspor database dan tabel yang dipilih ke lokasi file yang ditentukan dalam perintah.
Cadangan Basis Data
Bagian ini menjelaskan mengambil cadangan basis data ke basis data lain yang digunakan untuk tujuan pencadangan menggunakan Shell Pipes. Kita dapat mengekspor database ke file lokal dan kemudian menggunakan file ini untuk mengimpor ke database lain atau langsung mengekspor ke database lain menggunakan pipa shell.
Perintah yang disebutkan di bawah ini dapat digunakan untuk mengekspor database langsung ke database lain. Selain itu, pastikan Anda memiliki akses ke kedua server sebelum menjalankan perintah.
# Export database to another database - Same server
mysqldump -u enterprise -p enterprise | mysql enterprise_backup
# Export database to another database - Different server
mysqldump -u enterprise -p enterprise | mysql -h host.example.com -p 3306 enterprise
Beginilah cara kami mengekspor atau membuat cadangan database.