Pemeliharaan database MySQL yang tepat

8

Saya harap ini bukan pertanyaan yang terlalu luas. Saya yakin itu akan dapat membantu saya dan semua noob dba masa depan yang tersandung padanya.

Saya adalah admin sistem yang dimasukkan ke dalam daftar DBA (karena saya membantu CEO dengan pandangannya, jadi saya jelas dapat mengelola basis data kami!). Bukan server database yang besar atau sibuk ... ukuran mysqldump sekitar 6GB dan kami butuh 5 tahun untuk mendapatkannya sebesar itu. Munin melaporkan bahwa kami rata-rata 40-60 pertanyaan per detik pada jam sibuk kami.

Bos saya membayar saya untuk mengambil kursus admin sistem Oracle University, tetapi setelah melalui itu, itu hanya menjelaskan bagian-bagian berbeda dari server mysql, apa yang dilakukan dan bagaimana mereka melakukannya. Tapi itu tidak mendalam dan Anda tentu saja tidak keluar dari kursus itu DBA.

Jadi seperti DBA saat ini, apa yang harus saya lakukan untuk memastikan semuanya berjalan lancar? Apakah ada tugas perawatan harian yang bisa saya lakukan? Apakah ada metrik tertentu yang harus saya periksa? Atau dengan kata lain, seperti DBA, apa yang ANDA lakukan setiap hari untuk menjaga semuanya dalam kondisi yang baik?

Jika itu akan membantu menyesuaikan sedikit jawabannya, berikut adalah beberapa yang spesifik. Kami memiliki 171 tabel, semua kecuali 3 adalah innodb, yang lain adalah myisam. Kami memiliki replikasi Master / Slave yang diatur antara pusat data utama kami dan situs pemulihan bencana kami, menggunakan RBR. Versi 5.5.28.

Apa yang dapat saya?

Safado
sumber

Jawaban:

10

Hal pertama yang pertama. Pastikan Anda telah mengembangkan dan mendokumentasikan strategi pemulihan bencana (DR). Luangkan waktu memikirkan cara-cara agar kesalahan bisa terjadi, bagaimana memulihkannya, dan mengujinya untuk mengetahui berapa lama waktu yang dibutuhkan, terutama saat memulihkan dari cadangan. Beberapa ide umum:

  • mysql mogok, tetapi server baik-baik saja: perbaiki kesalahan dan mulai mysql.
  • MySQL harus dipulihkan dari cadangan: pulihkan dari cadangan dan mulai mysql <- uji ini sebelum menjadi sesuatu yang harus Anda lakukan dalam keadaan darurat.
  • Server mati dan harus diganti: dapatkan server pengganti di tempat dan pulihkan dari cadangan.

Setelah Anda memiliki strategi DR dan metode yang dikembangkan untuk menguji cadangan Anda di tempat, maka Anda dapat pindah ke tugas yang lebih berkala:

  • uji proses pemulihan Anda secara teratur. Hal ini memastikan keakraban dalam kasus ketika itu diperlukan.
  • memastikan indeks yang tepat. Jika Anda menggunakan server percona, Anda bisa mendapatkan statistik indeks mana yang tidak digunakan setelah waktu tertentu (sekitar sebulan)
  • ulasan permintaan lambat. Aktifkan log kueri lambat dengan waktu kueri panjang 1 detik atau lebih dan gunakan pt-query-digest untuk meninjau mereka secara mingguan / bulanan.
  • baca http://www.mysqlperformanceblog.com/ dan blog dari http://planet.mysql.com/ .. pada basis data sekecil ini, Anda jarang memiliki banyak masalah kinerja yang menarik. Jadi, Anda akan punya banyak waktu untuk membaca tentang isu-isu menarik dan cara mengatasinya.
Derek Downey
sumber
Terima kasih atas tautan dan sarannya. Ini memberi saya titik awal yang baik.
Safado
1

Bagaimana dengan cadangan untuk data dan program? Tinjau perangkat keras dan penyimpanan tempat MySQL duduk Tinjau semua log setiap hari atau tepat waktu Ruang disk bahkan dengan ekstensi otomatis - harus diawasi Pastikan satu orang melakukan pekerjaan DBA (organisasi) Keamanan - tinjau kebijakan untuk tipe data dan siapa yang mengaksesnya. Selalu perbarui database Anda - dengan alasan Siapkan untuk berbagai bencana dan pemulihan dari bencana tersebut

/ Mark J. Richards

Mark J. Richards
sumber