Apa perlu kita lakukan sebagai DBA apabila didapati database (Pangkalan Data) menjadi perlahan?

Apabila pangkalan data jadi perlahan, sebagai DBA, ada beberapa langkah yang boleh kita ambil untuk selesaikan masalah tersebut. Ini adalah langkah-langkah yang boleh diikuti untuk mencari punca dan menyelesaikan masalah kelambatan pangkalan data.

1. Periksa Penggunaan Sumber Sistem

  • CPU: Kalau CPU server tinggi sangat penggunaan, mungkin ada proses dalam pangkalan data yang makan banyak kuasa. Kena semak guna alat monitoring.
  • Memori (RAM): Kalau RAM penuh, sistem akan jadi perlahan sebab dia akan guna disk sebagai memory. Kena pastikan memori cukup.
  • Ruang Disk: Kalau ruang cakera penuh, pangkalan data akan jadi perlahan, terutamanya untuk log dan fail sementara. Kena pastikan ada cukup ruang untuk operasi.

2. Periksa Query Perlahan

  • Tengok Query yang Berjalan: Guna alat seperti SHOW PROCESSLIST (untuk MySQL) atau sp_who2 (untuk SQL Server) untuk tengok query mana yang ambil masa lama.
  • Gunakan EXPLAIN: Dengan EXPLAIN, kita boleh nampak macam mana query dilaksanakan. Kalau query buat full table scan (baca semua data), ini boleh jadi punca kelewatan.
  • Periksa Indeks: Kadang-kadang kalau tiada indeks pada kolum yang digunakan dalam query, pangkalan data akan jadi perlahan. Cek indeks dan pastikan ianya betul.

3. Semak Log Pangkalan Data

  • Log Kesalahan: Tengok log kesalahan untuk tahu kalau ada masalah lain yang tak nampak jelas. Kadang-kadang ada amaran yang beri petunjuk masalah.
  • Log Query Perlahan: Kalau MySQL atau DB yang lain ada fungsi log query perlahan, aktifkan. Ini boleh bantu kita nampak query mana yang terlalu lama.

4. Periksa Penguncian (Locking)

  • Lock Pada Jadual: Kadang-kadang kalau ada lock pada jadual atau baris, proses lain tak boleh jalan, jadi menyebabkan kelambatan. Semak dengan SHOW ENGINE INNODB STATUS (untuk MySQL) untuk lihat masalah lock.
  • Deadlock: Deadlock berlaku bila dua proses saling menunggu antara satu sama lain. Ini perlu diselesaikan cepat-cepat sebab ia akan hentikan transaksi.

5. Tuning Konfigurasi Pangkalan Data

  • Konfigurasi Pangkalan Data: Setkan parameter seperti innodb_buffer_pool_size untuk MySQL, atau parameter lain untuk DBMS yang kita guna. Kalau parameter tak sesuai dengan saiz dan beban sistem, prestasi akan terganggu.
  • Indeks: Pastikan indeks yang sesuai ada pada jadual yang digunakan dalam query. Tanpa indeks yang betul, pencarian data jadi lambat.

6. Periksa Isu Rangkaian

  • Latency Rangkaian: Kalau pangkalan data diakses dari server atau aplikasi yang jauh, pastikan rangkaian stabil dan tak ada isu sambungan.
  • Bandwidth: Kalau bandwidth rendah, pangkalan data akan jadi lambat bila banyak data dihantar. Periksa kelajuan rangkaian.

7. Periksa Struktur Pangkalan Data

  • Data Terlalu Banyak: Kalau pangkalan data besar sangat, boleh jadi lebih perlahan. Mungkin perlu buat pembahagian data (partitioning) atau arkibkan data lama supaya pangkalan data tak terlalu penuh.
  • Optimumkan Struktur Jadual: Pastikan struktur jadual tak terlalu rumit dan ada data yang tak diperlukan.

8. Periksa Transaksi

  • Transaksi Terbuka Lama: Kalau transaksi dibiarkan terbuka lama, dia akan menghalang proses lain. Pastikan semua transaksi ditutup dengan betul.
  • Transaksi Kecil: Kadang-kadang transaksi kecil yang berulang-ulang boleh melambatkan DB. Cuba gabungkan transaksi jadi satu yang lebih besar untuk tingkatkan prestasi.

9. Periksa Replikasi (Jika Ada)

  • Replikasi Perlahan: Kalau DB kita ada replikasi, pastikan replika disegerakkan dengan baik. Kalau ada lag (tertinggal), ia boleh menyebabkan kelambatan.
  • Replikasi Tak Selari: Pastikan data dihantar antara master dan replika dengan cepat tanpa ada delay.

10. Periksa Sumber Luar

  • API atau Sistem Luar: Kadang-kadang pangkalan data berhubung dengan sistem lain atau API. Kalau API atau sistem luar ni lambat, ia boleh mempengaruhi prestasi DB kita.

11. Gunakan Alat Pemantauan

  • Guna alat pemantauan prestasi seperti Prometheus, Grafana, New Relic, atau SolarWinds untuk memantau prestasi pangkalan data dan kenal pasti masalah dengan lebih cepat.

Ringkasan Langkah:

  1. Semak penggunaan CPU, memori, dan cakera.
  2. Periksa query yang sedang dijalankan, dan gunakan EXPLAIN untuk analisis lebih lanjut.
  3. Semak log pangkalan data untuk kesalahan dan query perlahan.
  4. Periksa penguncian dan deadlock yang menghalang proses lain.
  5. Tuning konfigurasi DB untuk optimalkan prestasi.
  6. Pastikan rangkaian stabil dan cukup lebar jalur.
  7. Periksa struktur dan saiz pangkalan data.
  8. Pastikan transaksi ditutup dengan betul.
  9. Kalau guna replikasi, pastikan ia disegerakkan dengan baik.
  10. Pantau sistem secara keseluruhan menggunakan alat pemantauan.

Dengan mengikuti langkah-langkah ni, DBA boleh kenal pasti punca masalah kelambatan pangkalan data dan ambil tindakan untuk memperbaikinya.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *