質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

3回答

2016閲覧

本番のALTER TABLE A ADDに関して

yookoko

総合スコア62

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2020/04/16 07:27

編集2020/04/16 07:30

■ 環境

  • AWS RDS Aurora MySQL 5.7.12

本番環境でalter table a addを行う予定です。
alterは、実行中に本番環境に影響が出るため、メンテナンスにしてSQLを走らせると聞きました。

メンテナンスの都合がつかない場合は、addするカラム用に別テーブルとして作成して、対象のテーブルにjoinさせて運用して、
メンテナンスの都合がついたら、その時にalter table addしてカラムとして追加するのでしょうか。

本番環境でalter table a addする場合の運用サンプルを教えて頂けると助かります。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

メンテナンスの都合がつかない場合は、addするカラム用に別テーブルとして作成して、対象のテーブルにjoinさせて運用して、

メンテナンスの都合がついたら、その時にalter table addしてカラムとして追加するのでしょうか。

よほど特殊な状況を除いて、そんなことは行いません。「JOINする場合」と「しない場合」の違いが別なバグを呼び込んでしまいます。

投稿2020/04/16 07:36

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yookoko

2020/04/16 09:28

ご回答ありがとうございます。
guest

0

ベストアンサー

メンテナンスの都合がつかない場合は、addするカラム用に別テーブルとして作成して、対象のテーブルにjoinさせて運用して、
メンテナンスの都合がついたら、その時にalter table addしてカラムとして追加するのでしょうか。

やってやれなくは無いですが、普通はリスクとコストが大きくなりすぎるのでやらないです。

本番環境でalter table a addする場合の運用サンプルを教えて頂けると助かります。
よろしくお願いいたします。

状況によって異なるので、上記のお話をしている人しかわかりません。
(メンテナンスが必要 と言っている人に聞くのがベストです)

メンテナンスのタイミングを決定できる人に「メンテナンス出来ないとリリースが遅れますけど責任取ってくださいね」という交渉をするのが一般的じゃないでしょうか。

技術的には
想定されている様な方法や、例えば以下のような方法が考えられます。

  1. あるタイミングでスナップショットを取ってコピーを作成する
  2. コピーにALTER TABLEする
  3. バイナリログなどからメンテナンス中に発生した差分をコピーに適用する
  4. 参照先をコピー側に切り替える

とかでしょうか。
これも4のタイミングで完全にデータ齟齬が無いように出来るかどうかはアプリケーションやインフラのアーキテクチャがそれを想定している形になっていないと難しいです。
(そもそもそういう形になっているなら「メンテナンスウィンドウが必要」という状態にならないので。今回のケースだと無理だと思います)

投稿2020/04/16 09:25

tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yookoko

2020/04/16 09:29

ご回答ありがとうございます。運用サンプル助かります。
guest

0

テスト環境で実施し、検証して問題ない事を確認して、本番環境に同じ手順で実施する。

いきなり本番に適用なんて普通しないです。

そもそも、カラム追加するのは目的があるはずですし、対応するプログラムを作成してテスト行うなどの手順を抜きに項目を追加するだけなど意味がありません。

投稿2020/04/16 09:46

編集2020/04/16 09:49
sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問