To zależy.
W dużym sklepie może nie dlatego, że masz tysiące serwerów do opieki i twoje narzędzia są zapewnione. W małym sklepie prawdopodobnie będziesz potrzebować więcej wiedzy, ponieważ masz szerszy zasięg.
Języki skryptowe (na przykład PowerShell, cmd.exe) są zawsze przydatne, jednak do monitorowania, wdrażania itp. Często miałem kilka skryptów Perla, które musiałem utrzymywać (prawie). Następnie są różne pakiety ETL, o których powinieneś wiedzieć.
Mówiąc to, większość DBA (które znam) byłaby w stanie pisać podstawowe rzeczy CLR lub dobrze znać PL / SQL. Dla mnie linią podziału jest wiedza o szerszych wzorcach lub architekturze .net lub Java. Nie potrzebuję go jako programisty DB ani DBA. W ten sam sposób, w jaki .net, PHP lub Java Monkeys nie rozumieją projektu bazy danych, architektury lub kodu tak dobrze jak ja.
Osobiście postanowiłem przestać gonić za najnowszym lub najlepszym językiem klienta lata temu i skupić się na pracy z bazą danych. To nie czyni mnie „nieprogramowcą”: musiałbym się tego nauczyć, gdybym musiał.
Wiem, że DBA nie ma umiejętności programistycznych lub wcale, ale każdy DBA, który kiedykolwiek uważałem za dobry, miał przynajmniej rozsądne umiejętności programowania. Jeden lub dwa, o których myślę, miały znaczne podstawy rozwoju i były dość dobrymi programistami. Jest sprawiedliwy kwota z open-source narzędzi napisane przez ludzi, którzy pracują jako DBA w ich dzień pracy i IIRC facet, który napisał TOAD wykorzystywane do pracy jako DBA.
W zależności od roli, jaką możesz znaleźć, pisząc lub dostrajając zapytania, pisząc skrypty do automatyzacji zadań lub konsultując się przy projektowaniu aplikacji. W niektórych przypadkach możesz mieć na myśli kilka serwerów za pośrednictwem OEM lub innego narzędzia do monitorowania.
Nowoczesne środowiska programistyczne, takie jak .Net lub Java, są na tyle złożone, że deweloper może zrobić karierę właśnie ze specjalizacji. Jako DBA, szczególnie w przestrzeni programistycznej, posiadanie praktycznej znajomości C # lub Java może nie zaszkodzić, ale prawdopodobnie nie poświęcisz dużo czasu na ich kodowanie.
Prawdopodobnie uzyskasz większy przebieg dzięki wszystkim narzędziom skryptowym używanym na Twojej platformie, chociaż wiele systemów udostępnia interfejsy API .Net, Java, COM lub usług sieciowych. Jeśli potrzebujesz zakodować coś na podstawie tych interfejsów API, potrzebujesz co najmniej podstawowej wiedzy praktycznej na temat tego, co może korzystać z tego interfejsu API. Jednak do tego celu zwykle nie są potrzebne zaawansowane umiejętności architektury aplikacji.
Niektórzy programiści będą mieli silne umiejętności obsługi baz danych, ale irracjonalny strach przed bazami danych jest dość powszechny w kręgach programistów. Wielu programistów nigdy tak naprawdę nie przejmuje się paradygmatem „ustawiania operacji”, który leży u podstaw SQL. Jako deweloper DBA możesz sobie poradzić z konsekwencjami tego, i być może będziesz musiał interweniować w kod procedury składowanej, aby rozwiązać problemy z wydajnością.
ETL i oprzyrządowanie otaczające bazę danych mogą również należeć do kompetencji DBA. Widziałem sporo reklamowanych ról DBA, które wydawały się wymagać znacznej ilości prac programistycznych. Będzie to najbardziej powszechne w mniejszych firmach. Jeden z ostatnich plakatów chciał zintegrować niestandardowe wskaźniki z Oracle Enterprise Manager, który ma do tego celu interfejs API wtyczek. Często zdarza się, że pojawiają się takie wymagania, a zasadniczo jedynym sposobem na to jest napisanie kodu kleju.
Istnieje mnóstwo „Facetów z Narzędziami” pracujących w IT i mogą oni wykonać użyteczną pracę pomimo parochalizmu. Jednak gdy brakuje narzędzi, często jedynym sposobem na zrobienie czegoś jest napisanie trochę kodu, aby to zrobić. To tutaj umiejętności programowania oddzielają mężczyzn od chłopców.
źródło
Powiedziałbym, że nie zwykle, ale to nigdy nie boli. SQL Server jest na tyle duży, że nie sądzę, aby jedna osoba mogła opanować cały produkt. Jestem DBA od SQL Server 4.2 i uważam się za eksperta w większości dziedzin, ale przyznaję, że nie byłbym w stanie napisać zapytania MDX bez Google'a na wyciągnięcie ręki na każdym kroku.
Próbuję powiedzieć, że nie możesz być ekspertem we wszystkim. Bycie naprawdę dobrym DBA oznacza, że powinieneś być świetny w T-SQL, ale prawdopodobnie nie jesteś bardzo dobry w .NET, a przynajmniej nie tak skuteczny jak inni, którzy mogą skupić się na .NET.
Powershell jest dobrze znany, podobnie jak tajniki SSIS. Poza tym pozostaw inne języki programowania programistom.
źródło
Z mojego doświadczenia wynika, że chociaż większość DBA ma jakieś doświadczenie programistyczne, wcale nie są wymagane do pisania kodu. Naprawdę dobre DBA, z którymi pracowałem, mają szeroką wiedzę na różne tematy, w tym na temat skryptów powłoki, systemów operacyjnych i specjalistycznej wiedzy na temat aplikacji (np. PeopleSoft).
Miałem instruktora administracji bazami danych w szkole podstawowej, który dał nam listę pytań, na które każdy dobry (Oracle) DBA powinien być w stanie odpowiedzieć: (Po prostu opublikuję niektóre najważniejsze informacje z listy około 40)
(Oracle) DBA musi wiedzieć, że te rzeczy są skuteczne. Większość programistów, których znam (którzy kodują przeciwko Oracle), byłaby trudna do udzielenia odpowiedzi na jedno lub dwa z nich poprawnie.
źródło
Jeśli jesteś DBA, prawdopodobnie pracujesz w dziedzinie wydajności i bezpieczeństwa (między innymi). Może to obejmować profilowanie i pomoc w dostrajaniu aplikacji klienckich, nad którymi pracują programiści. Tak więc z pewnością nie zaszkodzi znajomość języków używanych przez programistów i sposobu komunikacji z serwerem bazy danych. W przypadku SQL Server prawdopodobnie jest to .NET. W przypadku MySQL prawdopodobnie pewna kombinacja PHP lub Java.
Na przykład, jeśli serwer naciska na wątki klienta, pomaga to programistom poinformować, że powinni używać instancji singletonowych dla swoich ObjectDataSources, aby mogli ponownie użyć jednego połączenia z bazą danych. Upewnij się także, że prawidłowo używają sparametryzowanych zapytań, aby ograniczyć wstrzykiwanie SQL. Takie rzeczy.
Nie będziesz zajmował się programowaniem w sensie tworzenia aplikacji klienckich, jeśli jesteś ściśle DBA, ale powinieneś wiedzieć, jak one działają (ogólnie rzecz biorąc).
źródło
Cóż, zobaczmy, Oracle używa PL / SQL, który jest naprawdę podobny do Pascala (języka, który był używany do tworzenia kodu aplikacji na komputery stacjonarne, ale który spadł w ostatnich latach, a programiści przenieśli się do Delphi, które niektórzy poszli stamtąd do .NET), a Oracle obsługuje teraz także Java dla niektórych działań. Ponieważ Oracle DBA musi znać wszystkie aspekty systemu, aby być dobrze docenionym, powiedziałbym, że znajomość Pascala i Javy byłaby wymagana.
TSQL ma zdolność do pisania kodu zarządzanego .NET (CLR) dla niektórych funkcji w Sql Server, dlatego dobry DBA prawdopodobnie musiałby o tym wiedzieć (ale nie zawsze można go używać w starszych wersjach, więc dużo DBA mają tendencję do unikania tego zestawu funkcji z mojego doświadczenia).
To jest ta wielka dwójka i te, do których odwołuje się większość ludzi, kiedy pytają, kiedy pytasz. Nie znam wszystkich innych silników, aby wiedzieć, co robią i nie obsługują, ale wiem, że wiele innych ma także integrację językową oprócz SQL.
źródło
Jestem całkiem przekonany, że tylko duże sklepy z dużymi aplikacjami mają zapotrzebowanie na nieprogramowalne DBA, ponieważ małe sklepy z prostymi bazami danych mogą uciec od dewelopera / DBA typu jack-of-all-trade. Aby DBA stało się mistrzem produktu (Oracle, SQL Server, cokolwiek), musi istnieć zapotrzebowanie na tę wiedzę! DBA musi podlegać złożonym środowiskom i problemom, aby pomóc mu stać się bardziej kompetentnym. Jest to w zasadzie mój rant, ponieważ jestem DBA w małym sklepie i nie robię niczego, co wymaga więcej niż 2 neuronów, myślę, że marnuję czas na tę pracę. Chcę zostać programistą.
źródło