Wie gehen die meisten "populären" (MySQL, Postgres ...) Datenbanksysteme damit um, Tabellen in Live-Produktionsdatenbanken zu ändern (wie das Hinzufügen, Löschen oder Ändern des Spaltentyps)?
Ich weiß, dass der richtige Weg ist, alle geplanten Ausfallzeiten zu sichern und dann die Änderungen vorzunehmen.
Aber ... unterstützt ein aktuelles Datenbanksystem diese Aktionen "online", ohne irgendetwas zu stoppen? (Möglicherweise werden nur die Abfragen verzögert, die auf eine Spalte verweisen, die gerade geändert / gelöscht wird.)
Und was passiert, wenn ich gerade ALTER TABLE...
eine laufende Datenbank aufrufe? Hört alles auf, wenn dies passiert? Können Daten beschädigt werden? etc.
Auch hier beziehe ich mich hauptsächlich auf Postgres oder MySQL, da dies das ist, was mir begegnet.
(Und ja, wann immer ich das tun musste, bevor ich es "richtig" gemacht habe, Dinge sichern, Stillstand einplanen usw. ... aber ich möchte nur wissen, ob es möglich ist, diese und ähnliche Dinge "schnell und schnell" zu tun dirty "oder wenn es ein DB-System gibt, das tatsächlich" quick, live and dirty "-Schemaänderungen unterstützt)
Jemand hat gerade eine Online-Schemaänderung für MySQL aus dem Facebook-Skript vorgeschlagen (mit einem Tutorial hier und einer Quelle hier ) ... scheint ein guter Weg zu sein, um eine Reihe von "hackigen" Methoden zu automatisieren ... hat es jemals jemand verwendet etwas ähnliches produktion?
pg_reorg
kann bei den schwierigeren Szenarien helfen.