In quali aree delle conoscenze di un DBA dovrebbe approfondire uno sviluppatore? [chiuso]


11

Devo ammettere che la domanda è piuttosto ampia, quindi proverò a restringerla un po '. Nella nostra azienda siamo 3-4 sviluppatori e abbiamo alcune installazioni basate su SQL Server in esecuzione nei siti dei nostri clienti (dimensioni del database fino a 100 GB, fino a 100 utenti simultanei, applicazioni intranet). Nessuno di noi ha una buona esperienza nella gestione / manutenzione / amministrazione (qualunque sia) dei database. I clienti nemmeno tanto. Funziona bene fino ad ora, ma non posso dire con certezza se è perché stiamo facendo tutto bene o se non abbiamo semplicemente colpito aree / situazioni in cui non siamo competenti.

Quindi, sto cercando le cose essenziali che devi sapere quando esegui un database dal punto di vista di un DBA . Conosci i fatti concreti e sai cosa conta di più nel tuo lavoro quotidiano.

In quali materie dovrei acquisire conoscenze più approfondite, di cosa dovrei aver sentito parlare e di cosa non posso occuparmi fino a quando non lo affronterò per la prima volta?

Sono a conoscenza della domanda Ingegneri del software e DBA , ma non è proprio quello che stavo cercando. Ci sono anche molti libri in giro, ma mi piacerebbe ascoltarlo da quelli con esperienza pratica.


Alcune buone intuizioni possono essere ottenute da dba.stackexchange.com/questions/2905/…
Andrew Bickerton,

Risposte:


5

Sono propenso a concordare con @Catcall, il recupero del database dovrebbe essere in cima alla lista. Le implicazioni di entrambe le opzioni di backup e ripristino sono in genere le più poco comprese al di fuori di un team DBA e hanno maggiori probabilità di provocare un disastro.

  • Assicurarsi di aver definito e concordato (dalla gestione tecnica e non tecnica) RPO (Recovery Point Objective) e RTO (Recovery Time Objective) per tutti i database e i sistemi.
  • Documentare le procedure di backup e ripristino nella misura in cui potrebbero essere seguite da personale non tecnico.
  • Assicurarsi che tutta la documentazione sia conservata in formato cartaceo ed elettronico, sia in loco che fuori sede. Un runbook di ripristino di emergenza archiviato sulla rete locale non sarà molto utile se gli edifici in fiamme.
  • Metti alla prova ogni aspetto delle procedure di recupero, spesso. I backup sono irrilevanti, è importante ripristinare.

Successivamente, da una prospettiva agnostica del database, è una comprensione di ciò che un server di database è costruito per fare; fornire atomicità, coerenza, isolamento e durata alle transazioni e ai dati. Comunemente frainteso, spesso causa di problemi di prestazioni e fonte primaria di incoerenza dei dati.

Per la piattaforma prescelta, scopri come viene implementata la conformità ACID. Cerca argomenti come ciò che fa il registro delle transazioni , cos'è la registrazione in anticipo , livelli di isolamento e interni di archiviazione . La comprensione degli aspetti chiave degli interni del database rende altri aspetti del lavoro DBA, ad esempio il tuning delle prestazioni e la gestione delle risorse, molto più facili da comprendere.


5

Le due cose con cui mi occupo ogni giorno.

  1. Ripristino di emergenza.

  2. Ottimizzazione delle prestazioni. (Sia per le singole query, sia per i dbms stessi.)

Il tuo piano di ripristino di emergenza deve essere

  • script,
  • testato e
  • praticata.

Sto usando lo script nel senso di qualcosa che un attore avrebbe seguito, non qualcosa di scritto in Python. Dovrebbe dire a tutti coloro che devono essere coinvolti esattamente cosa fare. (E spesso, anche esattamente cosa dire.)

L'ottimizzazione delle prestazioni per le query include la comprensione di chiavi, indici e normalizzazione. (Spesso i problemi di "ottimizzazione" sono in realtà problemi strutturali.)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.