it-swarm.it

Perché l'amministrazione del database è così difficile?

Conosco un sacco di amministratori del database e hanno tutti più di 28-29 anni.

Tutta l'amministrazione del database è così? Voglio dire, si tratta di fare esperienza più di almeno 7-8 anni?

O essere un amministratore di database è così difficile?

92
Soner Gönül

La posizione richiede un ampio spettro di conoscenze che vanno dallo sviluppo all'amministrazione del sistema e persino alla gestione. Un DBA non deve solo conoscere backup, ripristino, operazioni interne, memoria e sicurezza, ma anche come comunicare sia con gli sviluppatori che con la gestione. Un DBA potrebbe fornire una presentazione di alto livello alla gestione, aiutando uno sviluppatore a ottimizzare una query, fornendo spazio su disco per un nuovo sistema e ripristinando i dati dal backup nella stessa ora. Queste responsabilità richiedono un patrimonio di conoscenze con poche sovrapposizioni.

Le conseguenze del fallimento sono generalmente maggiori per un DBA di uno sviluppatore. I DBA supportano spesso dozzine, persino centinaia di applicazioni e sistemi diversi, la maggior parte dei quali sono fondamentali per il successo dell'azienda. Una violazione della sicurezza, un errore di recupero o un problema di prestazioni potrebbe avere conseguenze di vasta portata e devastanti. Ciò richiede un livello di conoscenza ed esperienza che non può essere acquisito in breve tempo.

Migliore è il ruolo di un DBA, minore è la visibilità che ha. Un DBA con un database sicuro, recuperabile, disponibile e ben funzionante non sarà riconosciuto. I DBA vengono notati in caso di problemi. Non solo vengono notati quando i loro problemi vengono autoinflitti, ma vengono anche biasimati quando il database ha problemi a causa della codifica scadente, di un'impostazione di rete errata o di una memoria configurata in modo errato.


Sono passato dallo sviluppatore al DBA quando avevo 29 anni. Per me le cose che rendono difficile essere un DBA lo rendono anche gratificante. Mi piace assorbire e utilizzare un ampio spettro di conoscenze e la maggiore opportunità di fallimento rende l'evitamento ancora più significativo se gli altri lo vedono o no.

141
Leigh Riffel

Diventare un DBA richiede in realtà una grande esperienza, ma fondamentalmente può provenire solo da quattro percorsi diversi:

  1. Essere uno sviluppatore e fare seguito a un DBA
  2. Essere uno sviluppatore ed essere redatto come DBA
  3. Formazione diretta da college/scuola commerciale per diventare un DBA
  4. Essere un Amministratore di sistema e fare seguito o fare il doppio dovere come DBA

Essere uno sviluppatore e fare il seguito a un DBA

In un'altra domanda che è stata posta su questo sito, In che modo i DBA potrebbero essere più "programmabili" , ho menzionato che sono stato uno sviluppatore per 16 anni che ha lavorato con i DBA. Avendo lavorato con loro, mi sono reso conto che, nella misura in cui la loro esperienza includeva la teoria dei database, la matematica discreta e l'esperienza di programmazione, a tal punto potevano vedere come un database avrebbe dovuto funzionare e come una query dovrebbe essere eseguita.

Avere un DBA con quelle cose nel loro background mi ha fatto sentire che ero ancora al college imparando da qualche professore a contratto, ma che conosceva davvero le loro cose. Fintanto che il DBA era disposto a condividere ciò che sapevano, senza impadronirsi di te, potevano effettivamente diventare il tuo mentore in termini di sviluppo di istruzioni SQL (SQL è, di per sé, un contesto- Linguaggio di programmazione sensibile) il più efficiente possibile. Certo, ci sono altre parti banali, come l'esecuzione di installazioni, il backup, l'esecuzione di aggiornamenti del software, il monitoraggio delle metriche delle prestazioni, la generazione di report e così via. Ma come sviluppatore, se ti concentri sui database e sull'SQL che viene eseguito su tali database, col tempo diventerai così esperto in SQL che sarà di seconda natura e puoi concentrarti sullo sviluppo dell'applicazione.

Le esigenze di uno sviluppatore possono essere faticose, ma anche il DBA. Lo sviluppatore che passa volontariamente al ruolo di un DBA sposta l'attenzione dallo sviluppo e dalla programmazione alle cose banali che ho menzionato prima. Alla luce di ciò, il DBA che lavora a stretto contatto con i programmatori crea l'opportunità per il DBA di fornire contributi creativi a qualsiasi progetto, rendendo così il ruolo di un DBA molto più interessante.

Essere uno sviluppatore ed essere redatto come DBA

Per la maggior parte degli sviluppatori che non vedono altro che lo sviluppo e la programmazione per il resto della loro vita, questo potrebbe essere come scegliere di essere nel reality show Survivor o nel game show Wipeout. Il nuovo DBA trascorre il suo tempo interagendo con quella Black Box (conosciuta da noi semplicemente come database) che hanno contattato per i dati nel corso degli anni.

Il nuovo DBA ora può creare tabelle e indici propri. Ciò potrebbe assomigliare al fatto che un giapponese Hibachi cucina in un ristorante italiano. Il cuoco può montare qualsiasi cosa, ma deve rendersi conto che ci sono nuove ricette, utensili da cucina, posate, carni, spezie, verdure e altri oggetti banali su cui adattarsi (servizi igienico-sanitari, inventario, ora di inizio, ore di lavoro, ecc.). Questo non è solo un momento di transizione, ma anche un momento per superare una grande curva di apprendimento. Un nuovo livello di esperienza deve essere appreso e sviluppato nonostante la cucina giapponese esperta nel corso degli anni. In questo aspetto, gli sviluppatori devono rieducarsi a pensare come un DBA.

Formazione diretta dal college/scuola commerciale per diventare un DBA

Questo è di gran lunga il modo più letale per diventare un DBA. Questo è anche il percorso più raro - in realtà, questo è praticamente inaudito. Ora stiamo parlando di permettere a qualcuno di McDonald's o Burger King di entrare nello stesso ristorante italiano.

Sono coinvolte tre curve di apprendimento:

  1. Applicando le competenze di college/trade school al ruolo DBA,
  2. Interagendo con il particolare RDBMS (PostgreSQL, Oracle, MySQL, DB2, Sybase, Ingres) e,
  3. Interagire con gli sviluppatori ( un futuro DBA che apprende abilità sociali decenti direttamente dalla scuola? Sì, giusto !).

In questo, gli sviluppatori avranno il sopravvento sui DBA per anni. I DBA devono imparare ad adattarsi rapidamente alle esigenze degli sviluppatori nei loro primi anni come DBA. Forse un DBA potrebbe ottenere un salario iniziale decente, ma è più difficile crescere senza svilupparsi in queste tre aree di apprendimento.

Essere un amministratore di sistema e fare seguito o svolgere il doppio dovere come DBA

Come ex sviluppatore e ora DBA, una cosa che non deve essere data per scontata è il ruolo di Amministratore di sistema.

Avere il ruolo di SysAdmin/DBA è un po 'impressionante per me. Nella società di hosting del mio datore di lavoro, abbiamo un ragazzo che è un amministratore di sistema/DBA (SCMDBA). È così sommerso da progetti infrastrutturali e dai suoi concerti MySQL interni. Non lo invidio, lo raccomando. Onestamente, poiché la vera mente di un SysAdmin/DBA mi è estranea, Lascio alla discrezione di SysAdmin/DBA di aggiornare questo paragrafo (o sostituirlo completamente) per descrivere questo percorso .

Conclusione

Indipendentemente da quale percorso scegliate, il ruolo di un DBA può essere distinto o disgustoso, a seconda di quanto siate disposti a essere guidati (o torturati) all'inizio e quanto siete disposti a lavorare con altri nel tempo. Solo allora si può dire che si divertono ad essere un DBA.

A proposito, è proprio così che ho sperimentato i primi due percorsi DBA a partire dall'agosto 2004 all'età di 39 anni. I due anni di esperienza che ho avuto nel ruolo di DBA redatto hanno reso la transizione a un DBA a tempo pieno molto piacevole e confortevole .

Il mio consiglio ai DBA dai 28 ai 29 anni? Sii bravo a lavorare con le persone come lo sei con RDBMS. Se cresci in entrambe le aree, puoi farlo diventare un DBA per gli anni a venire.

57
RolandoMySQLDBA

L'amministrazione del database è difficile a causa di due motivi

Feedback lento Se si prende una decisione sbagliata nel ruolo di un architetto del software, di solito ci vuole più tempo per ottenere un feedback negativo rispetto a un programmatore. Il programmatore può spesso venire a conoscenza dell'errore durante la compilazione o durante l'esecuzione dei test, il che significa che il ciclo di apprendimento è piuttosto veloce. Un amministratore di database che commette un errore durante la progettazione di un database potrebbe ricevere feedback quando scopre come gli utenti finali utilizzeranno effettivamente il software. Ciò significa che potrebbero essere necessari anni per ottenere il feedback che la progettazione del database era difettosa e deve essere rifatta. Pertanto, ci vogliono anni per acquisire esperienza, anziché minuti (a volte) per i programmatori.

errori costosi Questo è anche il motivo per cui gli amministratori delegati di grandi aziende hanno generalmente 50 anni.

37
David

È abbastanza facile essere un cattivo DBA

Scherzi a parte, un DBA di solito ha una responsabilità speciale per qualcosa che è spesso fondamentale per il successo o il fallimento di un'azienda: i suoi dati

Se gestisci un'azienda, allora potresti essere desideroso di assumere persone esperte competenti in quel ruolo

Non penso che sia una questione di "più facile" o "più difficile" - solo una questione di quanto siano preziosi i tuoi dati: non è intrinsecamente più difficile mettere un satellite nello spazio di una persona, ma controllerai le tue somme molto di più per quest'ultimo

A mio avviso, essere un amministratore di database è facile ... fino a quando non si rompe qualcosa che minaccia la società e l'onere di riparare e ripristinare qualsiasi cosa sia sulle tue spalle.

Essere un amministratore di database (o amministratore di rete o di sistema) è una posizione che richiede un certo livello di maturità. Ci vuole qualcuno che lavori bene sotto pressione. Questo non vuol dire che non ci sono giovani là fuori in grado di gestirlo con le competenze necessarie.

Inoltre, è facile imparare i comandi da un libro per eseguire il backup/ripristinare un database, ottimizzare la configurazione del server, ecc. Ma l'esperienza vince quando si riceve l'avviso che il database è inattivo.

18
Derek Downey

Conosco molti amministratori di database e hanno tutti più di 28-29 anni. Tutta l'amministrazione del database è così?

I programmatori più bravi e solidi che conosco hanno anche almeno 25 anni. Immagino che ci sia un fattore correlato all'età + esperienza = buon programmatore. ;)

Voglio dire, si tratta di fare esperienza più di almeno 7-8 anni? O essere un amministratore di database è così difficile? Cosa ne pensi?

Essere un amministratore di database non è facile, se è questo che intendi. Ci sono molte cose che dovresti sapere come un dba. Ciò significa anche scuola e significa tutelare qualche anno sotto un'altra persona. Ricorda che i database sono logici fissi, che quasi nessuno va a scuola abbastanza a lungo da imparare, che quindi nessuno conosce. Set-logic condivide alcune regole con l'algebra, ma i motori (MSSQL, Oracle, ecc.) Sono essi stessi animali distorti dell'implementazione di tali regole, quindi non solo devi capire la matematica dietro i database, devi capire l'implementazione che corri sopra. Ciò non conta nemmeno conoscendo il tuo linguaggio di scripting preferito (PL/SQL, TSQL, ecc.).

Quindi considera che come dba sarai responsabile di garantire che i dati aziendali più critici vengano spesso affidati alle tue mani. Devi aver superato le parti peggiori del "fare errori stupidi" e devi aver imparato un po 'di autocontrollo. La maggior parte delle persone di 21-23 anni non l'hanno ancora imparato. Alcuni di noi a 30 anni non lo hanno ancora fatto.

OT: Questo è il motivo per cui dico che le persone non sanno davvero nulla fino a quando non hanno almeno 40 anni, e ormai sono considerate oltre la collina, quando in realtà stanno solo raggiungendo il loro passo. (detto come qualcuno che ha 31 anni)

18
jcolebrand

Non penso che essere un DBA sia difficile. Diventare uno era però.

16
user1875

Volevo rispondere per aggiungere un altro aspetto non ben discusso in precedenza: il campo visivo.

Esistono un'ampia varietà di ruoli per gli sviluppatori e alcuni (ad esempio lo sviluppo di driver di dispositivo o lo sviluppo di scheduler del sistema operativo) richiedono un campo visivo molto ristretto e la capacità di approfondire un piccolo problema e guardarlo da un punto di vista puramente tecnico . Esistono altri campi che richiedono campi di visione molto ampi ma non così approfonditi dal punto di vista tecnico (sviluppo di applicazioni aziendali con un ERP a scelta).

I database sono unici perché per farli bene, devi essere in grado di spostarti tra queste modalità in modo rapido e senza soluzione di continuità. I database sono motori matematici ma sono motori matematici che si adattano agli ambienti aziendali in modi molto complessi. Pertanto si deve essere in grado sia di affrontare il problema matematico come problema matematico sia di chiedersi come si adatta a tutto il resto.

Quando guardi gli ingegneri di rete senior o gli amministratori di sistema senior, sono la corrispondenza più vicina a un DBA senior in quest'area (anche se ogni campo è abbastanza diverso-- un buon amministratore di sistema senior richiede un campo visivo ancora più ampio di un buon dba, e i bravi ingegneri di rete richiedono un campo più profondo).

In altre parole, per essere un buon DBA, devi essere in grado di spostarti tra requisiti aziendali di alto livello e comprensioni di livello molto basso relative all'effettivo spazio di archiviazione su disco e oltre alla matematica relazionale e alle questioni puramente tecniche di progettazione, il tutto senza qualsiasi vera transizione (e probabilmente nel corso della valutazione di una decisione specifica).

Opero come DBA e sviluppatore. I due ruoli sono estremamente complementari, ma prima sono un DBA e se vedessi le librerie che ho scritto, sarebbe ovvio. Ma la ragione per cui sono complementari è che dal lato dello sviluppo, riesco a interfacciarmi direttamente con gli utenti finali del software e quindi sono costantemente spinto per quanto riguarda la crescita della mia visione, mentre sul lato db riesco a mettermi alla prova sulla profondità.

14
Chris Travers

C'è un altro percorso, leggermente diverso da quelli elencati.

Inizia come sviluppatore, quindi diventa un progettista di database, quindi diventa un DBA. Questo percorso era più diffuso circa trenta anni fa, quando i database iniziarono a sorpassare le applicazioni basate su file alla grande, e le persone con esperienza nel database erano poche e lontane tra

PS: Quando ero un ex programmatore diventato DBA, i programmatori mi chiedevano "non è noioso il lavoro DBA?"

La mia risposta: "è noioso solo quando lo fai bene!". :)

8
Walter Mitty

Sono piuttosto all'inizio del mio viaggio DBA, ma qui ci sono alcuni dei motivi per cui le persone trovano difficile questo lavoro ... È difficile perché:

  • hai molte responsabilità: le persone possono andare e venire in un'azienda, ma per parecchi di loro, la loro risorsa più importante sono i loro dati. Ne sei responsabile e ne hai tutti i poteri. Come dice il proverbio, con grandi poteri derivano grandi responsabilità. Si nascondono errori molto costosi.
  • devi imparare e continuare ad imparare: lo vedo come un bonus, ma non tutte le persone sono disposte a dedicare del tempo per mantenere aggiornate le proprie conoscenze.
  • può richiedere molto tempo: le cose si romperanno nel mezzo della notte, sarai pronto?
  • dovrai spesso correggere errori di altre persone: e per lo più non otterrai molto credito per tutto il tuo buon lavoro. Non aver paura di rispolverare le abilità della tua gente.

Brad Mc Gehee ha scritto n libro al riguardo, "Come diventare un DBA eccezionale". Vale la pena leggere se si intende approfondire la domanda.

In bocca al lupo!

7
KookieMonster

Sono diventato un dba all'età di 25 anni. Mi ci sono voluti 6 mesi da quando ho iniziato a studiare per ottenere la certificazione e 2 mesi dopo ho avuto un lavoro. Penso che la determinazione abbia sicuramente un ruolo importante. Per me non è stato difficile ottenere il lavoro. Tutto ciò che è stato necessario è la forza di volontà di studiare e dimostrare che ero in grado di apprendere ciò che mi è mai stato messo davanti.

Dirò che tutto ciò che avevo era una laurea in psicologia e un background di help desk. Quando ho ricevuto il mio lavoro come DBA di Oracle Apps, ho immediatamente pensato a OMG, tutte le cose per cui ho studiato per diventare un DBA CORE non mi hanno aiutato un po '. Ricordo di essermi sentito estremamente sopraffatto. Ho dovuto ricordarmi ogni giorno che posso imparare questo e 2 anni dopo ho acquisito molte più conoscenze.

Quello che sto dicendo è che essere un DBA non è difficile, non è affatto difficile, ma imparare tutto sul lavoro e fuori dal lavoro, che dovremmo sapere come i precedenti DBA hanno già detto, richiede tempo e molta diligenza. Ho trovato a 27 persone la mia età o meno non ha la diligenza né il desiderio di voler imparare un così ampio spettro di tecnologie. Ma adoro il mio lavoro come DBA di Oracle Apps e non vedo l'ora di fare qualsiasi altra cosa che mi verrà costantemente lanciata per imparare. Puoi farlo, se ci pensi, non importa che età hai!

5
oracledbagirl

Essere un DBA significa anche che sei proattivo anziché reattivo. Devi essere in grado di immaginare cosa riserva il futuro e pianificare di conseguenza. Ciò implica lavorare sodo ... una volta, molte, molte volte, e se lo fai nel modo giusto, la ricompensa è una completa mancanza di riconoscimento del nome. :-) Devi anche avere la possibilità di dire "no" alle persone (capi inclusi) e comunicare obiettivamente, in modo efficace i tuoi motivi per cui il tuo pubblico può capire. Devi essere prudente e prendere decisioni razionali in situazioni di alta pressione. Devi essere in grado di possedere i tuoi errori rapidamente e non lasciarti sbarrare la schermata blu, ma piuttosto, cambiare efficacemente gli ingranaggi da "Non posso credere di averlo appena fatto" a "Okay, qual è il modo migliore per risolvere questo problema". Devi essere in grado di suggerire con tatto miglioramenti a un codice degli sviluppatori in modo da non insultare o offendere, e questa è un'arte coltivata dall'esperienza ma dominata da pochi.

5
stacylaray

Come qualcuno che si considera principalmente un amministratore di sistema e, in secondo luogo, un DBA accidentale, penso che parte di esso dipenda dalla quantità di conoscenza necessaria per resistere da soli e fare il lavoro, o forse ancora più importante, per capire il lavoro.

La vecchia certificazione MCDBA lo riassume abbastanza bene, credo. Richiedeva il superamento di quattro esami, un esame SysAdmin, un esame di infrastruttura di rete, un esame di sviluppo del database e un esame di amministrazione SQL. Si tratta di una gamma abbastanza ampia di argomenti, quindi realisticamente è probabile che tu ci arrivi prima tramite uno di essi. Direi che gran parte dell'amministrazione SQL si trova sulle spalle delle altre tre, quindi la maggior parte delle persone ci arriva inizialmente attraverso una di quelle rotte. Ad esempio un amministratore di sistema che gestisce i backup SQL (la mia prima incursione in SQL molti anni fa) o uno sviluppatore che ha progettato il database per il codice che stanno scrivendo. Iniziando non saprai tutto, ma avrai almeno il fondamento di esso, ad esempio i sistemi su cui viene eseguito SQL e come funzionano le autorizzazioni, oppure i metodi di programmazione utilizzati per parlare con il database e da lì può imparare il resto.

È difficile giudicare se essere un DBA è davvero ciò che vuoi fare fino a quando non lo fai, ma attraverso il percorso sopra riportato le persone sono in grado di costruirlo gradualmente. Potresti amarlo e renderlo il tuo obiettivo di carriera, o scoprire che non fa per te e restare fedele al tuo precedente percorso di carriera, il tutto senza fare un grande salto nell'ignoto. Ma ciò richiede tempo e si adatta alla tendenza di DBA a essere "più saggia negli anni" nel settore.

Per essere un buon DBA hai anche bisogno della fiducia e della maturità che tende a venire con l'età. Altri hanno elencato altri aspetti di questo, ma aggiungerei avere la fiducia di dire di no e resistere, temprato con l'esperienza di sapere quando è appropriato.

Infine, penso che essere un buon DBA richiede una certa mentalità, ed è difficile sapere se ce l'hai fino a quando non sei stato in trincea. Avere un occhio di riguardo per i dettagli, la volontà di pianificare in anticipo, la capacità di guardare al quadro generale e di non aver paura di documentare il proprio lavoro sono aspetti importanti del mantenimento di un sistema stabile. Alcuni amministratori di sistema e sviluppatori sono così e possono facilmente fare la transizione, mentre altri potrebbero scoprire che mentre il loro approccio ha valore nel loro lavoro attuale, come DBA faranno fatica e troveranno queste cose un lavoro ingrato e non apprezzeranno il lavoro.

4
Keith Langmead

Penso che la parte più difficile di almeno diventare un amministratore di database piuttosto involontario sia il fatto che devi sopportare qualsiasi cosa accada ai database dell'organizzazione specifica su cui ti è capitato di imbatterti.

Nella mia esperienza, il mio primo shock è stato un lunedì mattina quando il server del database si è bloccato a causa di un errore apparentemente hardware, tuttavia ero sospettato di aver fatto qualcosa di sbagliato.

Potete immaginare che qualunque cosa uno abbia mai appreso o esercitato durante la propria vita debba essere applicato per far funzionare di nuovo quella cosa. Quindi, ovviamente, puoi creare un clone e persino eseguire il backup flash dell'intera faccenda - stiamo parlando qui di un piccolo server di database che indirizza le cose verso altre reti di computer attraverso i server di collegamento. Tuttavia, la responsabilità sembra tremenda in quei momenti.

Come sviluppatore di software o come tester di software, anche la responsabilità è grande, ma non ho mai vissuto momenti così difficili. Posso immaginare che il motivo risieda nel fatto che ognuno di essi tesse solo un po 'della ragnatela del mondo dell'informatica.

Se mai diventassi un amministratore di database, aggiornerò su tutto ciò che ho scritto ora qui.

E sì, ora ho 38 + 1/2 anni.

3
user62547

Come la maggior parte delle abilità, imparare ad essere un dba richiede tempo. Diventare un buono dba richiede più tempo. Più leggi e impari, più conoscenze puoi applicare.

Un altro percorso per diventare un dba è la scrittura di report o come esperto di applicazioni. Più tempo passi con le mani su SQL, più imparerai come funzionano i dbs. Diventare competenti nelle query SQL fornirà un buon punto di partenza per diventare un dba.

1