Optimalkan Ketersediaan Aplikasi LoadBalancer

Optimalkan Ketersediaan Aplikasi LoadBalancer


High Availability (HA) adalah kunci untuk menjaga aplikasi dan database tetap tersedia saat terjadi kegagalan sistem atau lonjakan beban. Untuk itu, penggunaan Load Balancer (LB) sangat penting dalam arsitektur HA untuk mendistribusikan lalu lintas ke berbagai server database. Optimalkan Ketersediaan Aplikasi LoadBalancer dengan memastikan distribusi yang merata untuk menghindari beban berlebih pada satu titik. Dengan cara ini, HA memastikan bahwa aplikasi tetap berjalan dengan performa optimal bahkan saat ada gangguan pada satu atau lebih node. Load Balancer (LB) berfungsi sebagai komponen utama untuk mendistribusikan koneksi secara merata ke server database yang tersedia, menjaga ketersediaan aplikasi dan data yang kritikal.


Best Practices

  1. Load Balancer Setup:
    • Jenis Load Balancer: Gunakan load balancer yang mendukung distribusi lalu lintas ke database dengan algoritma seperti round-robin, least-connections, atau IP hash. Contoh: HAProxy, NGINX, atau AWS ELB.
    • Health Checks: Implementasikan health check pada load balancer untuk memantau status kesehatan dari node database. Jika sebuah node gagal, load balancer harus secara otomatis mengarahkan lalu lintas ke node yang sehat.
  2. Database Replication:
    • Master-Slave Replication: Konfigurasikan replikasi master-slave di mana master menerima semua operasi tulis dan slave digunakan untuk operasi baca. Hal ini dapat mengurangi beban di server master dan meningkatkan HA.
    • Multi-Master Replication: Untuk sistem yang membutuhkan ketersediaan tulis tinggi di berbagai lokasi, multi-master replication dapat dipertimbangkan. Pastikan untuk menangani konflik secara efektif.
  3. Automatic Failover:
    • Failover Mechanism: Gunakan alat seperti Pacemaker atau Patroni untuk mendeteksi kegagalan pada server database utama dan secara otomatis melakukan failover ke node sekunder tanpa intervensi manual.
    • DNS-based Failover: Gunakan DNS-based failover untuk mengalihkan lalu lintas ke data center atau region lain jika seluruh infrastruktur mengalami masalah.
  4. Data Consistency & Split-Brain Scenarios:
    • Quorum-based Systems: Dalam konfigurasi multi-node, pastikan bahwa sistem memiliki mekanisme quorum untuk mencegah split-brain scenarios, di mana dua node independen menganggap diri mereka sebagai master.

#Menggunakan Oracle Connection Manager

Langkah 1: Instalasi Oracle Connection Manager

Oracle Connection Manager (CMAN) adalah proxy server yang dapat digunakan untuk mendistribusikan koneksi klien ke database Oracle.

  1. Instalasi CMAN:Instalasi Oracle Connection Manager dilakukan melalui Oracle Universal Installer (OUI) yang tersedia dalam instalasi Oracle Database Client.
  2. Konfigurasi Connection Manager:Setelah instalasi, konfigurasi file cman.ora yang biasanya berada di $ORACLE_HOME/network/admin/cman.ora.

Langkah 2: Menggunakan CMAN sebagai Load Balancer

Pada klien yang mengakses database, gunakan konfigurasi berikut pada tnsnames.ora


#2. Database Replication: Master-Slave Setup

Oracle menyediakan fitur Data Guard untuk implementasi Master-Slave Replication, yang menyediakan replikasi data dari database utama (primary) ke database cadangan (standby).

Langkah 1: Konfigurasi Primary Database

  1. Aktifkan Force Logging:Untuk memastikan semua perubahan dicatat dalam redo logs.ALTER DATABASE FORCE LOGGING;
  2. Aktifkan Archivelog Mode:Pastikan database berjalan dalam archivelog mode.SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN;
  3. Buat Standby Redo Logs:Standby redo logs diperlukan untuk konfigurasi Data Guard.ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/orcl/stdby01.log') SIZE 500M;
  4. Buat TNS Entry untuk Standby:Tambahkan entry ke dalam tnsnames.ora di server primary yang mengarah ke standby.STDBY = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.11)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl_stdby) ) )
  5. Backup Primary Database dan Kirim ke Standby:Gunakan RMAN untuk membuat backup dan kirim ke standby.
    RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
    Kemudian restore di standby.

Langkah 2: Konfigurasi Standby Database

  1. Restore Backup di Standby: Restore backup yang diambil dari primary.RMAN> RESTORE DATABASE; RMAN> RECOVER DATABASE;
  2. Start Standby Database: Mulai database dalam mode standby.ALTER DATABASE MOUNT STANDBY DATABASE;
  3. Aktifkan Managed Recovery: Aktifkan managed recovery untuk standby.ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

#Kesimpulan

  • Load Balancer: Menggunakan Oracle Connection Manager untuk mendistribusikan beban koneksi secara merata antara node database.
  • Master-Slave Replication: Menggunakan Oracle Data Guard untuk memastikan replikasi data secara real-time dari primary ke standby database.
  • Multi-Master Replication: Menggunakan Oracle GoldenGate untuk mengimplementasikan replikasi dua arah (bi-directional) antar beberapa master database, memungkinkan setiap node untuk melakukan operasi tulis dan tetap sinkron dengan node lainnya.
  • Automatic Failover: Pacemaker dan Corosync bersama dengan Oracle Data Guard memberikan mekanisme failover otomatis yang dapat dipasang di lingkungan VPS yang dikelola sendiri.
  • DNS-based Failover: Bind9 dapat digunakan untuk mengelola DNS failover secara otomatis dengan mengarahkan ulang traffic ke standby node saat primary node gagal.
  • Data Consistency & Split-Brain Scenarios: Konfigurasi quorum-based systems dengan STONITH melindungi database dari split-brain, menjaga konsistensi data di seluruh cluster.

Dengan konfigurasi ini, sistem database Oracle Anda akan memiliki tingkat ketersediaan tinggi dan perlindungan terhadap berbagai skenario kegagalan tanpa menggunakan layanan cloud eksternal.

Berita Rekomendasi

Best Tools Software Performance Monitoring

12/11/2024

Best Tools Software Performance Monitoring

Di dunia modern, performance management aplikasi dan server wajib untuk memberikan produktivitas yang berkelanjutan di lingkungan bisnis. Jadi alat ini memeriksa status semua layanan dan aplikasi. Jika ada masalah atau…

View
Tips Menghindari Burnout sebagai Software Engineer

12/11/2024

Tips Menghindari Burnout sebagai Software Engineer

Sebagai seorang software engineer,  terkadang nilai Anda terkait dengan jumlah pekerjaan yang dapat Anda selesaikan. Secara logika, pola pikir ini masuk akal. Jika Anda dapat menemukan cara untuk menyelesaikan lebih…

View
Mengenal Cloud Computing: Pengertian, Tipe, dan Fungsinya

11/11/2024

Mengenal Cloud Computing: Pengertian, Tipe, dan Fungsinya

Sederhananya, cloud computing (komputasi awan) adalah metode penyampaian berbagai layanan melalui internet. Sumber daya yang dimaksud contohnya adalah aplikasi seperti penyimpanan data, server, database, jaringan, dan perangkat lunak. Daripada menyimpan…

View