Unser IT-Shop beginnt zunächst mit dem Aufbau einer Gruppe von Datenbankadministratoren. Wir alle (ich selbst eingeschlossen) sind aus der Welt der Anwendungsentwicklung / Architektur gekommen, daher ist die DBA-Welt für uns noch ziemlich neu.
Neben dem Aufbau einer DBA-Gruppe möchten wir Änderungsverwaltungsverfahren und -prozesse (hoffentlich basierend auf Best Practices) für den Fall erstellen, dass Änderungen verschoben werden müssen.
Ich habe den folgenden Beitrag gefunden, der hauptsächlich für Trigger-, gespeicherte Prozedur- und / oder DDL-Änderungen hilfreich ist. Es werden jedoch nicht unbedingt Indizes oder Lieferantendatenbanken angesprochen.
Wir haben eine Mischung aus eigenen und Anbieterdatenbanken. In unserem Fall arbeiten einige (wenn auch nicht alle) Anbieter mit unserem Unternehmen zusammen, um die Datenbank (en) und Anwendungen zu erstellen. Wir sind gerade dabei, unsere Anwendungen auf Leistung zu testen, bevor sie "live" gehen. Daher analysieren wir Indizes (oder deren Fehlen) ziemlich intensiv.
Wie gehen wir am besten mit dem Änderungsmanagement um, wenn wir auf Indizes stoßen, die unserer Meinung nach erstellt werden sollten, sowohl für unsere eigenen Datenbanken als auch für Anbieter?
Was machst du in deinem Shop? Ich mache mir weniger Sorgen um Werkzeuge als um den Prozess.
EDIT: Bisher freue ich mich über das Feedback, die Kommentare und die Antworten auf diese Frage. Mir ist aufgefallen, dass einige der Antworten etwas werkzeugspezifisch sind. Ich suche nach "agnostischeren" Praktiken, wenn das möglich ist.
Wenn jedoch keine Agnostik möglich ist, verwenden wir für Tool-Sets hauptsächlich IBM DB2 LUW (und das tatsächlich unter AIX). Wir haben einige DB2 unter Windows und DB2 für i (IBMs i5 / OS), aber wir sind meistens AIX DB2. Wir verwenden die Quellcodeverwaltung, insbesondere Subversion.
Auch hier suchen wir nach allgemeinen Best Practices, aber oben ist das, was wir verwenden, herstellerspezifisch.
EDIT: Aktuelle Entscheidung: Wir beabsichtigen, unsere Argumentation sowie unsere Änderungen zu verfolgen. Daher werden wir ein Problem in unserer Issue-Tracking-Software (in unserem Fall JIRA) eröffnen. Jetzt können wir in der Dokumentation hinzufügen, welche Priorität die Änderung hat, Daten, die die Änderung bestätigen, die Änderung und die Ergebnisse der Änderung aus einer anderen Umgebung, in der die Änderung getestet wurde.
Wir beabsichtigen dann auch, unsere Änderungen an Skripten in SVN zu verfolgen (ähnlich wie unten vorgeschlagen). Auf diese Weise können wir verfolgen, welche Version von was wo existiert. Dies kann in unserer JIRA-Ausgabe (und in jeder anderen von uns verwendeten Überwachungssoftware, dh eingefügten Links) aufgezeichnet werden. Wir können mit größerer Sicherheit wissen, welche Veränderungen in welcher Umgebung stattgefunden haben und warum. Wir können dann auch verfolgen, ob der Index etwas war, das wir über die Implementierung des Anbieters hinaus oder vor dessen Implementierung usw. hinzugefügt haben.)