Cara Backup Restore data mariadb di Docker Container

Yudi putra wiratama
3 min readSep 24, 2022

--

bagaimana cara backup dan restore data di docker? disini saya akan menulis salah satu studi kasus dari database mariadb. mariadb adalah salah satu relational database yang cukup populer alternatif dari mysql.

oke, pertama tama misalkan ada satu container database mariadb yang ingin di backup data nya, kita bisa membuat satu container lagi yang berfungsi untuk membackup data dari volume yang telah digunakan.

$ docker run --name mariadb1 -e MARIADB_ROOT_PASSWORD=1223 --mount “type=volume,source=mariavolume,destination=/var/lib/mysql” -d mariadb:latest

diatas ini adalah command membuat sebuah container dengan nama mariadb1 lalu kita mount menggunakan sebuah volume bernama mariavolume. untuk temen temen yang belum tau volume atau docker volume, jadi volume ini ibarat storage yang dimanage disediakan oleh docker untuk container yang bisa digunakan oleh container lain pula.

untuk membuat volume bisa menggunakan perintah seperti dibawah barulah buat sebuah container yang di mount ke volume tersebut.

$ docker volume create namavolume

oke kita anggap lah ada sebuah container mariadb yang menyimpan data nya di sebuah volume dengan nama mariavolume. akses mariadb secara remote ataupun masuk ke container secara console lalu buat sebuah database.

jadi diatas contohnya membuat sebuah database dengan nama data siswa yang akan di backup dan di coba restore ke container lain misalkan.

selanjutnya adalah membuat sebuah container yang berfungsi untuk membackup data dari volume mariavolume ke direktori host. dibawah ini adalah membuat sebuah container dengan nama backupdatabase menggunakan volume mariavolume yang data nya akan di buat menjadi tar.gz ke folder /home/yudi/backup di host.

sebelum melakukan backup matikan container nya terlebih dahulu

$ docker stop 

kemudian buat sebuah container untuk melakukan backup data dari volume

$ docker run  --name backupdatabase --mount “type=volume,source=mariavolume,destination=/var/lib/mysql” --mount “type=bind,source=/home/yudi/backup,destination=/backup” ubuntu:latest tar cvf /backup/backup.tar.gz /var/lib/mysql

setelah perintah diatas dijalankan, maka data dari volume mariavolume akan di buat menjadi tar.gz ke folder yang ditentukan

dan backup pun berhasil, selanjutnya adalah bagaimana cara restore data yang sudah di backup tersebut. untuk pengujian nya coba hapus container maria1. lalu buat lagi sebuah volume baru kosong yang akan diisi data dari hasil backup an sebelumnya sebagai pengujian restore data ke volume baru atau volume lain. untuk melakukan restore data kita membutuhkan container lagi untuk melakukan restore data ke volume.

membuat sebuah volume baru

$ docker volume create mariarestore

kemudian buat container sekali pakai yang berfungsi untuk merestore data hasil ekstrak dari file hasil backup sebelumnya

$ docker run --rm --name backup --mount “type=volume,source=mariarestore,destination=/var/lib/mysql” --mount “type=bind,source=/home/yudi/backup,destination=/backup” ubuntu:latest bash -c “cd /var/lib/mysql && tar xvf /backup/backup.tar.gz --strip 1”

setelah ini maka volume telah terisi data dari volume sebelumnya yang sudah di backup, uji dengan membuat sebuah container yang akan menggunakan volume tersebut.

docker run --name maria2 -e MARIADB_ROOT_PASSWORD=1223 --mount “type=volume,source=mariarestore,destination=/var/lib/mysql” -d mariadb:latest

kemudian akses konsol database container tersebut dan cek database nya

jika database yang telah dibuat di container maria1 tadi ada disini maka restore telah berhasil.

--

--

No responses yet