Membuat Script Backup Oracle DAtabase Pada Linux Server

Hai.. Assalamualaikum Wr.Wb

Pada kesempatan kali ini aku mau membuat script untuk membackup database oracle dan juga membuat script konfigurasi menghapus hasil backup secara otomatis berdasarkan jumlah hari yang ditentukan.

Perlu diperhatikan untuk memahami script ini kalian membutuhkan pengetahuan dasar tentang oracle database dan bahasa bash , sehingga tidak akan bingung dan gundah.

1. Pertama kita buat dulu file bernama ‘oracle-backup.sh’ , kemudian isikan codingan seperti ini :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
BACKUP_DATE=$(date +'%Y%m%d')
BACKUP_DIR=/mnt/data/Backup/Database
DUMP_DIR=/u01/app/oracle/admin/xe/dpdump

# Make backup directory
if [ ! -d ${BACKUP_DIR}/${BACKUP_DATE} ]; then
mkdir ${BACKUP_DIR}/${BACKUP_DATE}
fi

# Remove file exist
rm ${DUMP_DIR}/BACKUP_ISO_${BACKUP_DATE}.DMP

# Backup DB
expdp USERNAME/PASSWORD dumpfile=DB_${BACKUP_DATE}.DMP logfile=DB_${BACKUP_DATE}.LOG schemas=NAMA_SCHEMA &&\
mv ${DUMP_DIR}/DB_${BACKUP_DATE}.DMP ${BACKUP_DIR}/${BACKUP_DATE} &&\
mv ${DUMP_DIR}/DB_${BACKUP_DATE}.LOG ${BACKUP_DIR}/${BACKUP_DATE}

Penjelasan

1
#!/bin/bash

Ini merupakan code yang wajib jika ingin menjalankan menggunakan bash script !

1
BACKUP_DATE=$(date +'%Y%m%d')

Membuat format tanggal untuk penamaan folder backup.

1
BACKUP_DIR=/mnt/data/Backup/Database

Mengatur lokasi tempat folder menyimpan hasil backup yang akan di pindahkan dari folder asli backupan oracle.

1
DUMP_DIR=/u01/app/oracle/admin/xe/dpdump

Merupakan folder asli yang sudah otomatis dibuat oleh oracle , beberapa versi oracle memiliki perbedaan tempat , contoh ini menggunakan oracle 12g.

1
2
3
if [ ! -d ${BACKUP_DIR}/${BACKUP_DATE} ]; then
mkdir ${BACKUP_DIR}/${BACKUP_DATE}
fi

Membuat script apabila folder belum terbuat , jika sudah terbuat akan di skip.

1
rm ${DUMP_DIR}/BACKUP_ISO_${BACKUP_DATE}.DMP

Menghapus file backup lama di waktu yang sama apabila kita melakukan backup 2 kali dalam 1 hari.

1
2
3
expdp USERNAME/PASSWORD dumpfile=DB_${BACKUP_DATE}.DMP logfile=DB_${BACKUP_DATE}.LOG schemas=NAMA_SCHEMA &&\
mv ${DUMP_DIR}/DB_${BACKUP_DATE}.DMP ${BACKUP_DIR}/${BACKUP_DATE} &&\
mv ${DUMP_DIR}/DB_${BACKUP_DATE}.LOG ${BACKUP_DIR}/${BACKUP_DATE}

Kode ini merupakan kode export dasar bawaaan dari oracle , seharusnya pengguna oracle sudah pada tau fungsi dari kode baris pertama. Sedangkan kode barisan kedua dan ketiga yaitu memindahkan file hasil backup di folder original ke folder yang sudah di tentukan.

2. Kedua kita membuat script bernama ‘hapus-backup-oracle.sh’ kemudian isikan kode seperti in :

1
2
3
4
5
#!/bin/bash

echo "Mulai Proses Menghapus File Yang lebih dari 15 Hari"
find /mnt/data/Backup/Database -type f -mtime +15 -delete
echo "Proses Selesai"

Kode diatas terlihat simple namun sangat berguna untuk menghapus data yang kita inginkan agar tidak memenuhi memori penyimpanan.

Penjelasan

1
#!/bin/bash

Ini merupakan code yang wajib jika ingin menjalankan menggunakan bash script !

1
find /mnt/data/Backup/Database -type f -mtime +15 -delete 

Kita mulai dari ‘find’ yang berfungsi untuk mencari tempat file atau folder dengan cara memasukan data url nya pada dir linux.
kemudian ‘-type’ merupakan tipe apa saja yang akan di hapus disini kita menggunakan -type f yang berarti file , jika ingin menghapus folder berarti kita menggunakan -type d.
kemudian ‘-mtime’ merupakan jumlah hari yang diinginkan untuk tetap tersimpan , jadi jika file sudah lebih dari hari yang ditentukan misalnya ‘-mtime 5’ yang berarti jika sudah lewat 5 hari maka file itu akan di hapus.


Itu merupakan cara membuat script membackup dan menghapus database oracle, untuk dapat membuat kode berjalan otomatis berdasarkan jam dan waktu yang ingin ditentukan untuk menjalankan script tersebut kalian harus memahami cara menggunakan cron job , mungkin dilain waktu aku akan membahas cron job.

Terimakasih sudah membaca semoga ilmu ini bermanfaat.