Como a maioria dos sistemas de banco de dados "populares" (MySQL, Postgres ...) lida com a alteração de tabelas em bancos de dados de produção ao vivo (como adicionar, excluir ou alterar o tipo de colunas)?
Eu sei que a maneira correta é fazer backup de tudo, agendar o tempo de inatividade e, em seguida, fazer as alterações.
Mas ... algum sistema de banco de dados atual suporta fazer essas coisas "on-line" sem parar nada? (talvez apenas adie as consultas que fazem referência a uma coluna que está sendo alterada / excluída)
E o que acontece quando eu apenas faço um ALTER TABLE...
banco de dados em execução ao vivo? Tudo para quando isso acontece? Os dados podem ser corrompidos? etc.
Mais uma vez, estou me referindo principalmente ao Postgres ou MySQL, pois é isso que encontro.
(E, sim, sempre que eu tinha que fazer isso antes de fazer "da maneira certa", fazendo backup, agendando o downtine etc. ... mas eu só quero saber se é possível fazer esse tipo de coisa "de maneira rápida e sujo "ou se houver algum sistema de banco de dados que realmente suporte as alterações de esquema" rápidas, ativas e sujas ")
Alguém acabou de sugerir o Online Schema Change for MySQL a partir do script do Facebook (com um tutorial aqui e a fonte aqui ) ... parece ser uma boa maneira de automatizar um conjunto de maneiras "hacky" de fazer isso ... alguém já usou isso algo semelhante à produção?
pg_reorg
pode ajudar nos cenários mais difíceis.