Back Up Database MySql Harian Secara Otomatis


Berikut ini script sederhana dari saya untuk backup database Mysql secara otomatis. Untuk menjalankannya bisa menggunakan cron. Sebelum memulai langkah – langkah di bawah ada paket yang harus anda install terlebih dahulu (jika belum ada) yaitu bzip2 yang berfungsi mengkompress file hasil backup. Untuk distro Debian atau Ubuntu bisa menggunakan perintah berikut:

apt-get install bzip2

Sedangkan langkah installasi script back up-nya adalah sebagai berikut:

  • Login ke Database Serversebagai root
  • Buat file seperti di bawah dengan nama backupdb.sh
  • Simpan file ke suatu directory. Misal ke directory /sbin
  • Ubah permission file backupdb.sh agar bisa di execute dengan perintah berikut:

chmod + x /sbin/backupdb.sh

  • Edit crontab dengan perintah berikut:

crontab -e

  • Tambahkan baris berikut pada file cron:

* 00 * * * /sbin/backupdb.sh

  • Maksud dari baris di atas adalah menjalankan script /sbin/backupdb.sh pada jam 00 (tengah malam) setiap hari. Deatil mengenai crontab akan saya bahas pada artikel yang lain insya Allah.
  • Simpan file cron dan keluar dari editor

#!/bin/bash

######################################################
# Database Configuration, sesuaikan dengan konfigurasi database Anda
######################################################

db_host=”localhost”
db_user=”root”
db_pass=”password”

######################################################
# Masukkan nama database yang akan di backup berurutan
######################################################

db_name=”db1 db2 db3″

#####################################################
# Nama file backup dibedakan dengan variable waktu, sesuaikan dengan kebutuhan
#####################################################

now=`date +%d%m%Y`
backup_file=”/home/backup/backupdb-$now.sql”

#####################################################
# Simpan database dengan format bz2 ke directory yang sudah di tentukan
#####################################################

mysqldump -h $db_host -u$db_user -p$db_pass –databases $db_name > $backup_file
bzip2 $backup_file

exit 0

Script ini bisa dikembangkan dengan mengirimkan file backup ke ftp server seperti yang pernah saya implementasikan di tempat kerja saya (artikelnya segera akan saya tulis insya Allah). Demikian script sederhana dari saya mudah – mudahan bisa berguna. Mohon koreksi dan saran.

Loadbalancing dengan 2 Modem Speedy


Berikut adalah konfigurasi loadbalancing di Linux (sudah dicoba di Debian Lenny dan berhasil) dengan 2 modem Speedy

Network Topology

+———–+ —> Modem Speedy 1 —>  +———–+
| Internet |                                                           | Gateway | —> LAN
+———–+ —> Modem Sppedy 2 —>  +———–+

Modem
Speedy 1

IP Address : 192.168.1.1
Netmask : 255.255.255.0

Speedy 2
IP Address : 192.168.2.1
Netmask : 255.255.255.0

Gateway
Eth0 (Connected to LAN)
IP Address : 192.168.0.1
Netmask : 255.255.255.0

Eth1 (Connected to Speedy 1)
IP Address : 192.168.1.2
Netmask : 255.255.255.0

Eth2 (Connected to Speedy 2)
IP Address : 192.168.2.2
Netmask : 255.255.255.0

Network Configuration

Edit file /etc/network/interfaces (distro lain menyesuaikan) dengan editor kesayangan Anda sbb:

auto lo eth0 eth1 eth2
iface lo inet loopback

iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0

iface eth1 inet static
address 192.168.1.2
netmask 255.255.255.0

iface eth3 inet static
address 192.168.2.2
netmask 255.255.255.0

Loadbalancing

Edit file /etc/iproute2/rt_tables. Tambahkan baris berikut di baris paling bawah:

201 speedy1
202 speedy2

Buat file /etc/loadbalancing sbb:

#!/bin/bash

T1=speedy1
IF1=eth1
IP1=192.168.1.2
GW1=192.168.1.1
NET1=192.168.1.0/24

T2=speedy2
IF2=eth2
IP2=192.168.2.2
GW2=192.168.2.1
NET2=192.168.2.0/24

ip route add $NET1 dev $IF1 src $IP1 table $T1
ip route add default via $GW1 table $T1
ip route add $NET2 dev $IF2 src $IP2 table $T2
ip route add default via $GW2 table $T2

ip route add $NET1 dev $IF1 src $IP1
ip route add $NET2 dev $IF2 src $IP2

ip rule add from $IP1 table $T1
ip rule add from $IP2 table $T2
ip route add default scope global nexthop via $GW1 dev $IF1 weight 1 nexthop via $GW2 dev $IF2 weight 1

iptables -t nat -A POSTROUTING -o $IF1 -j SNAT –to-source $IP1
iptables -t nat -A POSTROUTING -o $IF2 -j SNAT –to-source $IP2

Simpan file konfigurasi. Set permission agar file dapat di execute.

#chmod +x /etc/loadbalancing

Edit file /etc/rc.local. Tambahkan baris berikut sebelum baris “exit 0”. Tujuannya adalah agar script tadi dijalankan ketika reboot.

/etc/loadbalancing

Reboot mesin untuk mendapatkan efek.

#reboot

Coba akses internet dari LAN. Gunakan tool ifstat untuk melihat apakah konfigurasi loadbalancing berhasil atau tidak. Tool ifstat bisa diinstall dengan cara “apt-get install ifstat” pada Debian atau Ubuntu. Distro lain menyesuaikan.

Jika output command ifstat menunjukkan adanya traffic di interface eth1 dan eth2 maka konfigurasi loadbalancing berhasil. Selamat mencoba…