Assalamualaikum Wr.Wb
Salam Sejahtera Bagi Kita Semua
Kali ini saya akan berbagi ilmu tentang:
Salam Sejahtera Bagi Kita Semua
Kali ini saya akan berbagi ilmu tentang:
Replikasi Database pada MariaDB
A.Pengertian
Satu hal yang menjadi sangat krusial dalam Pemulihan Bencana adalah data dan informasi, sebagaimana telah disebutkan sebelumnya sangat penting untuk menjaga kekonsistenan dari data dan informasi bagi perusahaan. Kebutuhan ini dapat diakodomasi dengan menggunakan teknologi replikasi data. Replikasi data adalah sebuah proses yang mengkopi isi data ke suatu lokasi remote baik yang berlangsung secara kontinu ataupun pada interval tertentu. Replikasi data akan menyediakan hasil kopi data yang lengkap untuk tujuan Pemulihan Bencana. Lokasi remote biasanya merupakan secondary data center.
Teknologi replikasi data memiliki fungsi yang rumit karena secara cerdas mengkopi data ke lokasi yang remote, setelah data yang lengkap sudah direplikasi ke target yang dimaksud maka hanya data yang berubah yang akan direplikasi selanjutnya, sehingga akan menghemat kebutuhan bandwith. Data kopian inisial yang ada di penyimpanan remote biasa disebut sebagai seeding (penanaman benih). Setelah data di-"seeding", fungsi replikasi berikutnya dapat berjalan pada dua mode yaitu:
1.Mode Replikasi Synchronous
Mode replikasi sinkron memungkinkan pertukaran data secara real-time sehingga kesinkronan suatu data akan terjaga, dimana saat ada transaksi operasional yang sedang menulis sesuatu ke disk sumber, maka saat yang bersamaan penulisan juga dilakukan terhadap disk target yang ada di lokasi remote. Keseluruhan proses penulisan pada disk sumber dan disk target harus selesai terlebih dahulu sebelum beranjak ke transaksi operasional selanjutnya dan diberi acknowledge untuk keduanya jika telah selesai. Pada mode replikasi ini, kebutuhan akan performansi sistem yang tinggi harus dipertimbangkan. Selain itu jarak antara disk sumber dan disk target juga menjadi prasyarat utama, bahwa pihak yang terlibat dalam mode replikasi ini harus berjarak < 100km antara keduanya. Keuntungan dari mode replikasi ini adalah menyediakan recovery yang konsisten dan lengkap untuk semua jangka waktu.
Satu hal yang menjadi sangat krusial dalam Pemulihan Bencana adalah data dan informasi, sebagaimana telah disebutkan sebelumnya sangat penting untuk menjaga kekonsistenan dari data dan informasi bagi perusahaan. Kebutuhan ini dapat diakodomasi dengan menggunakan teknologi replikasi data. Replikasi data adalah sebuah proses yang mengkopi isi data ke suatu lokasi remote baik yang berlangsung secara kontinu ataupun pada interval tertentu. Replikasi data akan menyediakan hasil kopi data yang lengkap untuk tujuan Pemulihan Bencana. Lokasi remote biasanya merupakan secondary data center.
Teknologi replikasi data memiliki fungsi yang rumit karena secara cerdas mengkopi data ke lokasi yang remote, setelah data yang lengkap sudah direplikasi ke target yang dimaksud maka hanya data yang berubah yang akan direplikasi selanjutnya, sehingga akan menghemat kebutuhan bandwith. Data kopian inisial yang ada di penyimpanan remote biasa disebut sebagai seeding (penanaman benih). Setelah data di-"seeding", fungsi replikasi berikutnya dapat berjalan pada dua mode yaitu:
1.Mode Replikasi Synchronous
Mode replikasi sinkron memungkinkan pertukaran data secara real-time sehingga kesinkronan suatu data akan terjaga, dimana saat ada transaksi operasional yang sedang menulis sesuatu ke disk sumber, maka saat yang bersamaan penulisan juga dilakukan terhadap disk target yang ada di lokasi remote. Keseluruhan proses penulisan pada disk sumber dan disk target harus selesai terlebih dahulu sebelum beranjak ke transaksi operasional selanjutnya dan diberi acknowledge untuk keduanya jika telah selesai. Pada mode replikasi ini, kebutuhan akan performansi sistem yang tinggi harus dipertimbangkan. Selain itu jarak antara disk sumber dan disk target juga menjadi prasyarat utama, bahwa pihak yang terlibat dalam mode replikasi ini harus berjarak < 100km antara keduanya. Keuntungan dari mode replikasi ini adalah menyediakan recovery yang konsisten dan lengkap untuk semua jangka waktu.
2.Mode Replikasi Asynchronous
Mode replikasi asinkron memungkinkan pertukaran data secara buffering dalam artian bahwa data akan diletakkan dalam sebuah 'penampung sementara terlebih dahulu, kemudian pada jangka waktu tertentu akan direplikasi ke disk target. Data yang direplikasi ke disk target tidak membutuhkan acknowledgement agar penulisan transaksi operasional pada disk sumber dapat berlangsung kembali. Sehingga mode replikasi ini tidak menjamin kesinkronan suatu data pada dua pihak yang terlibat karena jika suatu saat terjadi crash pada salah satu pihak dan data belum sempat direplikasi maka data yang terdapat pada kedua pihak tidak bisa dikatakan sebagai sebuah data yang sinkron. Walaupun hal ini dapat meningkatkan performansi sistem, namun lebih memiliki banyak risiko. Jika hal ini terjadi maka recovery yang cukup rumit dilakukan (namun tidak menjamin data hasil recovery adalah data yang benar dan konsisten karena ada kemungkinan hilangnya beberapa data). Keuntungan dari mode replikasi ini adalah efektivitas biaya.
Selain itu, berdasarkan tempat dimana proses replikasi berjalan, dapat ditentukan tipe replikasi yang cocok untuk kebutuhan bisnis perusahaan, yaitu:
Database to Database
Proses replikasi berlangsung pada server basis data. Satu server basis data akan bertindak sebagai master dan kemudian ada beberapa server basis data sebagai slave yang menyimpan kopi dari basis data tersebut. Ketika terjadi proses penulisan pada basis data maka akan terjadi penulisan tersebut akan segera dikirim ke basis data master yang kemudian akan direplikasi oleh server basis data yang bersifat slave. Ketika dilakukan proses pembacaan pada basis data, maka dapat dilakukan terhadap semua server basis data yang tersedia, hal ini tentu saja akan meningkatkan performansi sistem basis data terkait dengan load sharing. Keunggulan lain dari replikasi basis data adalah tingkat availabilitas yang tinggi, karena ketika terjadi crash terhadap server master basis data, server slave basis data dapat mengambil alih pekerjaan server master.
Host to Host
Disebut juga sebagai replikasi yang processor-based. Proses replikasi berjalan pada sistem sumber dan target. Oleh karenanya, sangat mungkin terjadi perselisihan antara sistem sumber dan target saat berlangsung proses replikasi. Hal ini terjadi karena agen yang berjalan pada masing-masing sistem dalam menjalankan proses tracking perubahan data dan replikasi data, jalur yang dilakukan adalah melalui koneksi IP. Replikasi data mode ini berjalan pada level aplikasi atau level OS. Host-to-host merupakan mode replikasi yang paling umum diimplementasikan karena merupakan solusi software. Replikasi host-to-host memanfaatkan sumber daya pada server sumber dan target yang akan berdampak pada performansi, kemudian mensyaratkan bahwa sistem yang berada di lokasi remote harus selalu dalam keadaan up sepanjang waktu. Keuntungan yang signifikan dari mode replikasi ini adalah storage agnostic, yang berarti bahwa dapat dilakukan pen-deployan tanpa memperhatikan tipe storage yang digunakan (internal, eksternal, SAN atau NAS).
Mode replikasi asinkron memungkinkan pertukaran data secara buffering dalam artian bahwa data akan diletakkan dalam sebuah 'penampung sementara terlebih dahulu, kemudian pada jangka waktu tertentu akan direplikasi ke disk target. Data yang direplikasi ke disk target tidak membutuhkan acknowledgement agar penulisan transaksi operasional pada disk sumber dapat berlangsung kembali. Sehingga mode replikasi ini tidak menjamin kesinkronan suatu data pada dua pihak yang terlibat karena jika suatu saat terjadi crash pada salah satu pihak dan data belum sempat direplikasi maka data yang terdapat pada kedua pihak tidak bisa dikatakan sebagai sebuah data yang sinkron. Walaupun hal ini dapat meningkatkan performansi sistem, namun lebih memiliki banyak risiko. Jika hal ini terjadi maka recovery yang cukup rumit dilakukan (namun tidak menjamin data hasil recovery adalah data yang benar dan konsisten karena ada kemungkinan hilangnya beberapa data). Keuntungan dari mode replikasi ini adalah efektivitas biaya.
Selain itu, berdasarkan tempat dimana proses replikasi berjalan, dapat ditentukan tipe replikasi yang cocok untuk kebutuhan bisnis perusahaan, yaitu:
Database to Database
Proses replikasi berlangsung pada server basis data. Satu server basis data akan bertindak sebagai master dan kemudian ada beberapa server basis data sebagai slave yang menyimpan kopi dari basis data tersebut. Ketika terjadi proses penulisan pada basis data maka akan terjadi penulisan tersebut akan segera dikirim ke basis data master yang kemudian akan direplikasi oleh server basis data yang bersifat slave. Ketika dilakukan proses pembacaan pada basis data, maka dapat dilakukan terhadap semua server basis data yang tersedia, hal ini tentu saja akan meningkatkan performansi sistem basis data terkait dengan load sharing. Keunggulan lain dari replikasi basis data adalah tingkat availabilitas yang tinggi, karena ketika terjadi crash terhadap server master basis data, server slave basis data dapat mengambil alih pekerjaan server master.
Host to Host
Disebut juga sebagai replikasi yang processor-based. Proses replikasi berjalan pada sistem sumber dan target. Oleh karenanya, sangat mungkin terjadi perselisihan antara sistem sumber dan target saat berlangsung proses replikasi. Hal ini terjadi karena agen yang berjalan pada masing-masing sistem dalam menjalankan proses tracking perubahan data dan replikasi data, jalur yang dilakukan adalah melalui koneksi IP. Replikasi data mode ini berjalan pada level aplikasi atau level OS. Host-to-host merupakan mode replikasi yang paling umum diimplementasikan karena merupakan solusi software. Replikasi host-to-host memanfaatkan sumber daya pada server sumber dan target yang akan berdampak pada performansi, kemudian mensyaratkan bahwa sistem yang berada di lokasi remote harus selalu dalam keadaan up sepanjang waktu. Keuntungan yang signifikan dari mode replikasi ini adalah storage agnostic, yang berarti bahwa dapat dilakukan pen-deployan tanpa memperhatikan tipe storage yang digunakan (internal, eksternal, SAN atau NAS).
Disk to Disk
Replikasi mode disk-to-disk berjalan pada perangkat eksternal storage seperti SAN atau NAS. Mode replikasi ini secara normal diimplementasikan pada vendor-vendor disk array seperti EMC, Hitachi, IBM, HP dan lainnya. Setiap vendor akan menyediakan aplikasi software yang cocok dengan array storage masing-masing vendor.Kebanyakan disk array menggunakan koneksi fibre channel, sehingga router storage diperlukan untuk meningkatkan kemampuan koneksi melalui link WAN. Replikasi disk-to-disk memanfaatkan sumber daya dari perangkat eksternal storage dan bersifat transparan ke host. Karena proses replikasi berjalan pada perangkat storage, maka host yang menjadi target tujuan tidak diperlukan lagi.
B.Latar Belakang
Latar belakang saya karena saya ingin membuat replikasi dari master ke slave untuk suatu saat jika database master rusak atau hilang dll
C.Maksud dan Tujuan
Maksud dan Tujuan saya agar jika suatu saat Database pada master mati atau rusak maupun hilang maka pada Server Slave telah tereplikasi Database pada Master jadi Database pada master sudah teramankan pada slave
D.Jangka Waktu
Jangka waktu saya dalam Replikasi Database ini sekitar 45 Menit tergantung pemahaman masing-masing
E.Alat dan Bahan
1.Server PROXMOX (2 VM)[Master-Slave]
2.PC atau Laptop
3.MikroTik
F.Langkah Kerja
1.Sebelum konfigurasi pastikkan master dengan slave telah terhubung satu sama lain
2.Menghidupkan mysqld binary log pada Master
Replikasi mode disk-to-disk berjalan pada perangkat eksternal storage seperti SAN atau NAS. Mode replikasi ini secara normal diimplementasikan pada vendor-vendor disk array seperti EMC, Hitachi, IBM, HP dan lainnya. Setiap vendor akan menyediakan aplikasi software yang cocok dengan array storage masing-masing vendor.Kebanyakan disk array menggunakan koneksi fibre channel, sehingga router storage diperlukan untuk meningkatkan kemampuan koneksi melalui link WAN. Replikasi disk-to-disk memanfaatkan sumber daya dari perangkat eksternal storage dan bersifat transparan ke host. Karena proses replikasi berjalan pada perangkat storage, maka host yang menjadi target tujuan tidak diperlukan lagi.
B.Latar Belakang
Latar belakang saya karena saya ingin membuat replikasi dari master ke slave untuk suatu saat jika database master rusak atau hilang dll
C.Maksud dan Tujuan
Maksud dan Tujuan saya agar jika suatu saat Database pada master mati atau rusak maupun hilang maka pada Server Slave telah tereplikasi Database pada Master jadi Database pada master sudah teramankan pada slave
D.Jangka Waktu
Jangka waktu saya dalam Replikasi Database ini sekitar 45 Menit tergantung pemahaman masing-masing
E.Alat dan Bahan
1.Server PROXMOX (2 VM)[Master-Slave]
2.PC atau Laptop
3.MikroTik
F.Langkah Kerja
1.Sebelum konfigurasi pastikkan master dengan slave telah terhubung satu sama lain
2.Menghidupkan mysqld binary log pada Master
Pertama kita cek apakah log-bin sudah aktif atau belum dengan mengetikkan perintah
#mysqld --verbose --help | grep log-bin
Kemudian buka /etc/mysql/my.cnf pada text editor atau melalui nano kemudian kita masukkan log-bin pada group [mysqld]
[mysqld]
log-bin
Kemudian kita restart mysqld
#service mysql restart
Kemudian kita cek apakah log-bin sudah aktif atau belum dengan mengetikkan perintah
#mysqld --verbose --help | grep log-bin
3.Grant Replication User
Ini adalah praktek terbaik untuk memiliki semua tugas replikasi dilakukan oleh pengguna replikasi berdedikasi. Dalam contoh ini, kita akan nama repluser pengguna dan password pengguna ini ke replpass tali.
Memberikan pengguna ini hak-hak istimewa global yang SUPER, RELOAD, dan REPLIKASI SLAVE. Ini akan memungkinkan pengguna replikasi untuk menjalankan perintah superuser, persediaan basis data flush, dan mengambil update dari server master.
Masuk ke database menggunakkan root
Memberikan pengguna ini hak-hak istimewa global yang SUPER, RELOAD, dan REPLIKASI SLAVE. Ini akan memungkinkan pengguna replikasi untuk menjalankan perintah superuser, persediaan basis data flush, dan mengambil update dari server master.
Masuk ke database menggunakkan root
#mysql -u root -p
Pada perintah mariadb,masukkan perintah
GRANT SUPER, RELOAD, REPLICATION SLAVE ON *.* TO 'repluser'@'%' IDENTIFIED BY 'replpass';
Pastikkan grant telah aktif
SHOW GRANTS FOR 'repluser'\G;
4.Flush database caches dan set tables to read-only
Dalam persiapan untuk membuat snapshot dari database, flush semua tabel dan mengatur untuk READ LOCK. Hal ini harus dilakukan dengan cepat, selama jam off-peak atau masa pemeliharaan sistem.
Pada Master
Pada Master
FLUSH TABLES WITH READ LOCK;
Sekarang tables telah terkunci,Check status Master
SHOW MASTER STATUS;
Exit Mariadb
\q
5.Database snapshot untuk Slave host
Buat arsip dari database atau database yang ada pada master yang Anda replika. Setiap database ini memiliki direktori sendiri dalam /var/lib/mysql. Dalam contoh ini, kita akan tar sebuah database tunggal, yang berada di jalan / var / lib / mysql / dbname.
Perintah ini arsip database tunggal. Jika Anda pengarsipan database tambahan, tambahkan nama path penuh mereka untuk perintah, misalnya /var/lib/mysql/dbname1 /var/lib/mysl/dbname2 ...
Perintah ini arsip database tunggal. Jika Anda pengarsipan database tambahan, tambahkan nama path penuh mereka untuk perintah, misalnya /var/lib/mysql/dbname1 /var/lib/mysl/dbname2 ...
tar cjvf /home/[username]/mysql-master.tar.bz2 /var/lib/mysql/dbname
Sekarang,sebagai pengguna nama pengguna biasa,mentransfer file ini ke account user biasa pada host slave
rsync -avP mysql-master.tar.bz2 [username]@slavehost:~/.
atau menggunakan scp
scp mysql-master.tar.bz2 [username]@slavehost:~/.
Kemudian,Remote SSH slave host
ssh [username]@slavehost
Setelah masuk user root,stop mysql pada slave
service mysql stop
...Dan estrack arsip tadi
tar xjvf /home/[username]/mysql-master.tar.bz2 -C /.
6.Konfigurasi IDs pada Master dan Slave
Memodifikasi /etc/mysql/my.cnf pada master, menambahkan entri server-id = n dalam group [mysqld], di mana n adalah bilangan bulat unik mengidentifikasi server. Umumnya, n = 1 untuk server master, tapi n mungkin setiap bilangan bulat unik dalam rentang [1, 2 ^ 32-1]. Kami akan mengatur Master kita ke server-id = 1, dan Slave kami ke server-id = 100.
Dalam /etc/mysql/my.cnf pada Master Host
Dalam /etc/mysql/my.cnf pada Master Host
[mysqld]
server-id=1
Dalam /etc/mysql/my.cnf pada Slave Host
[mysqld]
server-id=100
7.Unlock Tables dan Start/Restart mysqld pada Master dan Slave
Pada Master Server ,dalam konfigurasi mariadb dengan user root unlock tables
#mysql -u root -p
UNLOCK TABLES;
\q
Restart mysqld pada Master
#service mysql restart
Dan start pada Slave
#service mysql start
Anda dapat mengecek Server-ID yang telah terpasang dan aktif pada setiap server
#mysqld --verbose --help | grep server-id
8.Konfigurasi Identity pada Master dan Slave
Pada Slave kita konfigurasi identity Master Server,masuk pada konfigurasi mariadb
mysql -u root -p
Jalankan perintah berikut, menggantikan value MASTER_LOG_FILE dan MASTER_LOG_POS dengan log file biner dan Posisi yang Anda simpan di langkah 4, dan value MASTER_HOST, MASTER_USER, dan MASTER_PASSWORD dengan value Anda sendiri.
CHANGE MASTER TO MASTER_HOST='masterhost', MASTER_USER='repluser', MASTER_PASSWORD='replpass', MASTER_LOG_FILE='mysqld-bin.000009', MASTER_LOG_POS=327;
9.Activate Slave
Pada Slave masuk ke konfigurasi mariadb dengan user root
mysql -u root -p
START SLAVE;
Sekarang kamu dapat cek status pada slave
SHOW SLAVE STATUS \G;
10.Membuat perubahan pada Master dan Cek Replication ke Slave
Anda dapat memverifikasi replikasi yang terjadi dengan membuat database baru pada master, dan melihat perubahan pada slave.
#mysql -u root -p
Membuat Database baru
CREATE DATABASE repltest;
USE repltest
Membuat table dan memasukkan value
CREATE TABLE test (hello VARCHAR(10));
INSERT INTO test VALUES ('world');
\q
Sekarang masuk konfigurasi mariadb pada Slave
#mysql -u root -p
USE repltest
SELECT * FROM test;
+-------+
| hello |
+-------+
| world |
+-------+
1 row in set (0.00 sec)
G.Referensi
https://id.wikipedia.org/wiki/Pemulihan_bencana
H.Kesimpulan
Kesimpulan saya kali ini kita bisa menerapkan replikasi database ini pada perusahaan atau pemerintahan agar sewaktu-waktu jika terjadi masalah terkait database maka pada server slave sudah tereplika dari master
Sekian dari saya,jika ada salah ketik maupun hal lain yang tidak berkenan mohon maaf sebesar-besarnya
Terima Kasih
Wassalamualikum Wr.Wb
Terima Kasih
Wassalamualikum Wr.Wb







No comments:
Post a Comment