¿Cómo maneja la mayoría de los sistemas de bases de datos "populares" (MySQL, Postgres ...) la alteración de tablas en bases de datos de producción en vivo (como agregar, eliminar o cambiar el tipo de columnas)?
Sé que la forma correcta es hacer una copia de seguridad de todo el tiempo de inactividad programado y luego hacer los cambios.
Pero ... ¿algún sistema de base de datos actual admite hacer estas cosas "en línea" sin detener nada? (tal vez solo retrase las consultas que hacen referencia a una columna que se está modificando / eliminando)
¿Y qué sucede cuando solo hago una ALTER TABLE...
en una base de datos en vivo? ¿Todo se detiene cuando esto sucede? ¿Se pueden corromper los datos? etc.
Nuevamente, me refiero principalmente a Postgres o MySQL, ya que estos son los que encuentro.
(Y sí, cada vez que tenía que hacer esto antes de hacerlo "de la manera correcta", respaldando cosas, programando una baja, etc. ... pero solo quiero saber si es posible hacer este tipo y cosas "rápido y sucio "o si hay algún sistema de base de datos que realmente admita cambios de esquema" rápidos, en vivo y sucios ")
Alguien acaba de sugerir el Cambio de esquema en línea para MySQL desde el script de Facebook (con un tutorial aquí y una fuente aquí ) ... parece una buena manera de automatizar un conjunto de formas "hacky" para hacerlo ... ¿alguien lo ha usado alguna vez en algo parecido a la produccion?
pg_reorg
puede ayudar con los escenarios más difíciles.