Es hängt davon ab, ob.
In einem großen Geschäft vielleicht nicht, weil Sie Tausende von Servern haben, um die Sie sich kümmern müssen und Ihre Werkzeuge zur Verfügung gestellt werden. In einem kleinen Laden brauchen Sie wahrscheinlich mehr Wissen, weil Sie einen breiteren Aufgabenbereich haben.
Skriptsprachen (z. B. PowerShell, cmd.exe) sind immer nützlich, obwohl sie zum Überwachen, Bereitstellen usw. verwendet werden. Ich hatte häufig einige Perl-Skripts, die ich warten musste (ungefähr). Dann gibt es die verschiedenen ETL-Pakete, von denen Sie erwarten, dass Sie sie kennen.
Die meisten DBAs (die ich kenne) sind in der Lage, grundlegende CLR-Inhalte zu schreiben oder PL / SQL gut zu kennen. Die Trennlinie besteht für mich darin, die umfassenderen Muster oder die Architektur von .net oder Java zu kennen. Ich brauche es nicht als DB-Entwickler oder DBA. Genauso wenig wie ich .net oder PHP oder Java Monkeys mit Datenbankdesign, -architektur oder -code verstehe.
Persönlich habe ich mich vor Jahren entschieden, nicht mehr nach der neuesten oder besten Client-Sprache zu suchen und mich auf die Datenbankarbeit zu konzentrieren. Das macht mich nicht zum "Nicht-Programmierer": Ich müsste es noch einmal lernen, wenn ich muss.
Ich habe gewusst, dass DBAs mit wenig oder gar keinen Programmierkenntnissen davonkommen, aber jeder DBA, den ich jemals für gut gehalten habe, hatte zumindest vernünftige Programmierkenntnisse. Ein oder zwei, die ich mir vorstellen kann, hatten einen beachtlichen Entwicklungshintergrund und waren selbst ziemlich gute Entwickler. Es gibt einen fairen Betrag von Open-Source - Werkzeugen von Menschen , die als DBAs in ihrem Job arbeiten und IIRC der Typ, schrieb TOAD an die Arbeit als DBA verwendet.
Abhängig von der Rolle, in der Sie möglicherweise Abfragen schreiben oder optimieren, Skripts zur Automatisierung von Aufgaben schreiben oder sich über das Anwendungsdesign beraten lassen. In einigen Fällen kümmern Sie sich möglicherweise nur um eine Reihe von Servern über OEM oder ein anderes Überwachungstool.
Moderne "Unternehmens" -Entwicklungsumgebungen wie .Net oder Java sind so komplex, dass ein Entwickler Karriere machen kann, wenn er sich nur darauf spezialisiert hat. Als DBA, insbesondere im Entwicklungsbereich, schadet es möglicherweise nicht, Kenntnisse in C # oder Java zu haben, aber Sie werden wahrscheinlich nicht viel Zeit damit verbringen, sie tatsächlich zu programmieren.
Sie werden wahrscheinlich mehr Kilometer mit den auf Ihrer Plattform verwendeten Skript-Tools machen, obwohl viele Systeme .NET-, Java-, COM- oder Web-Service-APIs bereitstellen. Wenn Sie etwas gegen diese APIs codieren müssen, benötigen Sie mindestens grundlegende Kenntnisse über etwas, das diese API nutzen kann. Fortgeschrittene Kenntnisse in der Anwendungsarchitektur sind hierfür jedoch in der Regel nicht erforderlich.
Einige Entwickler verfügen über ausgeprägte Datenbankkenntnisse, aber in Entwicklungskreisen ist irrationale Angst vor Datenbanken weit verbreitet. Viele Entwickler haben auch nie wirklich eine Ahnung von dem Paradigma der 'Mengenoperationen', das SQL zugrunde liegt. Als Entwickler-DBA müssen Sie möglicherweise in den Code gespeicherter Prozeduren eingreifen, um Leistungsprobleme zu lösen.
ETL und Tools, die die Datenbank umgeben, können ebenfalls in die Zuständigkeit des DBA fallen. Ich habe etliche ausgeschriebene DBA-Rollen gesehen, die einen erheblichen Teil der Back-End-Entwicklungsarbeit in Anspruch zu nehmen schienen. Dies wird in kleineren Unternehmen am häufigsten vorkommen. Ein kürzlich veröffentlichtes Poster wollte benutzerdefinierte Metriken in Oracle Enterprise Manager integrieren, wozu eine Plug-in-API vorhanden ist. Es ist durchaus üblich, dass Anforderungen wie diese auftauchen, und der einzige Weg, dies zu erreichen, besteht darin, einen Klebercode zu schreiben.
In der IT gibt es viele "Tools Guys", die trotz des Parochalismus nützliche Arbeit leisten können. Wenn den Tools jedoch der Dampf ausgeht, besteht die einzige Möglichkeit, etwas zu erledigen, darin, tatsächlich ein bisschen Code zu schreiben, um dies zu tun. Hier trennen Programmierkenntnisse die Männer von den Jungen.
quelle
Ich würde nicht typisch sagen, aber es tut nie weh. SQL Server ist groß genug, um nicht zu glauben, dass eine Person das gesamte Produkt beherrschen kann. Ich bin seit SQL Server 4.2 DBA und betrachte mich in den meisten Bereichen als Experte, aber ich gebe zu, dass ich ohne Google auf Knopfdruck keine MDX-Abfrage schreiben könnte.
Ich versuche zu sagen, dass man nicht in allem Experte sein kann. Ein wirklich guter DBA zu sein, bedeutet, dass Sie T-SQL gut beherrschen sollten, aber .NET wahrscheinlich nicht so gut beherrschen oder zumindest nicht so effektiv sind wie andere, die sich auf .NET konzentrieren können.
Powershell ist gut zu wissen, ebenso wie das Hin und Her von SSIS. Überlassen Sie die anderen Entwicklungssprachen anderen Entwicklern.
quelle
Ich habe die Erfahrung gemacht, dass die meisten Datenbankadministratoren zwar einen Entwicklungshintergrund haben, aber zum Schreiben von Code überhaupt nicht erforderlich sind. Die wirklich guten Datenbankadministratoren, mit denen ich zusammengearbeitet habe, verfügten über umfangreiche Kenntnisse zu verschiedenen Themen, einschließlich Shell-Skripten, Betriebssystemen und speziellen Anwendungskenntnissen (z. B. PeopleSoft).
Ich hatte einen Datenbankadministrator in der Grundschule, der uns eine Liste von Fragen gab, die jeder gute (Oracle) DBA beantworten sollte: (Ich werde nur einige der Höhepunkte aus der Liste von ungefähr 40 veröffentlichen.)
(Oracle) DBAs müssen diese Dinge wissen, um effektiv zu sein. Die meisten mir bekannten Entwickler (die Code gegen Oracle verwenden) würden kaum eine oder zwei dieser Fragen richtig beantworten können.
quelle
Wenn Sie der DBA sind, arbeiten Sie wahrscheinlich (unter anderem) im Bereich Leistung und Sicherheit. Dies kann das Erstellen von Profilen und die Unterstützung beim Optimieren von Clientanwendungen umfassen, an denen die Entwickler arbeiten. Daher würde es sicherlich nicht schaden, die Grundlagen der von den Entwicklern verwendeten Sprachen und die Schnittstellen zum Datenbankserver zu kennen. Für SQL Server ist das wahrscheinlich .NET. Für MySQL wahrscheinlich eine Kombination aus PHP oder Java.
Wenn der Server beispielsweise für Client-Threads unter Druck gesetzt ist, können die Entwickler besser darüber informiert werden, dass sie Singleton-Instanzen für ihre ObjectDataSources verwenden sollten, damit sie eine einzelne Datenbankverbindung wiederverwenden können. Stellen Sie außerdem sicher, dass parametrisierte Abfragen ordnungsgemäß verwendet werden, um die SQL-Injection zu begrenzen. Solche Sachen.
Sie werden keine Programmierung im Sinne der Entwicklung von Client-Anwendungen durchführen, wenn Sie ausschließlich ein DBA sind, aber Sie sollten wissen, wie sie funktionieren (im Allgemeinen).
quelle
Lassen Sie uns sehen, Oracle verwendet PL / SQL, das Pascal sehr ähnlich ist (eine Sprache, die früher zur Erzeugung von Desktop-App-Code verwendet wurde, in den letzten Jahren jedoch abgefallen ist, und die Entwickler sind zu Delphi übergegangen, das einige nicht mehr verwenden von dort nach .NET), und Oracle unterstützt jetzt auch Java für einige Aktivitäten. Da ein Oracle-DBA alle Aspekte des Systems kennen muss, um geschätzt zu werden, würde ich sagen, dass es erforderlich ist, Pascal und Java zu kennen.
TSQL kann .NET (CLR) -verwalteten Code für einen Teil der Funktionalität in SQL Server schreiben, und daher müsste ein guter DBA dies wahrscheinlich wissen (aber es kann nicht immer in älteren Versionen verwendet werden, also viel DBAs scheuen sich meiner Erfahrung nach davor zurück.
Das sind also die großen Zwei, und auf die sich die meisten Leute beziehen, wenn sie fragen, wie Sie fragen. Ich kenne nicht alle anderen Engines, die wissen, was sie tun und nicht unterstützen, aber ich weiß, dass viele andere außer SQL auch eine Sprachintegration haben.
quelle
Ich bin ziemlich davon überzeugt, dass nur große Geschäfte mit großen Anwendungen einen nicht programmierbaren DBA verlangen, da kleine Geschäfte mit einfachen Datenbanken mit dem Alleskönner Entwickler / DBA davonkommen können. Damit ein DBA zum Master eines Produkts wird (Oracle, SQL Server, was auch immer), muss dieses Wissen gefragt sein! Der DBA muss komplexen Umgebungen und Problemen ausgesetzt sein, damit er besser informiert ist. Das ist im Grunde genommen eine Schande von mir, weil ich DBA in einem kleinen Laden bin und nichts tue, was mehr als 2 Neuronen erfordert. Ich glaube, ich verschwende meine Zeit bei diesem Job. Ich möchte Entwickler werden.
quelle