メンテナンスの都合がつかない場合は、addするカラム用に別テーブルとして作成して、対象のテーブルにjoinさせて運用して、
メンテナンスの都合がついたら、その時にalter table addしてカラムとして追加するのでしょうか。
やってやれなくは無いですが、普通はリスクとコストが大きくなりすぎるのでやらないです。
本番環境でalter table a addする場合の運用サンプルを教えて頂けると助かります。
よろしくお願いいたします。
状況によって異なるので、上記のお話をしている人しかわかりません。
(メンテナンスが必要 と言っている人に聞くのがベストです)
メンテナンスのタイミングを決定できる人に「メンテナンス出来ないとリリースが遅れますけど責任取ってくださいね」という交渉をするのが一般的じゃないでしょうか。
技術的には
想定されている様な方法や、例えば以下のような方法が考えられます。
- あるタイミングでスナップショットを取ってコピーを作成する
- コピーにALTER TABLEする
- バイナリログなどからメンテナンス中に発生した差分をコピーに適用する
- 参照先をコピー側に切り替える
とかでしょうか。
これも4のタイミングで完全にデータ齟齬が無いように出来るかどうかはアプリケーションやインフラのアーキテクチャがそれを想定している形になっていないと難しいです。
(そもそもそういう形になっているなら「メンテナンスウィンドウが必要」という状態にならないので。今回のケースだと無理だと思います)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/16 09:28