Melakukan backup database melalui SSH (Secure Shell) adalah metode tercepat dan paling efisien untuk mengamankan data website berukuran besar, terutama ketika panel kontrol seperti cPanel atau phpMyAdmin mengalami kendala timeout. Akses baris perintah (command line) memberikan kontrol penuh untuk mengekspor data secara langsung dari server tanpa batasan memori antarmuka web.
Untuk melakukan backup database relasional seperti MySQL/MariaDB dan PostgreSQL, Anda memerlukan akses terminal SSH dengan hak istimewa (biasanya user root atau pengguna dengan izin akses database yang sesuai), serta mengetahui kredensial database meliputi nama host, nama database, nama pengguna, dan kata sandi.
Persiapan Akses SSH dan Informasi Database
Sebelum mengeksekusi perintah backup, pastikan Anda telah terhubung ke server remote menggunakan klien SSH seperti Terminal (Linux/macOS) atau PuTTY (Windows).
ssh username@alamat_ip_server -p nomor_port
Setelah berhasil masuk ke server, kumpulkan informasi esensial berikut:
- Host Database: Biasanya
localhostjika database berada di server yang sama. - Nama Database: Contoh
namadb_production. - Username Database: Contoh
rootatauuser_app. - Password Database: Kata sandi akun database tersebut.
Perintah Utama Backup Database via SSH
Tabel berikut merangkum perintah dasar yang paling sering digunakan untuk mengekspor database berdasarkan jenis sistem manajemen basis data (DBMS) yang digunakan.
| DBMS | Perintah Backup Dasar | Keterangan Output |
|---|---|---|
| MySQL / MariaDB | mysqldump -u [user] -p [nama_db] > [file_backup].sql |
Mengekspor seluruh tabel dan struktur ke file teks SQL biasa. |
| PostgreSQL | pg_dump -U [user] -d [nama_db] -f [file_backup].sql |
Mengekspor database PostgreSQL ke format skrip SQL. |
| MySQL (Satu Tabel) | mysqldump -u [user] -p [nama_db] [nama_tabel] > [file].sql |
Mengekspor tabel spesifik saja dari suatu database. |
Langkah-Langkah Teknis Backup MySQL/MariaDB
1. Backup Seluruh Database ke File SQL
Gunakan utilitas mysqldump untuk menghasilkan file dump. Sistem akan meminta Anda memasukkan password database setelah perintah dijalankan.
mysqldump -u root -p nama_database > backup_database.sql
2. Kompres File Backup dengan Gzip (Opsional namun Disarankan)
Untuk menghemat ruang penyimpanan server, terutama pada database berukuran gigabyte, gabungkan perintah mysqldump dengan kompresi gzip:
mysqldump -u root -p nama_database | gzip > backup_database.sql.gz
3. Backup Semua Database Sekaligus
Jika server Anda mengelola banyak database dan Anda ingin mencadangkan semuanya dalam satu perintah:
mysqldump -u root -p --all-databases > semua_database.sql
Langkah-Langkah Teknis Backup PostgreSQL
1. Backup Database PostgreSQL Standar
Gunakan perintah pg_dump untuk mengekspor database ke format teks SQL:
pg_dump -U postgres -d nama_database -F p > backup_pg.sql
2. Backup dalam Format Terkompresi (Custom Format)
Format kustom PostgreSQL memungkinkan fleksibilitas lebih tinggi saat melakukan pemulihan (restore) nanti:
pg_dump -U postgres -F c -b -v -f backup_pg.custom nama_database
Troubleshooting dan Tips Lapangan
- Masalah Error 'Access Denied': Pastikan user yang Anda masukkan memiliki hak akses (privileges) yang cukup, setidaknya hak
SHOW VIEW,LOCK TABLES, danSELECTpada database tersebut. - Peringatan Password di CLI: Menuliskan password langsung setelah parameter
-p(contoh:-pP@ssw0rd) tidak disarankan karena akan meninggalkan jejak teks biasa di riwayat terminal (history). Selalu biarkan parameter-ptanpa nilai agar sistem meminta input secara aman. - Unduh File ke Komputer Lokal: Setelah file backup berhasil dibuat di server, gunakan protokol SCP atau SFTP (seperti FileZilla atau perintah
scpdi terminal lokal) untuk memindahkan file tersebut ke komputer lokal Anda demi keamanan tambahan.