Selasa, 18 Januari 2022

Cara backup database otomatis mysql docker

 Karena judulnya docker so pertama kita install dulu mysql di docker

1. Ambil image msql docker

    docker pull mariadb

2. Ambil image phpmyadmin docker

    docker pull phpmyadmin/phpmyadmin

3. Buat container untuk database

    Format :

    docker run --name=[container_name] -e MYSQL_ROOT_PASSWORD=[yourpassword] -e MYSQL_DATABASE=[database_name] -p 3306:3306 -d mariadb

    Contoh :

    docker run --name=dbpenjualan -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=penjualan -p 3306:3306 -d mariadb

4. Buat container untuk phpmyadmin

    Format :

    docker run --name [container_name]-d --link [mariadb_container_name]:db -p 8080:80 phpmyadmin/phpmyadmin

    Contoh :

    docker run --name phpMypenjualan -d --link dbpenjualan:db -p 8080:80 -e UPLOAD_LIMIT=300M phpmyadmin/phpmyadmin


    Tapi jika container database dan container phpmyadmin berbeda host maka perlu ditambahkan seperti ini :

    
    docker run --name phpmyxxxx -d -e PMA_HOST=192.168.x.x -p 60000:80 -e UPLOAD_LIMIT=900M phpmyadmin/phpmyadmin

    Contoh diatas dengan asumsi default port databasenya 3306 dan untuk phpmyadminnya di akses dengan port 60000

5. Testing phpmyadminnya dengan ip local:8080

    Kalau berhasil Alhamdulillah..

6. Buat Shell untuk backup-nya

    nano backup.sh

    kemudian isikan :

    
user=root pass=123456 host=192.168.2.10 dir=/home/ubuntu/backupdb backup(){ date=$(date +%Y%m%d-%H%M) tanggal=$(date +%d) bulan=$(date +%m) tahun=$(date +%Y) if [ ! -d "$dir/$tahun/$bulan/$tanggal/" ]; then mkdir --parents $dir/$tahun/$bulan/$tanggal; fi mysqldump -h -u$user -p$pass pembelian -h$host --routines | gzip > $dir/$tahun/$bulan/$tanggal/pembelian-$date.sql.gzip # gzip -f $dir/$tahun/$bulan/$tanggal/$dbs-$date.sql } backup exit 0

    Kemudian simpan

7. Tambahkan akses eksekusi ke file tersebut

    chmod +x backup.sh

8. test backup tersebut dg

    ./backup.sh

9. Kalau berhasil kita bikin schedul dengan crontab dengan install         crontab nya  

    sudo apt-get install cron

    
    Melihat aktifitas crontab     sudo crontab -l

10. Membuat schedule  

    sudo crontab -e

    Isikan dengan format ini

# |---------------- menit ke  (0 - 59)

# |  .------------- jam ke    (0 - 23)

# |  |  .---------- tanggal   (1 - 31)

# |  |  |  .------- bulan     (1 - 12)

# |  |  |  |  .---- hari ke, dalam pekan (0 - 6) (Minggu=0 or 7)

# |  |  |  |  |

# *  *  *  *  *  command.sh

    
Contoh, saya ingin menjalankan auto backup tiap jam 01.01 malam, maka saya akan mengisikan sebagai berikut

    
1 1 * * * /home/backup/backup.sh


Selesai....

Tidak ada komentar:

Posting Komentar