Cara menggunakan mysql auto backup

Mysql adalah salah satu paling populer database manajemen sistem open source (gratis), yang di gunakan di berbagai plaftorm aplikasi berbasis web maupun desktop. Hampir kebanyakan para pengembangan aplikasi menggunakan Mysql untuk kebutuhan menyimpan sebuah data.

Selain aplikasinya yang gratis, Mysql memiliki keunggulan tersendiri dalam melakukan backup data, tentunya ini menjadi hal yang penting, karena kita tahu bahwa backup data sangat di perlukan, sewaktu waktu ada permasalahan pada sistem maupun database, kita dapat melakukan restore kembali.

Cara backup data di Mysql memiliki banyak cara, mulai dari yang otomatis maupun secara manual, ada yang menggunakan Phpmyadmin, myqldump cronjob dan mysqldump secara manual.

Berikut dibawah ini beberapa cara mudah backup database Mysql secara manual maupun otomatis.




1. Otomatis Backup Database Mysql di Linux

Cara yang pertama adalah backup database Mysql secara otomatis lewat "cron", cara ini bisa di lakukan di linux, dengan menggunakan paramater jam, database yang akan di ekspor, jenis file dan posisi file yang akan di ekspor.

00 12 * * * root /usr/bin/mysqldump --user=root --password=passwordmysql namadatabase | gzip > /home/wirneet/backup_database_`date +"\%Y-\%m-\%d"`.sql.gz

Cara detail dan bagaimana konfigurasi backup data Mysql secara otomatis, dapat Anda kunjungi di artikel Cara Backup Otomatis Database Mysql di Linux


2. Backup dengan MysqlDump

Selanjutnya ada backup database Mysql lewat Phpmyadmin, langkah yang satu ini tergolongan sangat mudah, dan ini salah satu backup cara cepat, apabila ingin melakukan backup database Mysql dalam bentuk sql database dan tabel teretentu saja.

Ada banyak cara sebenarnya, untuk proses otomatisasi ini. bisa menggunakan tools software atau bisa juga dengan scripting, kalau di Windows, dikenal batch file, di Linux kita kenal bash script.

kali ini, saya coba berbagi script yang biasa saya gunakan di windows. ini bisa dicopy – paste ke notepad, kemudian save as dengan format  *.bat

@echo off
title autobackup mysql by RW
set timestamp=%date:~6,4%%date:~3,2%%date:~0,2%
set archive="c:\Program Files\7-Zip\7z.exe"
set backupDir="C:\script\test"
cd "C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin"
mysqldump.exe -uUserNameDB -ppasswordDB -hlocalhost DbName > %backupDir%\test.sql
%archive% a -tgzip %backupDir%\%timestamp%_test.zip %backupDir%\test.sql
del %backupDir%\test.sql
pause

notes pada font merah…

  • mohon ganti dan sesuaikan dengan lingkungan Database yang sedang kamu gunakan ya, seperti lokasi “backupDir”, UserNameDB, PasswordDB, dan DbName.
  • kalau belum ada 7z tools archive, silakan didownload dan install dulu.  https://www.7-zip.org/download.html

selanjutnya, kita buat otomatis backup & archive sesuai jadwal yang ditentukan. di Windows pakai “task scheduler”, linux pakai “cronjob”.

windows > Start -> Accessories -> System Tools -> Task Scheduler

atau ketik di tombol search  “Task Scheduler”

kira-kira di windows seperti ini yang harus di-setup “task scheduler”, pastikan “runas administrator” dulu, ada beberapa tahap :

  1.  create task : tentukan nama jadwal, contoh “test mysql backup”
  2. setting trigger: tentukan jadwal daily atau monthly, dsb.
    Cara menggunakan mysql auto backup
  3. setting action. Tentukan Lokasi Script (batch file).
  4. setting condition. berguna apabila menggunakan backup external atau ke NAS & storage lainnya, script bisa jalan apabila ada koneksi jaringan, dsb.
    Cara menggunakan mysql auto backup

 

setelah dijalankan akan muncul tampilan cmd seperti ini

Cara menggunakan mysql auto backup

hasil backup mysql tersimpan di folder yang sudah ditentukan sebelumnya, misal. di C:\Script\test (seperti font merah diatas).

Haloo teman-teman Dumet School, pada kesempatan kali ini saya akan Membuat Auto Backup Database Mysql Menggunakan PHP. Dimana saya akan membuat function untuk backup database mysql menggunakan php dan akan saya looping dengan settimeout dengan durasi tertentu. Agar function backup tersebut terus berjalan sesuai waktu yang kita tentukan.

Langkah pertama teman-teman buat file dengan nama backup.php untuk membuat function backup seperti pada script di bawah ini.

   

    backupDatabaseTables('localhost','dumet','school','test');
    //membuat function backup database
    function backupDatabaseTables($dbHost,$dbUsername,$dbPassword,$dbName,$tables = '*'){
      //menghubungkan & memilih database
        $db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName);
     //Mendapatkan semua Table dengan (*)
     if($tables == '*'){
      $tables = array();
      $result = $db->query("SHOW TABLES");
      while($row = $result->fetch_row()){
       $tables[] = $row[0];
      }
     }else{
      $tables = is_array($tables)?$tables:explode(',',$tables);
     }
     //Loop melalui Table
     foreach($tables as $table){
      $result = $db->query("SELECT * FROM $table");
      $numColumns = $result->field_count;
      $return .= "DROP TABLE $table;";
            $result2 = $db->query("SHOW CREATE TABLE $table");
            $row2 = $result2->fetch_row();
      $return .= "\n\n".$row2[1].";\n\n";
      for($i = 0; $i < $numColumns; $i++){
       while($row = $result->fetch_row()){
        $return .= "INSERT INTO $table VALUES(";
        for($j=0; $j < $numColumns; $j++){
         $row[$j] = addslashes($row[$j]);
         $row[$j] = ereg_replace("\n","\\n",$row[$j]);
         if (isset($row[$j])) { $return .= '"'.$row[$j].'"' ; } else { $return .= '""'; }
         if ($j < ($numColumns-1)) { $return.= ','; }
        }
        $return .= ");\n";
       }
      }
      $return .= "\n\n\n";
     }
     //simpan file , alamat penyimpanan dan nama file
     $handle = fopen('backup/dumet-school.sql','w+');
     fwrite($handle,$return);
     fclose($handle);
    }

Jika sudah maka tahap selanjutnya teman-teman buat file dengan nama index.php yang berisi script untuk melooping function yang sudah di buat sebelumnya.

Dan jika sudah maka teman-teman buat satu folder backup untuk menyimpan file hasil backup databasenya. maka akan tampil seperti pada gambar di bawah ini.

Demikian artikel tentang cara Membuat Auto Backup Database Mysql Menggunakan PHP. Semoga dapat bermanfaat dan buat teman-teman yang ingin mencoba silahkan mencobanya.