Cara Backup Database Via SSH: Panduan Perintah MySQL & PostgreSQL

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 localhost jika database berada di server yang sama.
  • Nama Database: Contoh namadb_production.
  • Username Database: Contoh root atau user_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, dan SELECT pada 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 -p tanpa 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 scp di terminal lokal) untuk memindahkan file tersebut ke komputer lokal Anda demi keamanan tambahan.