Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menangani crash database (Glassfish/MySQL)?

A) Pastikan Anda mengonfigurasi Glassfish Connection Pool untuk pemulihan/koneksi ulang otomatis

Dalam konfigurasi kumpulan koneksi Glassfish JDBC, tetapkan nilai untuk:

  • Atribut:is-connection-validation-required, validate-atmost-once-period-in-seconds, connection-creation-retry-attempts, connection-validation-method, connection-creation-retry-interval-in-seconds, ping

Konfigurasi Ikan Kaca jdbc-connection -pool Properti
Glassfish Admin - perintah buat-jdbc-connection-pool

Langkah-langkah:

  1. Dengan asumsi Glassfish sedang berjalan (misalnya memulai server di Tab Layanan Netbeans, dengan membuka Server dan mengklik kanan Glassfish), maka Anda harus menjalankan Server Admin Domain
  2. Buka Konsol Admin di browser web:http://localhost:4848 (atau gunakan port apa pun yang Anda tentukan saat menginstal.
  3. Di sebelah kiri, di bawah menu Tugas Umum, buka Sumberdaya -> JDBC dan klik JDBC Connection Pools
  4. Klik NAMA POOL pool koneksi Anda (atau buat yang baru dengan mengklik tombol Baru)
  5. Pilih Tab Lanjutan &Enter:
  6. Validasi Paling Banyak Sekali:(mis. 60) dalam hitungan detik
  7. Upaya Percobaan Ulang Pembuatan:(mis. 3)
  8. Coba Ulang Interval:(misalnya 10) dalam hitungan detik
  9. Validasi Koneksi:(Centang) Diperlukan
  10. Metode Validasi:(mis. auto-commit)
  11. Properti Lanjutan Lainnya Sesuai Keinginan
  12. Pilih Tab Umum &Enter:
  13. Ping (Centang)
  14. Properti Umum Lainnya Sesuai Keinginan

B) Menerapkan Penanganan Kesalahan Aplikasi / Pemantauan &Peringatan DB

  1. Wajib:menjebak kesalahan pengguna fatal "tingkat infrastruktur" dan memperingatkan staf pendukung.

    Buat kelas JMX sederhana untuk mengirim notifikasi &memanggil metodenya saat terjadi kesalahan fatal Kelas JMX MBean yang mengirimkan notifikasi . Anda dapat menggunakan konsol monitor JMX untuk mengamati keadaan server - beberapa dari konsol ini mengirim peringatan email (mis. JManage dan RHQ) dan ada jembatan untuk akses dari HTTP/AJAx atau bahasa lain (mis. Jolokia dapat menggunakan javascript/perl/java API untuk mengakses pemberitahuan JMX).

    Gunakan API Google Kalender untuk mengirim pesan kesalahan untuk mendukung kalender google staf (1 atau 2 menit ke depan). Kemudian konfigurasikan kalender google untuk mengirim pemberitahuan email/sms - akan memberikan peringatan kesalahan langsung ke staf pendukung dalam waktu dekat. Ini tunduk pada batasan penggunaan Google (batas kesopanan 10.000 kueri per hari, jadi pastikan aplikasi Anda tidak super buggy dan gunakan logika untuk membatasi jumlah pesan yang dikirim dalam satu jam/hari/minggu)

  2. Diinginkan:pantau DB (&mungkin server aplikasi) dan peringatkan staf pendukung jika terjadi pemadaman

    • Zabbix open source memiliki pemantauan dan peringatan mySQL bawaan - ringan tetapi memerlukan penyiapan &konfigurasi
    • Hyperic open source memiliki plug-in ekstensi untuk pemantauan mySQL dan peringatan bawaan - berbobot berat, bisa rumit untuk disiapkan &dikonfigurasi
    • Nagois open source adalah default untuk *nix OS - berat, dapat menjadi rumit untuk disiapkan dan dikonfigurasi

    Dalam semua kasus, penyiapan tidak akan terjadi secara instan - sebaiknya diterapkan sebagai proyek mini terpisah &lakukan dengan benar - sebaiknya melibatkan staf pendukung dalam hal ini.

    Jika ini "di luar cakupan", buat monitor sederhana Anda sendiri:

    • Pengatur waktu EJB untuk menjalankan kueri pengujian sederhana terjadwal terhadap DB Anda - jika gagal, kirim peringatan (melalui API JMX/Google Kalender/Java Mail/ SMS gateway). Atau gunakan Quartz open source scheduler untuk melakukan pekerjaan yang sama


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Java PreparedStatement dan ON DUPLICATE KEY UPDATE:bagaimana saya tahu apakah baris dimasukkan atau diperbarui?

  2. Apa kata sandi root default untuk MySQL 5.7?

  3. kerusakan injeksi mysql?

  4. Dapatkan dari database tetapi hanya 30 hari terakhir

  5. Implementasi Fungsi Hashing MySQL