MySQL : Binary Logs Management

Prakata Binary Logs

MySQL sebagai database server, tidak lepas dari risiko-risiko masalah data. Risiko tersebut antara lain : kehilangan data, putus koneksi data, dan sejenisnya. Oleh karena itu MySQL memiliki fitur manajemen risiko data, salah satunya adalah dengan adanya Binary Logs. Binary Logs didesain untuk menyimpan seluruh data transaksional MySQL, baik sifatnya view (SELECT), hingga DELETE. Dalam operasionalnya, binary logs akan disimpan dalam sebuah file yang defaultnya berekstensi .bin. Lokasinya ada di datadir mysql. (Jika di linux defaultnya di /var/lib/mysql).

 

Bagaimana cara mengaktifkan Binary Logs?

Cara mengaktifkan Binary Logs adalah dengan mengaktifkannya pada file konfigurasi mysql. Untuk CentOS, pengaktifannya di /etc/my.cnf. Untuk Ubuntu/Debian, dapat lewat /etc/mysql/mysql.conf.d/mysqld.cnf. Ada beberapa baris yang perlu disetting untuk pengaktifan binary logs.

Bagian log-bin, adalah untuk mengaktifkan binary logs dengan suatu nama : misal mysql-bin. Max_binlog_size adalah besarnya tiap binary logs. Setelah angka max tercapai, mysql akan membuat binary logs lain dengan nama angka index binary logs. Misal mysql-bin.001080, dan seterusnya. Expiry logs days adalah maksimal binary logs boleh tinggal di server. Setelah lebih dari sekian hari, akan dihapus.

 

Bagaimana cara membaca Binary Logs?

MySQL memiliki cara membaca binary logs dengan perintah mysqlbinlog. Caranya adalah dengan perintah :

Misal :

Screenshot from 2019-03-01 10-46-39

 

 

MySQL Binary Logs Index

MySQL melakukan indexing binary logs (pengurutan), pada sebuah file yang diletakkan pada direktori yang sama dengan binlog. Yaitu di datadir. File tersebut biasanya bernama : mysql-bin.index. File tersebut berupa text, sehingga dapat dibaca begitu saja dengan editor text. Misal, punya saya :

Data tersebut juga dapat dicocokkan dengan melihat data binary logs via mysql command :

Contoh:

 

Tentu, pada direktori data, juga akan ada nama file tersebut :

Sebagai backup data aktif, binary logs, hanya akan berjalan pada satu file aktif. Bagaimana cara melihat file binary logs yang saat ini sedang digunakan?

 

Restore Data Binary Logs

Sebagai data backup, tentu backup ini bisa direstore kembali (dimasukkan ke dalam sistem database kembali), saat backup ini dibutuhkan. Bagaimana cara merestore binary logs? Langkah pertama adalah backup lebih dulu database yang ada. Selanjutnya dapat digunakan perintah :

Misal, punya saya, saya ingin mengembalikan posisi data per tanggal kemarin, maka saya akan cari binary logs tanggal kemarin, dan akan saya lakukan

 

Bagaimana cara menghapus Binary Logs?

Binary Logs, tidak boleh dihapus langsung dari struktur file. Jangan menggunakan rm -f /var/lib/mysql/mysql.bin.00002 . Ada cara yang lebih prosedural untuk menghapus. Caranya adalah dengan menggunakan perintah mysql:

Misal punya saya,

Biasanya yang disisakan adalah binary logs yang aktif pada master status. Untuk auto hapus, dapat menggunakan cara yang sudah disebut di atas, yaitu dengan menentukan maksimal umur Binlog di server. Dengan cara menambahkan

Maka binary logs yang lebih lama dari 7 hari akan dihapus oleh MySQL.

 

 

Nah demikian dulu. Semoga bermanfaat. Segala masukan, dipersilakan.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">