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

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

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

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

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Q&A

0回答

754閲覧

DB(MySQL)のdumpコマンドでDBにロック(?)がかかった原因を教えて頂けないでしょうか?

tatsuyan

総合スコア14

MySQL

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

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

0グッド

1クリップ

投稿2021/06/20 00:25

編集2021/06/20 00:28

前提・実現したいこと

現在、EC2上でDB(MySQL)を構築してDBサーバとして運用しています。
これから管理やパフォーマンスをよくするためにEC2からRDSにDBを移行しようと考えていました。

環境としては下のような状態です。
・アプリサーバ:EC2インスタンス
・DBサーバEC2インスタンス
・バッチ処理が定期的に走ってDBにアクセスしにいっています

発生している問題・エラーメッセージ

EC2からRDSへDBを移行するにあたり、
EC2上のDBをdumpしました。
dumpはcronで時間指定して実行するようにしました。

その結果、dumpできませんでした。
ただdumpに失敗しただけならまだしも最も困ったのが、
このときに使用したmysqldumpコマンドのオプションによってDBがロック(?)されたようで、
走っていた特定のバッチ処理とバッティングしてしまいました。
この処理が重く、あとに続く処理も終わらない状態になってプロセスが滞留してしまい、
webサーバからDBにアクセスができなくなって画面が真っ白(503)になってしまいました。

このとき使用したdumpコマンドが下のようになります。
このコマンドのオプションはAWSのDB移行するための公式ドキュメントに記載されているものです。
(参考)
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.NonRDSRepl.html

mysqldump --databases [mysql、information_schema、performance_schema以外の全データベース名] --single-transaction --add-drop-table --add-locks --quick --create-options --max_allowed_packet=1G --master-data=2 --order-by-primary -u[ユーザー名] -p[パスワード]

公式ドキュメントに記載されているオプションとしては、
以下の3つです。

--single-transaction --master-data=2 --order-by-primary

上記3つ以外で追加したオプションはいずれも問題ないと思っているのですが...

実際、テスト環境では問題ありませんでしたし、
本番環境でも2回実行したのですが、
そのときはうまくいきました。
そのときは思いバッチ処理が走っていなかったようですが。

なぜ、このdumpが失敗してなおかつDBがロックされてしまったのでしょうか?
そもそもこれはロックされたということも確証を得てません。

一体何が原因でこれが起きたのでしょうか?
・コマンドオプションの組み合わせ?
・DBの容量が大きすぎたのが関係している?

ご教授頂けますと幸いです。
よろしくお願いいたします。

補足情報

・MySQL:5.6.48
・DBの容量は200GBあります(バイナリとかも全部入っているようで、ツッコミどころがありますが)
・dumpにかかる予定時間は16時間となっていました。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問