Comment le système de base de données le plus "populaire" (MySQL, Postgres ...) gère-t-il la modification des tables sur les bases de données de production en direct (comme l'ajout, la suppression ou le changement du type de colonnes)?
Je sais que la bonne façon est de sauvegarder tout le temps d'arrêt planifié et de faire ensuite les modifications.
Mais ... un système de base de données actuel prend-il en charge ces opérations "en ligne" sans rien arrêter? (peut-être simplement retarder les requêtes qui font référence à une colonne qui vient d'être modifiée / supprimée)
Et que se passe-t-il lorsque je fais juste une ALTER TABLE...
sur une base de données en cours d'exécution? Tout s'arrête-t-il lorsque cela se produit? Les données peuvent-elles être corrompues? etc.
Encore une fois, je me réfère principalement à Postgres ou MySQL car ce sont ce que je rencontre.
(Et, oui, à chaque fois que je devais le faire avant de le faire "de la bonne façon", sauvegarder les choses, planifier le downtine, etc. ... mais je veux juste savoir s'il est possible de faire ce genre de choses "rapidement et sale "ou s'il existe un système de base de données qui prend réellement en charge les modifications de schéma" rapides, en direct et sales ")
Quelqu'un vient de suggérer un changement de schéma en ligne pour MySQL à partir du script Facebook (avec un tutoriel ici et la source ici ) ... semble être une bonne façon d'automatiser un ensemble de façons "hacky" de le faire ... quelqu'un l'a-t-il déjà utilisé dans quelque chose qui ressemble à une production?
pg_reorg
peut aider dans les scénarios les plus difficiles.