Bagian mana dari pengetahuan DBA yang harus dipelajari pengembang? [Tutup]

11

Saya harus mengakui pertanyaannya cukup luas, jadi saya akan mencoba mempersempitnya sedikit. Di perusahaan kami, kami adalah 3-4 pengembang dan memiliki beberapa instalasi berbasis SQL Server yang berjalan di situs pelanggan kami (ukuran basis data hingga 100GB, hingga 100 pengguna bersamaan, aplikasi intranet). Tidak seorang pun di antara kita memiliki pengalaman nyata yang baik dalam menjalankan / memelihara / mengelola basis data (apa pun). Pelanggan bahkan tidak sebanyak itu. Ini berfungsi dengan baik sampai sekarang, tetapi saya tidak bisa memastikan apakah itu karena kami melakukan semuanya dengan benar atau jika kami tidak mengenai area / situasi yang tidak kami fahami.

Jadi, saya mencari hal-hal penting yang perlu Anda ketahui ketika menjalankan database dari sudut pandang DBA . Anda tahu fakta-fakta sulit dan tahu apa yang paling penting dalam pekerjaan Anda sehari-hari.

Di mana mata pelajaran yang harus saya kumpulkan pengetahuan yang lebih dalam, apa yang harus saya dengar dan apa yang bisa saya pedulikan sampai saya hadapi untuk pertama kalinya?

Saya mengetahui pertanyaan Insinyur Perangkat Lunak dan DBA , tetapi itu tidak cukup seperti yang saya cari. Ada juga banyak buku di sekitar, tetapi saya ingin mendengarnya dari mereka yang memiliki pengalaman praktis.

MicSim
sumber
Beberapa wawasan yang bagus dapat diperoleh dari dba.stackexchange.com/questions/2905/…
Andrew Bickerton

Jawaban:

5

Saya cenderung setuju dengan @Catcall, pemulihan basis data harus menjadi yang teratas dalam daftar. Implikasi dari opsi pencadangan dan pemulihan biasanya yang paling tidak dipahami di luar tim DBA dan paling mungkin menyebabkan bencana.

  • Pastikan Anda telah menetapkan dan menyetujui (oleh manajemen teknis dan non-teknis) RPO (Recovery Point Objective) dan RTO (Recovery Time Objective) untuk semua database dan sistem.
  • Dokumentasikan prosedur pencadangan dan pemulihan sejauh mereka dapat diikuti oleh staf non-teknis.
  • Pastikan semua dokumentasi disimpan dalam bentuk cetak maupun elektronik, baik di dalam maupun di luar kantor. Runbook pemulihan bencana yang disimpan di jaringan lokal tidak akan banyak digunakan jika bangunan terbakar.
  • Tes setiap aspek prosedur pemulihan, sering. Cadangan tidak relevan, itu memulihkan masalah itu.

Selanjutnya, dari perspektif agnostik basis data, adalah pemahaman tentang apa yang harus dilakukan oleh server basis data; memberikan Atomicity, Konsistensi, Isolasi, dan Daya Tahan untuk transaksi dan data Anda. Umumnya disalahpahami, seringkali menjadi penyebab masalah kinerja dan sumber utama ketidakkonsistenan data.

Untuk platform yang Anda pilih, masuk ke internal tentang bagaimana kepatuhan ACID diimplementasikan. Cari topik-topik seperti apa yang dilakukan oleh log transaksi , apa yang dimaksud dengan logging di depan , tingkat isolasi dan internal penyimpanan . Memahami aspek-aspek kunci internal database membuat aspek-aspek lain dari pekerjaan DBA, penyesuaian kinerja dan manajemen sumber daya misalnya, jauh lebih mudah untuk dipahami.

Mark Storey-Smith
sumber
5

Dua hal yang saya tangani setiap hari.

  1. Pemulihan bencana.

  2. Penyesuaian kinerja. (Baik untuk permintaan individu, dan untuk dbms itu sendiri.)

Rencana pemulihan bencana Anda perlu

  • ditulis,
  • diuji, dan
  • berlatih.

Saya menggunakan skrip dalam arti sesuatu yang akan diikuti aktor, bukan sesuatu yang ditulis dengan Python. Ini harus memberi tahu semua orang yang perlu terlibat apa yang harus dilakukan. (Dan seringkali, apa yang harus dikatakan, juga.)

Penyesuaian kinerja untuk kueri mencakup kunci pemahaman, indeks, dan normalisasi. (Seringkali masalah "penyetelan" sebenarnya adalah masalah struktural.)

Mike Sherrill 'Cat Recall'
sumber