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).

[bimo@wedhus ~]$ ls /var/lib/mysql/ -alh
total 6.8G
drwxr-xr-x 16 mysql mysql 4.0K Mar 1 06:45 .
drwxr-xr-x. 19 root root 4.0K Mar 1 04:02 ..
-rw-rw---- 1 mysql mysql 746M Mar 1 10:16 ibdata1
-rw-rw---- 1 mysql mysql 5.0M Mar 1 10:16 ib_logfile0
-rw-rw---- 1 mysql mysql 5.0M Mar 1 10:16 ib_logfile1
drwx------ 2 mysql mysql 4.0K Aug 16 2017 mysql
-rw-rw---- 1 mysql mysql 201M Feb 22 06:45 mysql-bin.001047
-rw-rw---- 1 mysql mysql 202M Feb 22 12:30 mysql-bin.001048
-rw-rw---- 1 mysql mysql 202M Feb 22 18:05 mysql-bin.001049
-rw-rw---- 1 mysql mysql 201M Feb 22 23:55 mysql-bin.001050
-rw-rw---- 1 mysql mysql 35M Feb 23 01:00 mysql-bin.001051
-rw-rw---- 1 mysql mysql 201M Feb 23 06:45 mysql-bin.001052
-rw-rw---- 1 mysql mysql 201M Feb 23 12:35 mysql-bin.001053
-rw-rw---- 1 mysql mysql 202M Feb 23 18:25 mysql-bin.001054
-rw-rw---- 1 mysql mysql 201M Feb 24 00:15 mysql-bin.001055
-rw-rw---- 1 mysql mysql 23M Feb 24 01:00 mysql-bin.001056
-rw-rw---- 1 mysql mysql 201M Feb 24 06:45 mysql-bin.001057
-rw-rw---- 1 mysql mysql 201M Feb 24 12:35 mysql-bin.001058
-rw-rw---- 1 mysql mysql 202M Feb 24 18:25 mysql-bin.001059

 
Continue reading “MySQL : Binary Logs Management”

Mainan For di bash Linux

Terimakasih yang mau menunggu lama artikel singkat ini, maaf requestnya baru kejawab :D. Antri. Seorang rekan bertanya : “Bagaimana bisa otomatis membuat direktori yang sama dengan isi tabel user di sebuah tabel user mysql? Syaratnya perintahnya singkat”. Ilustrasinya adalah sebagai berikut. Terdapat sebuah tabel user pada database pegawai, dengan isi sebagai berikut:

Id username
1 bimo
2 wahyu
3 sukar

Dari sejumlah nama itu akan dibuat sebuah direktori yang berisi subdirektori yang memiliki nama seperti pada tabel tersebut.
Mula-mula kita perlu tahu perintah bash shell mysql untuk menampilkan tabel. Kita tahu bahwa syntax mysql untuk menampilkan isi tabel user pada database pegawai adalah
Continue reading “Mainan For di bash Linux”

[Trik] Query SQL Apa Yang Dapat Dikenai Fetch PHP

Ada satu pertanyaan mendasar yang ditanyakan melalui email, yang mungkin dapat langsung saya balas sekarang, melalui posting. Sayangnya penanya berharap tidak dicantumkan nama di sini, tapi tidak masalah, karena ini barangkali akan penting bagi siapapun.

Jawaban mudahnya: Fetching Result, digunakan untuk perintah SQL yang menghasilkan keluaran data, bukan sekedar mengubah data. Contoh sintaks fetching result dalam PHP adalah

  1. mysql_fetch_row (numerik)
  2. mysql_fetch_assoc (assosiatif)
  3. mysql_fetch_array (numerik assosiatif)

Sedangkan sintaks-sintaks SQL yang dapat dikenai fetching result antara lain:
Continue reading “[Trik] Query SQL Apa Yang Dapat Dikenai Fetch PHP”

[Tips] Membuat Multi Subdomain dan Memetakan dalam Database

Kita tentu sering menggunakan fasilitas blog dengan support subdomain, seperti wordpress.com, atau blogger.com dengan layanan blogspot.com dan lain sejenisnya. Ketika mendaftarkan sebuah blog, maka kita akan diberikan sebuah blog dengan subdomain seperti yang kita daftarkan, seperti contoh: http://bimosaurus.wordpress.com. Sedangkan kita tahu bahwa biasanya proses pembuatan subdomain atau domain saja memerlukan waktu propagasi yang cukup lama, namun dalam pembuatan blog, bisa langsung. Kok bisa?

 

DNS

Untuk masalah DNS kuncinya adalah pada DNS pointernya. Selama DNS Server kita mendukung penggunaan wilcard DNS, maka tidak akan masalah. Setiap subdomain akan langsung diarahkan ke web kita tersebut. Wilcard DNS akan ditandai dengan tanda *. Untuk anda pengguna linux console dapat melakukan pointing wilcard seperti demikian

  IN   A   IP_ADDRESS
* IN   A   IP_ADDRESS

dns

Disana artinya bahwa untuk seluruh subdomain dari domain anuanucoba.com akan diarahkan ke IP Address 111.111.222.222. Artinya segala akses semua subdomain akan diarahkan pada IP Address tersebut. Bisa juga IP tersebut adalah komputer yang digunakan untuk DNS itu sendiri. Selanjutnya, setelah data tersebut terarah ke IP Address itu, segala request web akan dilayani oleh Webserver (Apache, LightHTTPD, HTTPD dsb). Setelah membentuk wilcard DNS, proses propagasi hanya untuk propagasi wilcardnya. Sehingga setelah proses propagasi (penyebaran domain ke server server DNS) itu selesai, seluruh subdomain akan dianggap sama dengan wilcard DNS. Untuk yang biasa dengan setting WordPressMU tentu telah terbiasa cara ini.

 
Continue reading “[Tips] Membuat Multi Subdomain dan Memetakan dalam Database”

[Tips] Menyiasati Load Tinggi Server Akibat Beban Proses Aplikasi Web (server sendiri)

Bagi anda yang berkecimpung dengan blog atau web dengan memanfaatkan CMS di hosting entah Hosting, VPS, Dedicated Server, Colocation Server sampai server Mandiri, tentu akan sering merasakan betapa CMS kita akan sangat berat diload. Sebagai tambahan informasi, bahwa beberapa CMS terutama WordPress dan Joomla memiliki dukungan plugins yang justru ketika kita gunakan plugins tersebut, akan memakan resource server kita sendiri. Akibatnya, load server terutama ketika memasuki halaman administrator, akan sangat berat loadnya. Untuk pengguna layanan hosting, akibat load server tersebut, atau proses hit ke luar server yang terlalu tinggi, bisa berakibat pada pemblokiran aplikasi kita sendiri. Pernah mengalami? Terutama biasanya terjadi pada CMS-CMS yang menggunakan plugins–plugins untuk SEO (Search Engine Optimizer) aktif. Aktif dalam hal agresif melakukan hit ke luar server kita sendiri.
Continue reading “[Tips] Menyiasati Load Tinggi Server Akibat Beban Proses Aplikasi Web (server sendiri)”

Berkreasi dengan Peta HTML dan tag Map Area [Bagian 2]

MENGAMBIL KOORDINAT SEBUAH TITIK DARI SEBUAH GAMBAR

Jika pada Posting lalu https://blogit.bimosaurus.com/2013/03/16/berkreasi-dengan-peta-html-dan-tag-map-area-bagian-1/ telah dipaparkan bagaimana cara menyajikan sebuah gabungan antara gambar peta dan data koordinat dalam source HTML, maka di bagian ini akan dijelaskan bagaimana cara mengambil koordinat sebuah gambar. Untuk mengambil value koordinat yang diperlukan oleh MAP AREA, kita akan menggunakan bantuan Javascript untuk menentukannya.

Format koordinat MAP AREA untuk kategori POLYGON adalah sebagai berikut :

x1,y1,x2,y2,x3,y3,x4,y4………xn,yn
Continue reading “Berkreasi dengan Peta HTML dan tag Map Area [Bagian 2]”

[Tips] Mengatur Grant User MySQL

Jika kita adalah seorang system administrator, atau network engineer, atau software engineer, maka kita akan sering berhadapan dengan proses administrasi installasi database server, misal : Installasi MySQL. Proses installasi MySQL memiliki beberapa tahap. Setelah melakukan installasi software MySQL Server, akan dilanjutkan installasi database mysql itu sendiri. Selanjutnya pekerjaan penting seorang system administrator adalah mengatur Grant atau hak akses masing-masing user.

Pengaturan hak akses itu sendiri dilakukan di dalam prompt MySQL dengan mode “root”. Pengaturan hak akses dapat dilakukan dengan melakukan perintah utama mysql : GRANT. Untuk user root, akan selalu memiliki hak akses terhadap apapun, termasuk membuat GRANT. Contoh membuat grant adalah:

 

GRANT ALL PRIVILEGE ON `namadatabase`.* to 'namauser'@'host' identified by 'password';

Artinya adalah bahwa dibuat grant baru yang memberikan segala hak kepada ‘namauser’ yang login di ‘host’ dengan password ‘password’. Grant yang diberikan termasuk MEMBUAT, dan MENGHAPUS. Untuk memberikan grant sebagian dapat diberikan perintah seperti berikut :

GRANT SELECT on `namadatabase`.`satu` to namauser@localhost identified by 'pass1';

Yang artinya adalah user ‘namauser’ yang hanya boleh login dari localhost dengan password = pass1 hanya boleh melakukan SELECT terhadap tabel ‘satu’ dalam database ‘namadatabase’

Kadang terdapat kebutuhan agar seorang user dapat membuat database dan menghapus database tertentu. Maka kita dapat membuat grant seperti demikian :

use mysql;
GRANT ALL PRIVILEGES on `bimo_%`.* to bimo@'%' identified by 'bimpass';

Artinya adalah saya membuat grant untuk user ‘bimo’ agar dapat membuat segala database selama diawali dengan prefix “bimo_” dan dilakukan dengan login password ‘bimpass’

Jangan lupa seteah melakukan granting, lakukanlah perintah :

flush privileges;

agar aturan granting yang baru segera dapat diberlakukan..

Semoga berguna