Sistem Replikasi Basis Data berdasarkan MySQL menggunakan Container Docker
on
Majalah Ilmiah Teknologi Elektro, Vol. 21, No.2, Juli - Desember 2022
DOI: https://doi.org/10.24843/MITE.2022.v21i02.P08 209
Sistem Replikasi Basis Data berdasarkan MySQL menggunakan Container Docker
Ilmiyatus Sholihah1, Cahyo Darujati2
[Submission: 18-06-2022, Accepted: 28-08-2022]
Abstract—This study aims to implement database replication using the master-slave technique. The main focus of this research is to run data replication on the master server so that it can be copied automatically on the slave server. Master-slave replication techniques aim to prevent data loss from system failure events or device damage on the main server. The concept of master-slave replication is to copy data from the master server database to the slave server so that users do not need to manually backup data from the database. Master-slave database replication is one of the features provided by the MySQL database application in the Docker container. Still, to run the replication system, some adjustments and configurations are required for the database application to establish a replication infrastructure automatically. In this study, the replication was run on a MySQL database application with 20 multimedia data files capacity of 100MB. Testing is done by entering data into the database on the master server. The test scenario in this study was to upload data and delete data. The test results show that the data changes automatically: the data on the slave server is the same as on the master server, even though the data on the master server has gone through data uploads and deletions. And vice versa, data changes made on the master server are also directly replicated on the slave server.
Intisari—Penelitian ini bertujuan untuk melakukan implementasi replikasi database menggunakan teknik masterslave. Fokus utama dari penelitian ini adalah menjalankan replikasi data yang terdapat pada server master sehingga dapat tersalin secara otomatis pada server slave. Penerapan teknik replikasi master-slave bertujuan untuk mencegah kehilangan data dari kejadian sistem gagal atau kerusakan perangkat pada server utama. Konsep replikasi master-slave adalah menyalin data dari database server master ke server slave sehingga pengguna tidak perlu melakukan backup data dari database secara manual. Replikasi database master-slave merupakan salah satu fitur yang disediakan oleh aplikasi database MySQL dalam container Docker, namun untuk dapat menjalankan sistem replikasi, beberapa penyesuaian dan konfigurasi diperlukan pada aplikasi database, sehingga mampu membentuk sebuah infrastruktur replikasi secara otomatis. Dalam penelitian ini, replikasi dijalankan pada aplikasi database MySQL dengan data uji sebanyak 20 file data multimedia dengan kapasitas 100MB. Pengujian dilakukan dengan memasukkan data ke dalam database pada server master. Skenario pengujian pada penelitian ini dilakukan unggah data dan hapus data. Dari hasil pengujian
menunjukkan perubahan data secara otomatis: data yang ada pada server slave sama seperti pada server master, walaupun data pada server master telah melalui unggahan dan penghapusan data. Begitu pula sebaliknya, perubahan data yang dilakukan pada server master juga langsung terreplikasi pada server slave.
Kata Kunci—Replikasi Basis Data, MySQL, Docker, Container, Database.
Era digital Industri 4.0 saat ini mendorong setiap perusahaan untuk menyimpan data secara strategis. Data dan informasi, terlebih milik perusahaan, merupakan suatu hal penting yang menjadi roda penggerak ekonomi suatu perusahaan [1]. Untuk itu, aplikasi penyimpanan data pada komputer dirancang sedemikian rupa untuk dapat menyajikan data yang cepat dan efisien [2]. Kegiatan rutin yang melibatkan data menyebabkan pihak pengelola basis data atau database harus melakukan backup data secara rutin sehingga perubahan yang terjadi dalam database terbarui setiap saat [3]. Backup dilakukan untuk mengantisipasi terjadinya perubahan dan kehilangan data.
Semakin pendek rentang waktu terjadinya antara proses dengan backup data maka peluang untuk memperoleh data yang akurat akibat terjadinya perubahan ataupun kehilangan data akan semakin besar [4]. Replikasi adalah suatu teknik untuk melakukan penyalinan dan pendistribusian data dan objek-objek database dari satu database ke database lain dan melaksanakan sinkronisasi antara database sehingga konsistensi data dapat terjamin [5]. Dengan menggunakan teknik replikasi ini, data dapat didistribusikan ke lokasi yang berbeda melalui koneksi jaringan lokal maupun internet.
Pada penelitian ini, dilakukan simulai backup database MySQL menggunakan replikasi master-slave pada dua komputer server, dan kontainer Docker. Target dari penelitian ini adalah melakukan backup secara otomatis dari server master ke server slave satu arah, data pada database yang diisi dari server master akan ada secara otomatis berada pada database server slave.
Adapun penelitian ini dilakukan karena belum adanya system yang menggunakan Replikasi Berbasis Data untuk digunakan dalam suatu perusahaan. Terlebih, penggunaannya masih terlalu rumit, sehingga membutuhkan keahlian khusus dalm bidang IT. Oleh sebab itu, penelitian ini membahas mengenai sistem replikasi data berdasarkan MySQL menggunakan Container Deck. Selain itu, bias memberikan rekomendasi kepada pembaca mengenai keefektivan penggunaan system ini di perusahaan.
-
II. Penelitian Terdahulu
Ilmiyatus Sholihah: Sistem Replikasi Basis Data…
p
-ISSN:1693 – 2951; e-ISSN: 2503-2372
Replikasi adalah suatu teknik untuk melakukan penyalinan dan pendistribusian data dan objek-objek database dari satu database ke database lain dan melaksanakan sinkronisasi antara database sehingga konsistensi data dapat terjamin. Dengan menggunakan teknik replikasi ini, data dapat didistribusikan ke lokasi yang berbeda melalui koneksi jaringan lokal maupun internet. Replikasi dengan teknik master-slave digunakan untuk memecahkan masalah seperti performa, mendukung cadangan database yang berbeda dan solusi untuk mengurangi kegagalan dari sebuah sistem. Hal ini memungkinkan data dari satu database server (master) untuk direplikasi ke satu atau lebih database server lain (slave) [6]. Replikasi master-slave mewujudkan peralihan otomatis secara efektif memastikan ketersediaan database yang tinggi ketika database utama gagal [7].
Arni pada penelitiannya merancang sistem replikasi database yang berjalan diatas virtual machine. Penelitian ini mendapatkan kesimpulan bahwa replikasi database dapat berjalan dengan baik pada VMware Workstation dengan system operasi Ubuntu Server 14.0. Menurut Arni, sistem replikasi database dapat mempermudah, mempercepat dan menghemat baik dari segi proses maupun waktu dalam suatu proyek [6].
Shrestha dkk selanjutnya juga melakukan replikasi database pada cloud dengan menggunakan Galera Cluster. Pada penelitian Shrestha dkk, dihasilkan kesimpulan mengenai hasil dari pengujian high availability. Menurutnya, Galera Cluster mampu bekerja dengan baik pada saat database bekerja dengan beban tinggi yang dijalankan secara cluster [8].
Penelitian milik Subekti dkk. membahas tentang perancangan replikasi database yang berjalan pada failover clustering. Penelitian ini menghasilkan simpulan bahwa replication mirror dan dengan bantuan failover clustering yang telah dirancang, dapat menjadi pilihan solusi yang terbaik, karena dapat menggantikan server yang mati ke server yang lain dan client tetap bisa mengakses web server [9].
-
A. Database MySQL
MySQL adalah sistem manajemen database relasional (RDBMS) berbasis SQL (Structured Query Language) yang bersifat open-source dengan model client-server [10]. Secara umum, MySQL adalah perangkat lunak yang berfungsi untuk membuat dan mengelola berbagai informasi yang ada pada database di dalam sebuah server dengan bahasa pemrograman SQL [11], [12].
Kelebihan MySQL dibandingkan dengan RDBMS lain adalah mudah, gratis, stabil, dan dapat diterapkan pada beberapa sistem operasi yang berbeda [13]. MySQL saat ini penggunaannya sangat popular di dunia IT, sehingga tidak diragukan lagi tentang performa serta kinerja dalam menjalankan transaksi data.
-
B. Virtual Machine
Secara singkat, Virtual Machine (VM) merupakan sistem operasi tambahan yang bekerja pada lingkungan server virtual layaknya sistem operasi bawaan pada komputer. Dengan kata lain, mesin virtual ini adalah perangkat yang membuat komputer di dalam komputer, berjalan sebagaimana seperti
program lainnya [14]. Ada beberapa jenis arsitektur pada virtual machine, diantaranaya ada adalah arsitektur model hypervisor seperti pada Gambar 1. Arsitektur virtual machine hypervisor memiliki sistem operasi kedua yang berjalan diatas sistem operasi utama [15]. Aplikasi yang umum untuk virtual machine adalah VMware dan VirtualBox. Penggunaan virtual machine dapat menghemat biaya riset pada pengembangan perangkat lunak, termasuk uji coba terhadap perangkat lunak database.
Gambar 1: Arsitektur Virtual Machine
-
C. Sistem Operasi Server
Sistem operasi adalah bagian pertama yang ditempatkan pada memori komputer pada saat komputer dinyalakan (booting). Sistem operasi juga memiliki banyak jenis, diantaranya sistem operasi server. Saat ini, sistem operasi server yang umum digunakan adalah dari sistem operasi Linux. Terdapat dua jenis sistem operasi server pada Linux, yaitu Debian Server dan RedHat. Perbedaan pada kedua sistem operasi ini adalah RedHat berbayar untuk mendapatkan support dari pengembang, sedangkan Ubuntu Server bersifat gratis dan mendapat dukungan penuh dari komunitas.
Linux Ubuntu Server mempunyai lisensi open source serta merupakan turunan dari distro Linux Debian, sehingga mempunyai keamanan yang cukup tinggi. Seperti pada kegunaan utamanya, Ubuntu Server tidak disediakan Graphical User Interface (GUI). Hal itu berarti semua bentuk eksekusi program dijalankan melalui baris perintah yang disebut dengan Command Line Interface (CLI). Saat ini Ubuntu sudah banyak digunakan di berbagai perusahaan besar di seluruh dunia, baik versi desktop maupun yang server [16].
-
D. Docker sebagai Container
Container pada aplikasi saat ini sedang populer digunakan oleh para developer. Salah satu container bernama Docker menawarkan teknologi container pada aplikasi, yang sebelumnya biasa digunakan pada sistem operasi [17].
Majalah Ilmiah Teknologi Elektro, Vol. 21, No.2, Juli - Desember 2022 DOI: https://doi.org/10.24843/MITE.2022.v21i02.P08
Gambar 2: Ilustrasi Container dalam Docker
Container pada aplikasi ini sangat cocok digunakan untuk desain arsitektur seperti microservice, karena masing-masing service memiliki lingkungan yang terisolasi dan tetap bisa berkomunikasi satu sama lain. Selain daripada itu, container menawarkan kemudahan dalam melakukan migrasi [18], yang mana memiliki konsep mirip seperti replikasi database.
-
E. Persiapan Eksperimen
Penelitian ini memfokuskan replikasi database MySQL dengan teknik replikasi master to slave pada VirtualBox. Penelitian ini menggunakan script untuk mengetahui data pada aplikasi database sudah benar terduplikasi dengan baik atau tidak. Data yang digunakan pada penelitian ini berupa data file multimedia video dengan kapasitas 100MB yang akan dikirim ke dalam database MySQL dengan menggunakan aplikasi sederhana untuk query insert kedalam database.
Analisa terhadap duplikasi data sangat penting dalam penelitian ini, dikarenakan fokus utama pada penelitan ini melakukan replikasi dan keberhasilan database terduplikasi pada server slave menjadi parameter utama. Hasil analisa akan dikaji untuk mengetahui seberapa optimal duplikasi database dengan metode master to slave. Gambar 3 menunjukkan ilustrasi dari alur persiapan eksperimen dalam bentuk blok diagram.
Gambar 3: Blok Diagram Alur Persiapan Eksperimen
Untuk memulai penelitian, dilakukan konfigurasi pada server dengan melakukan instalasi sistem operasi utama pada server VM yang akan digunakan. Setelah dilakukan instalasi sistem operasi utama dilanjutkan dengan melakukan instalasi library tambahan standar server dan tools monitoring yang digunakan pada penelitian ini. Fungsi dari instalasi library pendukung adalah untuk membantu agar sistem operasi tidak kehilangan library yang dibutuhkan yang berakibat terhambatnya penelitian.
Ilmiyatus Sholihah: Sistem Replikasi Basis Data…
Setelah dilakukan instalasi library pada sistem operasi server, dilanjutkan dengan melakukan instalasi Docker. Setelah melakukan instalasi Docker, dilanjutkan dengan instalasi aplikasi database MySQL dengan Docker. Setelah melakukan instalasi MySQL dengan Docker, dilakukan konfigurasi melalui perintah script pada setingan database MySQL. Jika tidak ada error, maka proses setup environtment telah selesai.
-
F. Setup Pengujian Eksperimen
Penelitian ini menggunakan spesifikasi perangkat keras CPU Core i3 berkecepatan 2Ghz dengan arsitektur 64bit. Untuk memori RAM menggunakan kapasitas 4Gb dan media penyimpanan sebesar 20GB. Pada setiap VM, digunakan kapasitas masing-masing 10GB pada VM master dan VM slave, dengan kapasitas masing-masing 1GB. Juga ditambahkan beberapa tools untuk melakukan konfigurasi pada server yang akan berfungsi sebagai alat bantu untuk mengetahui fungsi dari replikasi database.
Gambar 4: Blok Diagram Alur Pengujian Eksperimen
Pada Gambar 4, database master dan database slave saling terhubung. Pada pengujian penelitian ini, data akan diunggah ke dalam database master dengan konfigurasi yang telah ditentukan untuk dapat menjalankan proses replikasi masterslave. Setelah melakukan pengisian data pada tabel pada database master, dilakukan pengecekan pada database server slave dengan melakukan query. Jika data yang telah diisi pada server database master ada pada server database slave, maka proses replikasi telah selesai dan berhasil.
-
IV. HASIL DAN PEMBAHASAN
-
A. Setup Pengujian pada Docker
Sebelum melakukan ekperimen, diperlukan konfigurasi pada infrastruktur yang akan digunakan pada penelitian. Pada pengaturan Docker MySQL, dituliskan alamat directory “datadir” yang berfungsi sebagai tempat untuk data tersimpan. Dalam directory tersebut, tersimpan log dari database dan besar kapasitas dari data yang ada pada database.
p-ISSN:1693 – 2951; e-ISSN: 2503-2372
.
#!/bin/bash docker run ∖
-v 'pwd'/conf.d:/etc/mysql/conf.d ∖
-v 'pwd'∕datadirι∕var∕lib∕mysql ∖
-v 'pwd'/backup:/backup ∖
-e MYSQL_ROOT_PASSWORD=‘Admin1234$ ∖
-e =AsiaZJakarta ∖
-p 3306:3306 ∖
--restart always ∖
--name mysql-master ∖
-d mysql:5.7.22
Gambar 5: Alamat “datadir” dan metadata lainnya dalam Docker
Pada Gambar 5, ditunjukkan alamat dari “datadir” database replikasi. Pada “datadir”, akan ditampung data dari database, semakin banyak dan besar data yang dimasukkan, maka semakin besar juga kapasitas directory database. Setelah melakukan konfigurasi pada “datadir”, dilakukan instalasi MySQL dengan menjalankan script Docker.
Gambar 6 menunjukkan proses instalasi MySQL yang berjalan diatas Docker. Proses instalasi dilakukan secara bersamaan pada server master dan server slave guna menyingkat waktu penyiapan media pengujian. Setelah melakukan instalasi pada Docker, dilakukan pengecekan container Docker MySQL. Setelah proses instalasi Docker dan MySQL selesai, dilakukan konfigurasi replikasi pada MySQL.
ιπysql> create user 'repllJ,Γ identified by 'replicate' password expire never; Query Cttl 0 rows affected (0.02 sec)
mysql> grant reload, replication client, replication slave on *.* to repl ⅛'⅞', Query OK1 0 rows affected (0.Θ1 sec)
ιπysql> create user 'user,g,%, identified by 'testing' password expire never;
Gambar 7: Konfigurasi hak akses pengguna yang akan melakukan replikasi
server@servermaster:~$ mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or ∖g.
Your MySQL connection id is 5
Server version: 5.7.22-log MySQL Community Server (GPL)
Copyright (c) 2θθθj 2022j Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;1 or '∖h, for help. Type ,∖c, to clear the current input statement.
mysql> show databases; +--------------------+
I Database +--------------------+
I information-schema ∣
I mysql
I performance_schema ∣
I sy≡
I uploadfile +--------------------+
5 rows in set (Θ.ΘΘ sec)
mysql>
Gambar 8: Konfigurasi database “uploadfile” pada server master
WrvergservenBSter:-! cd ∕srp∕*κkβ∙⅛sι∣l-naster∕
•.e-'.ercserver-tfitr-iii’v.'dbrke^ suds .∕rundockιr.sh
Uruble to find inage ,πysqlι5.7.22l Iccally
5.7.22: Pvlling ⅛ IibwyZiiysql
be8881be8156: Ertratting ==================================
<3995dabdld7: Ifcwload Ctrnlete
9931fddι358S: Banioading [ ================= >
SnlbEbSeffea: IfcwiLoad tαιplete
afifl25fa718: Kwiload tcnf∣lete
2d9fB<MβSbe2: KwiLoading [ ==============----—≈====⅛
37W12cWafe: Kwiload co∏ρlete
7S5S2d21C⅛7f: Naiting
MftHWil: Naiting
7⅜f546d477B: Naiting
2b3c2sEbacκ: Naiting
] 15.W/22.4»
] 1.S73HB/4.49W
] 7.842⅛∣'U.0⅛B
mysql> select ’ from tuploadfile;
I IDUploadFile ∣ FilePath
23
24
25
26
27
28
29
3θ
31
32
C: ∖Users∖A⅛ιin∖Dccuments∖dataset∖Capture9. PtJG
C: ∖Users'. Admin',Dccumentsldataset',CapturelS. PNG
C: ∖Users∖Ac⅛∏∖Dccuments∖dataset XCapturell. PNG
C AUsers ∖ A ⅛ιin∖ Document s ',dataset ∖Capturel2. PNG
C:∖Users∖Admin∖Documeπts∖dataset∖Capturel3.PNG
C: \Users\AdBiri\Docuiiefit5\dataset\CLQSER_2017_39.pdf
C:\Users\Adfflin\DociBnents\dataset\Design and Implementation of a MySQL Database Backup.pdf
C: ',Users', Adnin1, Dccumentsldataset\Nikolay_Baychenko. pdf
C:\Users\Admin\Docunieflts\dataset\CHLanipMySQLRepl.pdf
C:\Users\Admin\Docuniefits\dataset\Krewella - Live For The Night.mkv
10 rows in set (0,02 sec)
Serverpserverslave:-! cd ∕5nl⅛⅛r∕ι5s⅛∙sW
serverpserverslavez∕srv∕d5tker∕⅛sql-slaι.4 sudo ./rundocker.sh
unable to find i∏age 'ny$41;5.7,22' locally
5.7.22: Polling frwι IitiraryZiiysql
w3881te815E: Kwiloading [ ================= ] 14.2310/22.««
c399Sdebdld7: Kwload coπplιta
^31fdda358E: Kwiload CMplete
OblbEbEeffea; Kwiload CMplete
⅛5fl25fs718: KwLoad Ctnolete
2d9f⅛WMbe2: Kwloadiri [ ================== ] 5.(1410/12.8«
37b312cb2afe: Kwload Ctrwlete
79S92d21cWf: KwLoad Ctnolete
MfieSHdBld: Naiting
7⅛f54Ed4779: Nritirg
i⅛3c2sEbbcκ: Nriting
Gambar 9: Isi dari database “uploadfile”
Hsrningc a psrtisl Λw? fron a ssrusr ⅛κ Ms dIDs Mill by Esfsvlt include Ww stub cf sll Trsmsctiora, ww the*» that cnsngsd supprsssso part; of Ww Oatsnass. Jf you don't win to restore SUM, pass ∙-Set-Btid-PurtM-WF. to w⅛ ⅛ cwi⅛t÷ d∣np, pass --Sll-KtSWM '’triggers routines --«wots.
CS' C'>⅛C'-"5r⅛-ts-C-S
Gambar 6: Proses Instalasi MySQL dalam Docker
-
B. Konfigurasi Master-Slave pada MySQL
Setelah melakukan pengaturan pada Docker, selanjutnya dilakukan pengaturan pada database MySQL. Terdapat dua pengaturan konfigurasi, yaitu pada server master dan server slave. Dalam pengaturan database, ada beberapa parameter yang tidak sama antara server master dan server slave.
Langkah pertama untuk konfigurasi server master yaitu pembuatan user database untuk replikasi. Fungsi dari user ini adalah sebagai penanda replika database yang dituju.
Gambar 10: Proses dump database “uploadfile” pada server master
replicate_do_db=uploadfile query_cache_size=5M query_cache_type=l max_birlog_size=lG skip_name_resolve
gt id_mode=ON
enforce_gtid_consistency
default_password_lifetime=0 max-connections=3θθ default_time_zone=,+7:ΘΘ' character_set_server=utf8
Gambar 11: Konfigurasi database pada server slave
Gambar 7 adalah command utnuk membuat user dan hak akses pada database master. User ini diberi konfigurasi “password expire: never”, yang berfungsi agar password tidak
DOI: https://doi.org/10.24843/MITE.2022.v21i02.P08 perlu diganti setiap tahun. Penggantian password setiap tahun merupakan ciri dari MySQL versi 5.7. Setelah melakukan konfigurasi pada user database, dibuat sebuah database dengan nama “uploadfile”. Gambar 8 menunjukkan bahwa database “uploadfile” berhasil terbuat. Pada database “uploadfile”, juga dibuat tabel untuk menyimpan ID. Tabel ini akan secara otomatis terisi oleh data pengujian, ketika dilakukan replikasi.
Data yang akan dimasukkan ke dalam database “uploadfile” adalah gambar dan file dengan format PDF. Gambar 9 menunjukkan bahwa data sudah di dalam database “uploadfile”. Lalu dilakukan proses dumping pada database “uploadfile” yang akan dijalankan ke dalam server slave. Proses dump berfungsi sebagai media sinkronisasi antara database master dan database slave, sehingga kedua database tersebut dapat berkomunikasi jika ada perubahan di dalam database. Proses dump ditunjukkan pada Gambar 10.
File dump pada proses ini akan di-restore atau dikembalikan ke dalam database slave sekaligus dengan beberapa parameter untuk menjalankan replikasi. Sampai pada langkah ini, konfigurasi pada database MySQL server master telah selesai dan berlanjut pada konfigurasi database MySQL server slave.
Pada pengaturan server slave, diisikan parameter pada file konfigurasi (CNF) database MySQL dalam server slave, seperti terlihat pada Gambar 11. Parameter replikasi yang digunakan adalah REPLICATE_DO_DB dengan nama “uploadfile” sebagai nama database yang akan digunakan menduplikasi alamat database pada server master. Setelah melakukan konfigurasi database pada server slave, service dalam database di-restart untuk memastikan parameter dapat berjalan dengan baik. Lalu, data di-restore dari server master ke server slave. Untuk keseluruhan proses yang disebutkan diatas, digunakan tools PV, yang juga dapat menampilkan proses dan waktu restore database.
Gambar 12: Proses restore database dari server master kepada server slave
Ilmiyatus Sholihah: Sistem Replikasi Basis Data…
213 server@serverslave:~$ mysql -uroot -p Enter password:
Welcome to the MySQL monitor. Commands end with ; or ∖g.
Your MySQL connection id is 5
Server version: 5.7,22-log MySQL Community Server (GPL)
Copyright (c) 200Θ, 2Θ22j Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;1 or ,∖h, for help. Type '∖c' to clear the current input statement, mysql> show databases;
I Database
I information_schema ∣
I mysql
I performance-schema ∣
I ≡ys
I uploadfile
5 rows in set (0.07 sec)
mysql>
Gambar 13: Detail database MySQL pada server slave
UflD c⅛BtertoiBsterjiiEt=lIISMU1j IKterjKE=JitSj rasterjιsι,='repΓ, raster,Iissrfreslstete j nstr⅛at⅛lj (Iiery Cti18 r⅛s Iffcted, 2 ,∣≡"riι=s (SΛ set)
∣fll) start ⅛;
Qiery (X, 8 ms Iiffcted (1.81 sc)
ικql) si™ stee s⅛s⅛
Gambar 14: Konfigurasi replikasi database slave ke master
Selanjutnya, Gambar 12 menunjukkan proses restore database dari server master. Proses pada Gambar 12 tergnatung dari besaran data yang akan di-restore. Semakin besar file size dari data, maka akan semakin lama proses restore database. Lalu, dilakukan pengecekan dalam database yang di-restore (server slave). Gambar 13 menunjukkan proses restore yang berhasil dilakukan dari database server master ke database server slave. Setelah berhasil melakukan restore, langkah selanjutnya adalah melakukan konfigurasi untuk menyambungkan antara database server slave dengan database server master agar proses replikasi database dapat berjalan dengan semestinya.
Gambar 14 menunjukkan konfigurasi dari database server slave agar sistem replikasi dapat mengenali database server slave. Gambar 14 juga menunjukkan beberapa parameter user replika pada server master, yaitu username, password, port database, dan host database. Setelah selesai menjalankan perintah replikasi, maka tiba saatnya untuk menjalankan server slave dengan perintah ”start slave”. Setelah server slave aktif, status replikasi database server slave pada log MySQL server slave dipastikan tidak memberikan error.
Log replikasi dari MySQL pada server slave ditunjukkan pada Gambar 15. Log tersebut menampilkan bahwa replikasi berjalan semestinya. Sampai pada langkah ini, konfigurasi pada database MySQL server slave telah selesai dan berlanjut pada p-ISSN:1693 – 2951; e-ISSN: 2503-2372
pengujian data yang akan dimasukkan ke dalam database server master dan database server slave.
mysql> show slave status∖G
Slave_IO_State: Waiting for master to send event Master_Host: 192.168.0.20 MasterUser: repl
Master_Port: 3306
Connect_Retry: 60
MasterLogFile: masterreplicate-bin.000017
Read_Master_Log_Pos: 194
RelayLogFile: slavereplicate-relay.000016
Relay_Log_Po s: 427
Relay_Master_Log_File: maSterreplicate-bin.000017
SlaveIORunning: Yes
Slave_SQL_Running: Yes Replicate_Do_DB: uploadfile
RepIicatelgnoreDB:
Replicate_Do_Table:
ReplicateIgnoreTable:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
LastErrno: 0
Last_Error:
Skip_Counter: 0
ExecMasterLogPos: 194
Relay_Log_Space: 679
UntilCondition: None
Until_Log_File:
Until_Log_Pos: 0
MasterSSLAllowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Ma ster_SS L_Ce rt:
Master_SSL_Cipher:
MasterSSLKey:
Seconds_Behind_Master: 0
Ma ster_SS L_Ve rify_Se rve r_Ce rt: No
LastIOErrno: 0
Last_IO_Error:
LastSQLErrno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Gambar 15: Log replikasi MySQL server slave
-
C. Hasil Uji Coba Unggah Data
Data pada penelitian ini menggunakan beberapa file, yaitu file berformat PDF, file gambar IMG dan multimedia MP4. Besaran file yang digunakan pada penelitian ini adalah maksimal 100MB dengan banyak variasi kapasitas dari file tersebut. Terdapat 20 data yang berupa file PDF, file IMG dan file MKV.
Setelah data dimasukkan kedalam database server master, lalu dilakukan pengecekan di dalam database server slave. Jika data yang dimasukkan di dalam database server master ada pada database server slave, maka dipastikan replikasi berjalan sesuai.
Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 5.4.θ-109-generic xS6_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Tue 23 Aug 2022 12:27:25 PM UTC
System load: 0.07 Processes: 119
Usage of ∕: 13.3% of 48.96GB Users logged in: 0
Memory usage: 45% IPv4 address for dockerθ: 172.17.θ.l
Swap usage: 0% IPv4 address for enpθs3: 192.168.0.20
* Super-optimized for small spaces - read how we shrank the memory footprint of MicroK8s to make it the smallest full K8s around.
https://ubuntu.com/blog/microk8s-memory-optimisation
-
4 updates can be applied immediately.
To see these additional updates run: apt list --upgradable
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '22.04.1 LTS' available.
Run ,do-release-upgrade, to upgrade to it.
Last login: Tue Aug 23 12:15:34 2Θ22 from 192.168.θ.105 server∣8servermaster: ~$
Gambar 16: Status server master
:£■ ∙∈ '^i- ∙∈''"∙=zer>3 sudo docker ps -a
[sudo] password for server:
Ccntadjer id image owwjd created status ports names
04dθlt6d87be mysql:5.7,22 "dκker∙eπtrypoiπt.s,." 4 months ago Up 26 Itinutes 0.0.0.0:3306->3306∕tcp, :: :3306->3306/tcp π⅞,sql-master
se τ .. - :3 nysql ∙urcot -ρ
Enter password:
Welcoie to the MySQL nonitor. Ccnrares end with; or ⅛.
Your MySQL connection id is 6
Server version: 5.7.22-log MySQL Coniuiity Server (GPL)
Copyright (c) 20Θ0, 2022, Oracle and/or its affiliates.
Oracle is a registered tradenark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective owιers.
Type 'help;' or ,∖ħ' for help. Type '∖c, to clear the current input statement.
mysql> show databases;
+........ +
I Database ∣
+....................+
I information_schena ∣
I mysql
I performance schema ∣
hys - ’
I Uploadfile
+....................+
-
5 rows in set (0.00 sec)
mysql>
Gambar 17: Status database MySQL server master
5∈-.÷-,ijΞPr ∙ π∣. ∣ > :-$ mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. ConiMnds end with ; or Xg.
Your MySQL connection id is 12
Server version: 5.7.22-log MySQL Community Server (GPL)
copyright (e) 2009, 2022, Orecle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates, Other names may be trademarks of their respective
type ‘help/ or '∖ħ, for help. Type ,⅛, to clear the current input statement.
mysql> use uploadfile;
Reading table information for completion of table and column names
Database changed
mysql> select ∙ from tuploadfilβ;
] IDuploadFile ∣ Filefach
23
24
25
26
27
28
29
39
-
C: XUsers∖Admin∖DocUmentsXdatasetXCapturaie. PNG
C:\Users\Admin\Documents\datasetXCapturell.PNG
C:XUsersXAdminXDocumentsXdatasetXCapturelS.PNG
CiXUsersXAdmi nXDoc ument s X date set X C LOSE R_ 2917_39.pdf
C:XUsersXAclminxDocumentsXdatasetXDasign and Implementation of a MySQL Database Backup.pdf
-
C: Xusers XAclniinXDocumentsXdata SetXNikolaysBaychenko. pdf
-
C: XusersxAciiiiinxDocumentsxdatasetXONLampMySQLRapl .ρdf
32
mysql>
Gambar 18: Isi file pada database server master
DOI: https://doi.org/10.24843/MITE.2022.v21i02.P08
, ■ 4 mysql ∙uroot -p
Enter password:
Welcome to the MySQL monitor, commands end with ; or ∖g.
Server version: 5.7.22-log HySQL Community Server (GPL)
Copyright (c) 2006, 2022, Oracle and/or its affiliates.
affiliates. Other names may be trademarks of their respective
mysql> use uploadfile;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select * from Luplcadfile;
I IDUploadFile ∣ FilePath
24
26
28
29
30
32
33
C;tl∣sers∖Admirι MtocumentStdatasettCaptureD. PNG
C:MJserstAdmiriMtocumentstdatasettCaptureia.PHG
C:WserstAdmintltocumentstdatasettCapturell-PNG
C:WserstAdmintltocumentstdatasettCaptureli-PKi
C:WserstAdmintoocumentstdatasettCapturelJ-PNG
C:Wsers\AdmintDocumentstdatasettCLOSER_2017_39.pdf
C:\tlsers\Mmin\Oocuments\dataset\Oesign end Implementation of a HySQL Database Backup-pdf I
C: WserstAdmintItocumBntstdatasettNikolay_0aychenko.pdf
C:Wsers\AdmintOocumentitdatasettONLaepMySQLRepl.pdf
C:\Users\Admin\Oocuments\dataset\Krewella - Live For The Night.mkv
C: WserstAdmintoocumentstdatasettCapturel-PNG
C;WserstAdmintoesktoptlD-Article Text-24i-i-i0-202i061i.pdf
36
38
39
40
C: ∖Users∖Admin∖DocomentsWataset∖Ca()turel, PNG C:∖Users∖Admin∖Documents∖dataset∖Capture3.PNG C:∖Users∖Admin∖0ocuments∖dataset∖Capture4.PNG
C:∖Users∖Admin∖0ocuments∖dataset∖Capture6.PNG C; ∖Users∖Admin MtocumentstdatasettCapture?.PNG C:MjserstAdminMtocumentstdatasettCaptureB.PNG
Gambar 19: Data pada database server master
server^serverslave:~J mysql -uroot -p
Enter password:
Welcome to the NySQL monitor. Commands end with ; or ∖g.
Your MySQL connection id is 35
Server version: 5.7.22-log MySQL Community Server (GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '∖h, for help. Type ,∖c, to clear the current input statement.
mysql> use uploadfile;
Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select * from tuploadfile;
I IDUploadFile ∣ FilePath
23
24
25
26
27
29
30
32
35
37
38
39
41
42
C:\Users\Admin\Documents\dataset\Capture9.PNG
C:\Users\Admin\Documents\dataset\Capturel0.PNG
C:\Users\Admin\Documents\dataset\Capturell.PNG
C:\Users\Admin\Documents\dataset\Capturel2.PNG
C:∖Users∖Admin∖Documents∖dataset∖Capturel3.PNG
C:\Users\Admin\Documents\dataset\CLOSER_2017_39.pdf
C:\Users\Admin\Documents\dataset\Design and Implementation of a HySQL Database 3ackup.pdf
C:\Users\Admin\Documents\dataset\flikolay_Baychenko.pdf
C:\Users\Admin\Documents\dataset\OHLampMySQLRepl.pdf
C:\Users\Admin\Documents\dataset\Krewella - Live For The Night.mkv
C:\Users\Admin\Documents\dataset\Capture2.PNG
C:\Users\Admin\Desktop\29-Article Text-241-l-10-20210611.pdf
C:\UserstAdmin\Desktop\123.txt.txt
C:\Users\Admin\Documents\dataset\Capturel.PNG
C:\Users\Admin\Documents\dataset\Capture3.PNG
C:∖Users∖Admin∖Documents∖dataset∖Capture4.PNG
C:\Users\Admin\Documents\dataset\Capture5.PNG
C:\Users\Admin\Documents\dataset\Capture6.PNG
C:\Users\Admin\Documents\dataset\Capture7.PNG
C:\Users\Admin\Documents\dataset\Capture8.PNG
215 pengujian berfungsi untuk memastikan agar tidak terjadi kegagalan saat proses unggah data.
Gambar 17 menunjukkan status dari MySQL pada database server master. Gambar 17 menunjukkan bahwa database MySQL sudah siap untuk dilakukan unggahan data. Gambar 18 menunjukkan percobaan melakukan unggah data. Pada gambar tersebut, terlihat terdapat 11 data dalam percobaan unggah data. Dari hasil query database, ditunjukkan bahwa unggah data ke dalam server master telah berhasil dilakukan.
Lalu pada Gambar 19, ditunjukkan bahwa data telah terunggah pada database server master. Terhitung total 20 file telah terunggah ke dalam database server master. Total 20 file yang diunggah pada database server master ini juga telah terreplikasi pada database server slave.
Gambar 20 menunjukkan bukti bahwa 20 data yang diunggah pada database server master telah terreplikasi pada database server slave. Perlu dilakukan pengujian lebih lanjut, yaitu dengan pengujian hapus data. Apabila salah satu atau lebih data dihapus pada database server master, maka seharusnya data tersebut juga terhapuskan pada database server slave.
D. Hasil Uji Coba Hapus Data
Setelah melakukan pengujian unggah data, selanjutnya dilakukan pengujian menghapus data pada data pengujian. Diharapkan dari pengujian hapus dataset adalah mengetahui seberapa berfungsi replikasi data pada database MySQL. Untuk melakukan penghapusan data, digunakan tools bantuan SQL editor, yaitu HeidiSQL. Menggunakan SQL editor untuk mengolah data pada database dirasa dapat membantu oleh karena ketersediaan Graphical User Interface (GUI) daripada CLI. Uji coba penghapusan data dimulai dengan menghapus 10 data pada database server master.
Gambar 20: Isi dari database server slave yang sudah sesuai dengan isi dari database server master
Setelah menyiapkan data, disiapkan server master. Sebelum mengisi data kedalam database server master, dipastikan kondisi server master terlebih dahulu. Gambar 16 menunjukkan status server master. Setelah melakukan pengecekan kondisi server master, dilakukan pengecekan pada status database MySQL. Pengecekan sebelum melakukan
Ilmiyatus Sholihah: Sistem Replikasi Basis Data…
Gambar 21: Proses hapus data pada database server master
p-ISSN:1693 – 2951; e-ISSN: 2503-2372
Gambar 21 menunjukkan penghapusan 10 data dan menyisakan 10 data pada database server master. Setelah dicek, database pada server slave juga menyisakan 10 data yang sama, seolah penghapusan 10 data pada database server master sebelumnya juga terjadi pada database pada server slave.
E. Analisis Hasil dan Pembahasan
Berdasarkan hasil pengujian penelitian replikasi database menggunakan MySQL menunjukkan bahwa replikasi database master slave sesuai dengan teori dari replikasi database master slave MySQL. Hasil ini serupa dengan penelitian milik Noor Kamilah Malik, dkk yang menjelaskan mengenai fungsi dan juga cara kerja dari sistem tersebut [19]. Hasil pengujian menunjukkan bahwa replikasi mendapatkan hasil yang sesuai dengan metode uji, seperti unggah data ke dalam database dan menghapus data. Total terdapat 20 data yang dapat direplikasi, baik dalam proses unggah data ataupun proses penghapusan data.
Pembahasan berikutnya tentang replikasi master slave juga memiliki kelemahan, yaitu jika terlalu lama server slave tidak bisa terhubung dengan server master, maka akan terjadi error. Error yang terjadi dikarenakan server tidak dapat melakukan pengecekan keaktualan data, maka secara otomatis database yang ada pada server slave akan melakukan pemutusan dengan kode error yang muncul ketika dilihat pada log status slave. Berikut adalah hasil error dari server slave yang diakibatkan server slave tidak dapat melakukan pengecekan data ke server master.
Inysql? show slave status∖G;
-
******»****W»W**W»W**W 1 PQ^ *****************¥*********
Slave_IO_State:
Master_Host: masterl
Master User: rep
Master_Port: 3306
Connect Retry: 6Θ
Master_Log File:
Read_Master_Log_Pos: 4
Relay Log File: mysql-slave2-relay-bin [email protected]
Relay_Log_Pos: 4
Re⅛⅜j⅛,it8rj∩g-Fila∙ ∣
I Slave IO Running: No
Slave_SQL_Running: Yes
RepUcateJtoJlB:
Reolicate Ianore DB:
Until_Log_File:
Until Log Pos: Θ
Maste r_SSL_AUowed: No
Master SSL CA File:
Master^SSL^CA^Path:
MasterJSLJert:
Ha$ter_$SL_cipher:
HasterJSLoKey:
SecondsBehind Has ter: θ
Itaster SSLoVerify Server Cert: No
_________________Last IO Errπo: 1236___________________________________________________________________________________________
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'The slave is conns ting using CHANGE MASTER TO MA^TER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires.'
Gambar 22: Error pada database dalam server slave
Pada Gambar 22, ditunjukkan contoh error yang terjadi ketika database server slave gagal terhubung dengan database server master yang mengakibatkan posisi ”binlog” dari database slave terputus. Penyebab kejadian putus koneksi antara server slave dengan server master yang paling umum terjadi adalah koneksi internet.
Jika terjadi error pada Gambar 23, maka yang harus dilakukan adalah melakukan restore ulang data dari database master ke dalam database server slave lalu dilakukan konfigurasi ulang dengan melakukan set master. Selain error yang disebabkan koneksi, error pada server slave juga dapat terjadi jika melakukan input data melalui server slave. Secara
teori, data yang masuk harus melalui server master, lalu dilakukan replikasi secara otomatis oleh MySQL. Jika terdapat data yang diunggah pada server slave, maka akan terjadi error seperti pada Gambar 24.
ExκJteteroLθjJ⅛5! 632715
Rela∕oL¾,Soac=: 2835420
ItitiloCcrditian: tone
UπtΠ⅛File:
IhtiloLojoPos: 8
SstBroiSSLoAUoMed: lie
⅛stero5SLoCAoFil8:
Ifester0SSL0CA0Path:
IfesteroSSLfert:
⅛steroSSLo⅛ter:
IteteroSSLoKey:
SeccrcsoEehirdJteter: NULL
ItasteroSSLoIferifyoSener fert: Hc
LastoIOoErrno: 8
LastoIOoErrar:
Last0SgL0Errno: 15S4
LastoSgLoErrar: Relay leg read failure: Could not parse relay log event entry. Ihe possible rεascrs are: the luster's binary log is corrupted (ytu can check this by running lIysqlbinlog' on the binary leg), the slave's relay log is corrupted (you can died: this by rurrirg 'πysqlbinlog' on the relay log), a net*crk prcblen, or a ojg in the master's or slave’s ⅛SJ. cede. If you Mant to check the raster's binary log or slave's relay log, yαι nil be able to know their nares by issuing 1SHU SLAVE S TATJS' on this slave.
Gambar 23: Error pada database server slave
Pada Gambar 23, ditunjukkan error pada server slave yang disebabkan oleh data yang masuk melalui server slave. Error tersebut terjadi karena MySQL server slave melakukan pengecekan data dan terjadi kerusakan pada binary log sehingga proses replikasi dihentikan secara otomatis oleh server slave. Solusi dari error tersebut adalah dilakukan restore ulang dari database server master dan diulang melakukan set master.
Namun, dengan adanya kelemahan tersebut, keunggulan yang dimiliki tetap memiliki pengaruh yang signifikan bagi perusahaan. Sistem yang langsung bisa digunakan oleh end user bisa mempermudah pekerja dalam melakukan pekerjaannya. Hal tersebut sejalan dengan studi dari Efri Darwis yang menyatakan bahwa penggunaan sistem ini berjalan dengan cepat sehingga efektif jika bisa dimanfaatkan dengan baik [20].
Simpulan dari pengujian replikasi database menggunakan metode master-slave sangat layak digunakan pada perusahaan. Pasalnya, jika terjadi masalah, maka solusinya yakni dengan
restore ulang dari database server master dan diulang
menggunakan set master. Pengimplementasian tersebut tidak perlu menggunakan orang yang ahli dalam bidang IT. Sehingga, ide ini bisa digunakan oleh perusahaan yang belum memiliki staff atau karyawan yang ahli di bidang IT. Penelitian ini bisa digunakan untuk mempermudah sistem di perusahaan karena efektivitas penggunaan dan hanya dengan sekali setup. Proses konfigurasi replikasi master-slave lebih mudah jika
dibandingkan dengan konsep master-master atau cluster. Konsep yang ditawarkan dari replikasi ini juga sangat sederhana, sehingga memudahkan end user.
Referensi
-
[1] M. Johnson et al., “Impact of big data and artificial intelligence on industry: Developing a workforce roadmap for a data driven economy,” Glob. J. Flex. Syst. Manag., vol. 22, no. 3, hal. 197–217, 2021.
-
[2] G. Aceto, V. Persico, dan A. Pescapé, “Industry 4.0 and health: Internet of things, big data, and cloud computing for healthcare 4.0,” J. Ind. Inf. Integr., vol. 18, hal. 100129, 2020.
-
[3] F. Zamzami, N. D. Nusa, dan I. A. Faiz, Sistem Informasi Akuntansi. UGM PRESS, 2021.
-
[4] S. Arni, “Penerapan Perintah MySQL dalam Backup Database,”
Majalah Ilmiah Teknologi Elektro, Vol. 21, No.2, Juli - Desember 2022 DOI: https://doi.org/10.24843/MITE.2022.v21i02.P08
PROGRES, vol. 5, no. 2, hal. 19–26, 2013.
-
[5] A. Meier dan M. Kaufmann, SQL & NoSQL databases. Springer, 2019.
-
[6] H. Maulana, “Analisis Dan Perancangan Sistem Replikasi Database MySQL dengan menggunakan VMware pada Sistem Operasi Open Source,” InfoTekJar J. Nas. Inform. dan Teknol. Jar., vol. 1, no. 1, hal. 32–37, 2016.
-
[7] Z. Jiang, H. Da, Y. Qiu, dan J. Pan, “Overview of Data Synchronization and Fault Recovery Technology in Multi Active Data Center,” in 2021 IEEE 4th International Conference on Automation, Electronics and Electrical Engineering (AUTEEE), 2021, hal. 113–118.
-
[8] R. Shrestha, “High Availability and Performance of Database in the Cloud-Traditional Master-slave Replication versus Modern Clusterbased Solutions,” 2017.
-
[9] Z. M. Subekti, S. Subandri, dan G. Rakasiwi, “Perancangan Infrastruktur Web Server dan Database menggunakan Metode Replication Mirror dan Failover Clustering,” J. Cendikia, vol. 18, no. 1, hal. 359–370, 2019.
-
[10] A. Gupta, M. Saxena, dan R. Gill, “Performance Analysis of RDBMS and Hadoop Components with their File Formats for the development of Recommender Systems,” in 2018 3rd International Conference for Convergence in Technology (I2CT), 2018, hal. 1–6.
-
[11] I. M. Sukarsa, “Aplikasi Konversi Flowchart ke Kode Program Bahasa Pemrograman PL/SQL MYSQL,” Maj. Ilm. Teknol. Elektro, vol. 8, no. 2, hal. 44–53, 2009.
-
[12] F. Y. Putra, I. M. A. Suyadnya, dan I. P. R. Agung, “Reservation Application System Of Private Lesson At Easyspeak Denpasar Based On Web And Android,” Maj. Ilm. Teknol. Elektro, vol. 15, no. 1, hal. 79–83, Jun 2016, doi: 10.24843/MITE.1501.14.
-
[13] X. Yu, X. Cai, S. Su, J. Han, dan R. F. Mansour, “The Technical Design and Implementation of Cross-Platform Industrial Product Order System,” J. Cybersecurity, vol. 3, no. 1, hal. 1, 2021.
-
[14] A. Amarudin dan Y. Atri, “Analisis Penerapan Mikrotik Router Sebagai User Manager Untuk Menciptakan Internet Sehat Menggunakan Simulasi Virtual Machine,” J. TAM (Technology Accept. Model., vol. 9, no. 1, hal. 62–66, 2018.
-
[15] Z. Aalam, V. Kumar, dan S. Gour, “A review paper on hypervisor and virtual machine security,” in Journal of Physics: Conference Series, 2021, vol. 1950, no. 1, hal. 12027.
-
[16] M. Idhom, R. Alit, H. Endah, dan A. Fauzi, “Implementation System Telegram Bot for Monitoring Linux Server,” 2018.
-
[17] L. Mercl dan J. Pavlik, “The Comparison of Container Orchestrators,” in Third International Congress on Information and Communication Technology, 2019, hal. 677–685.
-
[18] Y. C. Giap et al., Cloud Computing: Teori dan Implementasi. Yayasan Kita Menulis, 2020.
-
[19] N. K. Malik, A. T. P. A. Ramadani, N. A. Karlina, dan D. R. Lestyarini, “Replikasi Database dengan Model Master-Master dan Master-Slave MariaDB,” Universitas Siliwangi, 2020.
-
[20] E. Darwis, “Implementasi Basis Data Terdistribusi menggunakan MySQL pada PT Thamrin Brothers Palembang,” Universitas Bina Darma, 2012.
Ilmiyatus Sholihah: Sistem Replikasi Basis Data…
p-ISSN:1693 – 2951; e-ISSN: 2503-2372
{ halaman ini sengaja di kosongkan}
ISSN 1693 – 2951
Ilmiyatus Sholihah: Sistem Replikasi Basis Data…
Discussion and feedback