Setup Slave Replikasi MySQL Database dengan Percona XtraBackup


logo mysqlMenyiapkan slave untuk replikasi MySQL database dengan Percona XtraBackup sangat mudah dan simple. Dengan menggunkan tool dari Percona ini database master tidak perlu dilock ataupun dimatikan. Yang perlu disiapkan adalah :

  1. Server MySQL Database yang akan dijadikan master dengan IP Address misalnya : 192.168.1.1 dan konfigurasi
    • MySQL bisa berkomunikasi dengan server lain dengan port standar TCP/IP
    • Percona xtrabackup telah diinstall -> langkahnya
    • User dengan privileges replication slave sudah tersedia
      mysql> CREATE USER 'repl'@'192.168.1.2' IDENTIFIED BY 'slavepass';
      mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.2';
    • Binlog dan server-id telah disetup di file my.cnf atau my.ini
      [sugeng@192.168.1.1 ~]$ vi /etc/my.cnf
      log-bin = /var/lib/mysql/mysql-bin
      server-id = 1
  2. Server MySQL Database yang akan dijadikan slave dengan IP Address misalnya : 192.168.1.2 dan konfigurasi
    • MySQL bisa berkomunikasi dengan server lain dengan port standar TCP/IP
    • server-id telah disetup di file my.cnf atau my.ini
      [sugeng@192.168.1.2 ~]$ vi /etc/my.cnf
      server-id = 2

 

Kemudian langkah-langkahnya adalah

Langkah I : Menyiapkan Backup di server master

[sugeng@192.168.1.1 ~]$  innobackupex --user=yourDBuser --password=MaGiCdB1 /var/lib/mysql.backup/
Setelah selesai akan muncul pesan
innobackupex: completed OK!

Maka akan terbuat sebuah file backup di /var/lib/mysql.backup/$TIMESTAMP. Agar file backup konsisten maka perlu mempersiapkan data:

[sugeng@192.168.1.1 ~]$  innobackupex --user=yourDBuser --password=MaGiCdB1 --apply-log /var/lib/mysql.backup/$TIMESTAMP

Langkah II : Mencopykan file backup ke server slave

[sugeng@192.168.1.1 ~]$  innobackupex --user=yourDBuser --password=MaGiCdB1 --apply-log /var/lib/mysql.backup/$TIMESTAMP

Kopikan file backup dari server master ke datadir mysql slave

[sugeng@192.168.1.1 ~]$ scp -r /var/lib/mysql.backup/$TIMESTAMP sugeng@192.168.1.2:/var/lib/mysql/

Langkah III : Start Slave
lihat posisi binlog, untuk dijadikan acuan MASTER_LOG_FILE dan MASTER_LOG_POS slave ketika start

[sugeng@192.168.1.1 ~]$ cat /var/lib/mysql/xtrabackup_binlog_info

konfigurasi slave

mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.1', MASTER_USER='repl', MASTER_PASSWORD='slavepass', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=245;

Start slave

mysql> START SLAVE;

Cek slave

mysql> SHOW SLAVE STATUS;

Manfaat Bawang Putih


Bawang putih merupakan bawang yang warnanya putih. Berbeda dengan bawang merah yang warnanya merah. Sementara bawang daun warnanya daun. Eh, bukan. Bawang daun atau daun bawang yaitu daunnya tanaman bawang. Hehe, tidak ilmiah sekali penjelasannya. Ah, tentunya pembaca sudah pada tahu seperti apa bentuk bawang putih, bawang merah dan daun bawang.

Bawang putih banyak digunakan sebagai bumbu masak dasar yang tidak boleh terlewat dalam setiap masakan. Akan tetapi, selain digunakan sebagai bumbu masak, bawang putih juga berkhasiat sebagai obat-obatan untuk berbagai macam penyakit.

Bawang putih dalam keadaan mentah mengandung senyawa sulfur termasuk zat kimia bernama Alliin. Ketika bawang putih dimemarkan/dihaluskan, zat aliin yang sebenarnya tidak berbau akan terurai. Dengan dorongan enzim alinase, aliin terpecah menjadi alisin, amonia, dan asam piruvat. Bau tajam alisin disebabkan karena kandungan zat belerang. Aroma khas ini bertambah menyengat ketika zat belerang (sulfur) dalam alisin diterbangkan ammonia ke udara, sebab ammonia mudah menguap. Senyawa alisin berkhasiat menghancurkan pembentukan pembekuan darah dalam arteri, mengurangi gejala diabetes dan mengurangi tekanan darah.

Selain alisin, bawang putih juga memiliki senyawa lain yang berkhasiat obat, yaitu alil. Senyawa alil paling banyak terdapat dalam bentuk dialil-trisulfida yang berkhasiat memerangi penyakit-penyakit degeneratif dan mengaktifkan pertumbuhan sel-sel baru.

Nilai Kandungan Gizi Bawang Putih Mentah per 100 g (3.5 oz)

  • Energi 623 kJ (149 kcal)
  • Karbohidrat 33,06 g
  • Gula 1.00g
  • Diet serat 2,1 g
  • Lemak 0,5 g
  • Protein 6,39 g
  • Beta-karoten 5 mg (0%)
  • Thiamine (Vit. B1) 0,2 mg (15%)
  • Riboflavin (Vit. B2) 0,11 mg (7%)
  • Niacin (Vit. B3) 0,7 mg (5%)
  • Asam pantotenat (B5) 0,596 mg (12%)
  • Vitamin B6 1,235 mg (95%)
  • Folat (B9 Vit.) 3 mg (1%)
  • Vitamin C 31.2 mg (52%)
  • Kalsium 181 mg (18%)
  • Zat Besi 1,7 mg (14%)
  • Magnesium 25 mg (7%)
  • Fosfor 153 mg (22%)
  • Kalium 401 mg (9%)
  • Sodium 17 mg (1%)
  • Seng 1,16 mg (12%)
  • Mangan 1,672 mg
  • Selenium 14.2 mg

Sumber: USDA Nutrient database 

Nah, setelah anda mengetahui kandungan yang terdapat dalam baunya bawang putih, maka Anda perlu tahu juga apa saja manfaat dan khasiat bawang putih. Berikut ini penjelasannya.

1. Mencegah Kanker

Bawang putih mengandung antioksidan yang dapat membantu mencegah kanker. Jika Anda adalah perokok berat, Anda boleh mengunyah bawang putih mentah untuk melindungi tubuh dan mencegah kanker.

2. Anti Radang

Bawang putih mengandung anti-peradangan. Sehingga jika Anda mengalami demam, atau sakit tenggorokan, cukup hanya mengunyah bawang putih dan hasilnya tenggorokan Anda akan segera kembali fit.

3. Anti Bakteri

Bawang putih juga merupakan anti-bakteri yang baik. Apabila Anda mengalami infeksi pencernaan, maka campurkan cacahan bawang putih mentah di dalam salad. Pencernaan Andapun akan semakin lancar.

4. Menyuburkan rambut

Bawang putih dapat mengatasi masalah kerontokan rambut. Dengan kandungan Allicin yang tinggi, mirip senyawa belerang yang ditemukan pada bawang merah, yang dipercaya efektif untuk mengatasi masalah rambut rontok. Gosokkan irisan siung bawang putih pada kulit kepala lalu pijat-pijat untuk mendapatkan hasil yang maksimal. Bisa juga bawang putih ditambahkan minyak, lalu dipijatkan ke kepala.

5. Membersihkan jerawat

Mungkin tidak ditemukan sebagai bahan utama dalam obat jerawat yang ada di apotek, tetapi bawang putih merupakan obat alami yang mampu mengusir jerawat karena mengandung antioksidan yang dapat membunuh bakteri. Gosokkan satu irisan bawang putih pada jerawat di wajah perlahan-lahan.

6. Mencegah dan mengobati flu

Dengan kandungan antioksidan di dalamnya, menjadikan sistem imun tubuh manusia mendapatkan manfaat jika bawang putih secara konstan di masukkan dalam menu sehari-hari. Jika flu menghampiri, cobalah menyeruput teh bawang putih : masukkan irisan atau cincang halus bawang putih dalam air panas untuk beberapa menit kemudian saring. Teh siap diminum. Dapat juga ditambahkan sedikit madu atau jahe untuk menambah rasa.

7. Menyembuhkan penyakit kulit

Karena telah terbukti memiliki khasiat anti radang, bawang putih berguna mengurangi terjangkitnya penyakit kulit. Coba olesi sedikit minyak bawang putih di area yang terinfeksi untuh hasil kulit yang lebih halus.

8. Mengontrol berat badan

Ahli gizi Cynthia Sass menyebutkan penelitian pada tikus yang makan bawang putih menunjukkan adanya pengurangan berat badan dan penyimpanan lemak. Cobalah untuk memasak setiap dengan menggunakan bawang putih menghasilkan makanan yang lezat dan pinggang yang ramping.

9. Mengatasi Keracunan

Antioksidan yang terkandung di dalam bawang putih juga mampu membantu mengusir racun dari dalam tubuh. Manfaat ini tak hanya baik untuk kesehatan, namun juga dapat membantu memperlambat penuaan dini.

10. Meredakan Nyeri

Jika Anda menderita arthritis, hancurkan bawang putih mentah kemudian kompreskan pada bagian lutut atau tulang yang nyari. Bawang putih akan meredakan nyeri tersebut.

11. Pertolongan Pertama Keracunan Merkuri

Keracunan akibat merkuri atau arsenik juga dapat diringankan dengan mengonsumsi bawang putih mentah. Namun, pertolongan ini hanya berfungsi sebagai pertolongan pertama saja. Segera dapatkan perawatan intensif dari dokter jika Anda mengalaminya.

12. Menyembuhkan luka serpihan

Menempatkan sepotong bawang putih di atas luka serpihan kaca kemudian menutupinya dengan balutan perban merupakan obat tradisional yang telah lama digunakan oleh sebagian masyarakat. Para blogger meyakini akan hal tersebut sampai sekarang.

13. Menghilangkan Gatal Akibat Jamur

Dengan sifat anti-jamurnya, bawang putih dapat menjadi obat mujarab bagi atlet untuk menghilangkan rasa gatal di kaki. Rendam kaki dalam bak berisi air hangat dan cincangan bawang putih.

14. Mengusir Nyamuk

Salah satu penelitian di India menemukan bahwa orang-orang yang menggosokkan ramuan bawang putih di lengan dan kaki mereka, tidak terganggu oleh binatang penghisap darah tersebut. Buatlah larutan minyak bawang putih, minyak jeli dan lilin lebah atau tempakan sesiung bawang putih di tempat tertentu sebagai penangkal nyamuk.

15. Menyembuhkan sariawan

Menurut situs ECOSALON, bawang putih mengandung suplemen yang dapat membantu proses penyembuhan pada masalah sariawan . Dengan adanya sifat alami anti-inflamasi membantu mengurangi rasa sakit dan pembengkakan.

16. Zat Perekat Alami

Pernahkah Anda memperhatikan bagaimana lengketnya jari Anda setelah memotong bawang putih? Bawang putih mengandung bahan perekat alami yang berkualitas dimana banyak orang meyakini dan menggunakannya untuk memperbaiki keretakan pada benda kaca. Hancurkan beberapa cengkeh dan beberapa siung bawang putih kemudian oleskan bahan tersebut ke bagian yang akan direkatkan.

17. Mengusir Hama Tanaman

Hama tanaman tidak suka bawang putih. Gunakanlah pestisida alami yang terbuat dari bawang putih, minyak mineral, air, dan sabun cair. Tuang ke dalam wadah penyemprot dan semprotkan ke tanaman.

18. Campuran Umpan Pancing

Bagi anda yang suka memancing, gunakanlah bawang putih sebagai campuran umpan. Ikan sangat tertarik denga aroma bawang putih yang ditautkan pada umpan.

19. Melancarkan Peredaran Darah

Mengunyah bawang putih merah juga dapat membantu memperlancar peredaran darah dan membuka pembuluh darah yang tersumbat.

20. Mengatasi Diabetes

Apabila Anda menderita diabetes, bawang putih juga baik untuk membantu mengontrol jumlah kadar gula di dalam darah.

Manfaat bawang putih yang disebutkan di atas hanya sebagian kecil saja dari 1001 khasiat yang terkandung pada bawang putih. Mengingat banyaknya manfaat dari si putih ini, ada baiknya kita selalu menyimpan persediaan bawang putih di dapur. Tidak perlu khawatir membusuk, karena bawang putih termasuk bumbu dapur yang tahan lama asalkan disimpan di tempat yang kering.

MariaDB 5.5.33a Dengan Galera Cluster


galera_overview

Turunan MySQL MariaDB dengan varian cluster Galera, yaitu versi MariaDB Galera Cluster 5.5.33a telah tersedia, Edisi ini mendukung sinkronus replikasi multi master atau “synchronous Multi Master Replication” yang memungkinkan baca dan tulis pada basis data di semua simpul.

MariaDB adalah turunan basis data Oracle MySQL, namun menerapkan lisensi bebas GNU/GPL. Nama MariaDB diturunkan dari nama putri ketiga Michael “Monty” Widenius, pendiri Monty Program dan MySQL. MariaDB memiliki banyak fitur yang sejak lama telah dipelihara komunitas sehingga menurut Monty seharusnya sangat stabil.

MariaDB telah mengganti InnoDB dengan XtraDB yang juga telah mendapat perbaikan dari Google dan Percona. XtraDB diklaim secara signifikan bisa jalan lebih cepat dibandingkan InnoDB, disamping ia juga bisa digunakan tanpa perlu memasang Plugin seperti halnya pada MySQL.

Bersama dengan peluncuran MariaDB Galera Clusters 5.5.33a, Yayasan MariaDB meningkatkan portofolionya dengan fitur “synchronous Multi Master Replication”. Untuk itu, pengembang MariaDB telah menginplementasikan teknologi “Galera Cluster” yang dikembangkan oleh Codership dan ditanamkan langsung di sistem pengelolaan basis data MariaDB. Solusi ini memungkinkan replikasi terselaraskan (synchronous replication) dengan topologi Multi Master. Proses membaca dan menulis di basis data dapat dilakukan di semua simpul, dimana sistem ini juga secara otomatis dapat mendeteksi simpul-simpul yang tidak terjangkau dan mengabaikannya dari Cluster. Sebelumnya di sistem MariaDB hanya tersedia fitur “semi-synchronous Replication“.

MariaDB Galera Cluster 5.5.33a diterbitkan dibawah naungan lisensi bebas GNU/GPL. Paket binari, termasuk kode sumbernya dapat langsung diunduh dari situs pengembangnya. Serupa dengan produk komersial lainnya, dukungan untuk perusahan tersedia antara lain dari SkySQL, perusahan pendukung yang didirikan oleh mantan pimpinan dan investor MySQL AB yang sebelumnya.

Link Download : https://downloads.mariadb.org/mariadb/5.5.33a/

FEDERATE Storage Engine MySQL


FEDERATED storage engine sudah ada sejak MySQL 5.0.3. Merupakan storage engine yang bisa mengakses data pada remote database (kaya DB link kalo di Oracle), jadi tanpa harus melakukan replikasi maupun clustering. Ketika table menggunakan FEDERATED storage engine maka query pada table tersebut otomatis akan mengeksekusi pada remote table (federated).

Untuk menyertakan FEDERATED storage engine pada saat buid MySQL dari Source,
pastikan menyertakan opsi –with-federated-storage-engine

Contoh Penggunaan
Host MySQL Server A : 172.17.1.23 (tanpa harus support FEDERATED)
Db MySQL Server A : test
Table MySQL Server A : test (sebarang storage engine)

Host MySQL Server B : 172.17.1.61 (harus support FEDERATED)
Db MySQL Server B : test
Table MySQL Server B : test_federated (FEDERATE storage engine)


-- ON Db MySQL Server A
CREATE TABLE test (
id INT(20) NOT NULL AUTO_INCREMENT,
NAME VARCHAR(32) NOT NULL DEFAULT '',
other INT(20) NOT NULL DEFAULT '0',
PRIMARY KEY (id),
INDEX NAME (NAME),
INDEX other_key (other)
)
ENGINE=MYISAM
DEFAULT CHARSET=latin1;

insert into `test_table` (`id`, `name`, `other`) values('1','Sugeng','2');
insert into `test_table` (`id`, `name`, `other`) values('2','Sugeng lagi','4');
insert into `test_table` (`id`, `name`, `other`) values('3','Sugeng lagi lagi','5');
-- 3 record dientrikan
-- berikan hak akses user sugeng untuk select ke table tersebut dari Db MySQL Server B

Sekarang kita buat table test_federated pada server B

-- On Db MySQL Server B
CREATE TABLE federated_table (
id INT(20) NOT NULL AUTO_INCREMENT,
NAME VARCHAR(32) NOT NULL DEFAULT '',
other INT(20) NOT NULL DEFAULT '0',
PRIMARY KEY (id),
INDEX NAME (NAME),
INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://sugeng:sugeng@172.17.1.23:3306/test/test_table';

mysql> select * from federated_table;
+----+------------------+-------+
| id | name | other |
+----+------------------+-------+
| 1 | Sugeng | 2 |
| 2 | Sugeng lagi | 4 |
| 3 | Sugeng lagi lagi | 5 |
+----+------------------+-------+
3 rows in set (0.00 sec)

3 record tersebut sebenarnya data pada remote Server (DB MySQL Server B)

MySQL: Repair dan Optimize semua tabel pada semua Database


Tabel pada MySQL dapat crash dengan mudah, terutama ketika server anda tiba-tiba mati, atau ketika anda sedang memaksa untuk mencopy data ketika itu table masih sedang diakses.
Untungnya, ada perintah sederhana untuk secara otomatis memeriksa, memperbaiki dan mengoptimalkan semua tabel pada semua database ketika anda menjalankan server MySQL di Linux atau Unix atau BSD.

[database@db ~]$ mysqlcheck -u root -p --auto-repair --check --optimize --all-databases

mysqlcheck tersedia sejak MySQL 3.23.38. 

MySQL EVENT Scheduler


Kadang dalam sebuah aplikasi web membutuhkan sebuah query yang harus dijalankan secara periodic, misalkan setiap satu bulan sekali, Mungkin kalau pengguna LINUX bisa pake JOB CRON kalau di WINDOWS pake Schedule Task. Di MySQL versi 5.1 fitur tersebut telah ada, istilahnya adalah Event Scheduler.
Sebelum memulai membuat sebaik nya dilihat dulu apakah feature schedule nya hidup atau tidak, cara memeriksa nya

SHOW VARIABLES LIKE ‘event_scheduler’

+—————–+——-+
| Variable_name | Value |
+—————–+——-+
| event_scheduler | ON |
+—————–+——-+
1 row in set (0.02 sec)

Untuk menghidupkan MySQL Event Schedule ketikan perintah dibawah ini

SET GLOBAL event_scheduler = 1;

dan untuk mematikan nya

SET GLOBAL event_scheduler = 0;

MySQL Event Schedule terdiri dari beberapa macam, antara lain di bawah ini, sebelum mulai saya akan membuat sebuat tabel terlebih dahulu untuk keperluan demo Event Schedule ini

CREATE TABLE schedule_table (
no int(11) NOT NULL AUTO_INCREMENT,
des varchar(255) DEFAULT NULL,
time datetime NOT NULL,
PRIMARY KEY (no)
) 

1. EVENT SCHEDULER Berdasarkan tanggal dan waktu yg sudah di tentukan

CREATE EVENT event_name
ON SCHEDULE
AT {DATE AND TIME)
DO
{SQL COMMAND};

contoh di bawah ini membuat insert data ke schedule_table pada tgl 1 juni 2009 jam 18:06:49

CREATE EVENT event_name_1
ON SCHEDULE AT ‘2009-06-01 18:06:49’
DO insert into schedule_table values (null, ‘sch 1’, now());

hasilnya:

select * from schedule_table;
+—-+——-+———————+
| no | des | time |
+—-+——-+———————+
| 1 | sch 1 | 2009-06-01 18:06:49 |
+—-+——-+———————+

2. EVENT SCHEDULER berdasarkan pengulangan waktu

CREATE EVENT event_name
ON SCHEDULE
EVERY {x}
{SECOND | MINUTE | HOUR | DAY | MONTH | YEAR | WEEK}
DO
{SQL COMMAND};

contoh dibawah ini akan melakukan insert data ke tabel schedule_table setiap satu menit

CREATE EVENT event_name_2
ON SCHEDULE EVERY 1 MINUTE
DO insert into schedule_table values (null, ‘sch 2’, now());

Hasilnya
+—-+——-+———————+
| no | des | time |
+—-+——-+———————+
| 2 | sch 2 | 2009-06-01 18:16:27 |
| 3 | sch 2 | 2009-06-01 18:17:27 |
| 4 | sch 2 | 2009-06-01 18:18:27 |
| 5 | sch 2 | 2009-06-01 18:19:27 |
| 6 | sch 2 | 2009-06-01 18:20:27 |
| 7 | sch 2 | 2009-06-01 18:21:27 |
| 8 | sch 2 | 2009-06-01 18:22:27 |
| 9 | sch 2 | 2009-06-01 18:23:27 |
| 10 | sch 2 | 2009-06-01 18:24:27 |
| 11 | sch 2 | 2009-06-01 18:25:27 |
+—-+——-+———————+
10 rows in set (0.01 sec)

untuk EDIT event schedule, formatnya di bawah ini

ALTER EVENT event_name
[ ON SCHEDULE schedule ]
[ RENAME TO event_name2 ]
[ DO sql_statement ]

contoh dibawah ini akan mengubah nama schedule dari event_name_2 ke event_name_3

ALTER EVENT event_name_2
ON SCHEDULE EVERY 2 MINUTE
RENAME TO event_name_3
DO insert into schedule_table values (null, ‘sch 3’, now());

untuk HAPUS event schedule formatnya seperti dibawah ini

DROP EVENT event_name ;

contoh dibawah ini adalah menghapus schedule event_name_3

DROP EVENT event_name_3;

untuk melihat list event schedule yg ada pada database kita, cara dibawah ini

SELECT * FROM mysql.event\G
*************************** 1. row ***************************

db: test
name: event_name_1
body: insert into schedule_table values (null, ‘sch 1’, now())
definer: root@localhost
execute_at: 2009-07-01 11:06:49
interval_value: NULL
interval_field: NULL
created: 2009-06-04 18:03:54
modified: 2009-06-04 18:03:54
last_executed: NULL
starts: NULL
ends: NULL
status: ENABLED
on_completion: DROP
sql_mode:
comment:
originator: 1
time_zone: SYSTEM
character_set_client: latin1
collation_connection: latin1_swedish_ci
db_collation: latin1_swedish_ci
body_utf8: insert into schedule_table values (null, ‘sch 1’, now())
1 row in set (0.00 sec)


ORA-01720: grant option does not exist for…


Hi,

Mungkin anda mendapatkan error ini karena grant yang hilang.

Nah, jika anda ingin untuk memberikan grant pada view,  dan view ini mengacu pada Table1 dan Tabel2

User skema (owner of view) telah melakukan grant untuk table1 tetapi tidak untuk table2.

Jadi, Anda harus memberikan grant kepada user skema di table2 dengan grant option:

grant _PRIVILEGE_ on _TABLE_ to _SCHEMA_USER_ with grant option;

atau

Anda memiliki role melakukan grant untuk sebuah objek, tetapi prosedur yang anda miliki menimbulkan kesalahan ketika dijalankan.
Itu karena anda harus memiliki hak istimewa itu sendiri (schema_user: pemilik objek), tidak inherited oleh role:

grant _PRIVILEGE_ on _TABLE_ to _SCHEMA_USER_;

Session Cursor Cache hit vs. Soft Parses vs. Hard Parses


Jika Anda menjalankan query ini ke DataBase Oracle, Anda akan melihat perilaku sistem caching kursor yang oracle lakukan.

Jumlah dari ketiga nilai pada kolom harus 100%


select
to_char(100 * sess / calls, '999999999990.00') || '%' cursor_cache_hits,
to_char(100 * (calls - sess - hard) / calls, '999990.00') || '%' soft_parses,
to_char(100 * hard / calls, '999990.00') || '%' hard_parses
from
( select value calls from v$sysstat where name = 'parse count (total)' ),
( select value hard from v$sysstat where name = 'parse count (hard)' ),
( select value sess from v$sysstat where name = 'session cursor cache hits' )
/

Jika nilai dari kolom pertama adalah di bawah 80% maka Anda harus meningkatkan nilai parameter session_cached_cursors.