SlideShare a Scribd company logo
データセンター移行に伴い、
                          MySQLをカジュアルに
                         アップグレードしたお話
                            MySQL Casual Talks Vol.3
                          ∼カジュアルだよこわくないよ∼


                                 2012/04/19
                            Naoya Nakazawa@n0ts
                           日本オラクル 青山センター
Thursday, April 19, 12
自己紹介


Thursday, April 19, 12
n         Naoya Nakazawa

              n         @n0ts

              n         日本語ブログ

                         n   http://www.sssg.org/blogs/naoya/

              n         無所属

              n         ケーブリングからアプリまで


Thursday, April 19, 12
サーバ/インフラエンジニア養成読本 管理/監視編

                                絶賛発売中!!!

Thursday, April 19, 12
今日のお話


Thursday, April 19, 12
n         大人の事情で、あるサービスをデータセン
                         ター移行することになりました

              n         そのついでに MySQL をアップグレードし
                         たので、そのお話をします




Thursday, April 19, 12
その前に


Thursday, April 19, 12
前回のMySQL Casual
                         Talks Vol.2


Thursday, April 19, 12
「MySQL 5.0 -> 5.5 へのアップグレード プラスなんか」
                                        @oranie




            http://d.hatena.ne.jp/oranie/20110810/1312969238
Thursday, April 19, 12
サービスを停止できる場合での、
                         MySQL 5.0から5.5に
                     アップグレードするための方法




Thursday, April 19, 12
はてブお願いします!!!
Thursday, April 19, 12
今日は、サービスが止める
                          ことができない場合
               のMySQLアップグレードについての
                           お話をします



Thursday, April 19, 12
サービス規模
              n         とある広告系サービス

              n         秒間あたりのピーク時のリクエスト数

                         n   X000 req/sec
              n         物理サーバ1ラック程度

              n         超小規模サービス


Thursday, April 19, 12
サーバ構成
                         (簡易版)


Thursday, April 19, 12
LVS



Application Server


                              Write                            Write

                                        LVS
                                      Read         Read




                              repl                      repl
                     Master            Slave   Master              Slave
                     DB1                          DB2
                  MySQL 5.0.51b                MySQL 5.0.71
Thursday, April 19, 12
MySQL 5.0.51b?


Thursday, April 19, 12
InnoDB Deep Talk #1 2012/03/10

                                                             5.0.53!




                          https://twitter.com/#!/nobu666/status/178350176719736832




Thursday, April 19, 12
データセンター移行


Thursday, April 19, 12
Thursday, April 19, 12
Thursday, April 19, 12
移行前のサーバ構成


Thursday, April 19, 12
旧DC                            新DC

                         LVS                        LVS




   Application                          Application
     Server                               Server




                     LVS                         LVS




               repl              repl        repl               repl

              DB1                DB2         DB1                DB2


Thursday, April 19, 12
旧DC                               新DC

                          Master                                 Master

   DB1                                                                   DB1
              repl                        ×SSL Replication     repl
MySQL 5.0.51b                                                         MySQL 5.1.58
                                        SSH Port Forwarding

                         Slave                                    Slave




                          Master                                 Master

     DB2                                                                 DB2
                                 repl                          repl
  MySQL 5.0.71                                                        MySQL 5.1.58

                         Slave                                    Slave




Thursday, April 19, 12
SSLレプリケーションの失敗

              n         MySQL 5.1.58から5.0.51bに接続すると、次のエ
                         ラーが発生した

                         n   ERROR 2026 (HY000): SSL connection error
              n         Masterのバージョンを5.1.58にあわせるとうまく
                         いったので、バージョンの問題か、5.0系をSSL対
                         応ビルドしていなかったことが原因かもしれない



Thursday, April 19, 12
SSHポートフォワード
              n         新DC DB1 Master上で、旧DC DB1 MasterにSSHトンネルを掘る

                         n   ssh -f <旧DC DB1 Master> -L 13306:localhost:3306 -N -4 -g

              n         LVS経由のため、LVSが切り替わるとSSHトンネルが切れるため、
                         Monitで定期的にSSHトンネルが閉じているか確認するようにした

                         n   pgrepしてなければSSHトンネルを掘る簡単なシェルスクリプト

              n         新DC DB1 Masterを、一時的にSlaveにする

                         n   mysql> CHANGE MASTER TO MASTER_HOST='127.0.0.1',
                              MASTER_PORT=13306 ...;




Thursday, April 19, 12
新DCのMySQL
              n         MySQL SlaveのみハードウェアRAID0 + SSD x 4

              n         XFS, deadlineスケジューラ

              n         公式のMySQL 5.1.58 RPM

              n         InnoDB pluginを利用

              n         InnoDBの設定を全般的に見直したかったので、旧DC上でmysqldumpした
                         データを流し込んで、新DC DB1 Masterをスレーブとした

              n         DB2の方は、完全移行後に停止して移行した

              n         一部のテーブルにInnoDB Data Compressionを導入




Thursday, April 19, 12
DC移行
                         -STEP 1-


Thursday, April 19, 12
n         DNSラウンドロビンにする(レジストラ
                         の仕様でTTLを変更できなかった)

              n         新DB1のアプリケーションの書き込み先
                         は、SSHトンネル経由で旧DCのDB1
                         Masterに対して行う




Thursday, April 19, 12
旧DC                                     新DC
                                        Traffic

                         LVS                                 LVS




   Application                                   Application
     Server                                        Server




                     LVS                     Write        LVS




               repl              repl                 repl               repl

              DB1                DB2                  DB1                DB2


Thursday, April 19, 12
DC移行
                         -STEP 2-


Thursday, April 19, 12
n         DNSラウンドロビンをやめて、新DCのみ
                         切り替える

              n         リクエストが完全に新DCのみになるまで
                         しばらく待つ




Thursday, April 19, 12
DC移行
                         -STEP 3-


Thursday, April 19, 12
1. リクエストの最も少ない時間帯に、アプリケー
                         ションからデータベースへの書き込みを一時的に
                         停止する(バッチなどもあわせて)

              2. 新DC DB1のSlaveをMasterへ昇格させる

              3. 昇格後、アプリケーションからデータベースの書
                         き込みを再開させる




Thursday, April 19, 12
旧DC                                     新DC
                                        Traffic

                         LVS                                 LVS




   Application                                   Application
     Server                                        Server




                     LVS                                  LVS




               repl              repl                 repl               repl

              DB1                DB2                  DB1                DB2


Thursday, April 19, 12
まとめ


Thursday, April 19, 12
n       DC移行中を含めてサービスの停止はなし

                         n   移行中もサービス上の大きな遅延はなし

            n       SlaveをMasterへ昇格させる数分間だけ、書き込み
                     は一時停止したけれどサービスの停止はなし

            n       あわせて、MySQL 5.0系から5.1系に安全にかつ問
                     題なくアップグレードできた




Thursday, April 19, 12
Thanks!


Thursday, April 19, 12

More Related Content

PDF
What's New in MySQL 5.7 Security
Mikiya Okuno
 
PDF
【さくらのクラウド】サービス概要カタログ 2017年11月号
さくらインターネット株式会社
 
PDF
MySQL5.7 GA の Multi-threaded slave
Takanori Sejima
 
PDF
What's New in MySQL 5.7 Replication
Mikiya Okuno
 
PDF
MySQLバックアップの基本
yoyamasaki
 
PDF
お手軽に使おう Alibaba Cloud - OSS 編 -
Naoya Nakazawa
 
PDF
DATADOG TIPS #1
Naoya Nakazawa
 
PDF
kumogata-template の紹介
Naoya Nakazawa
 
What's New in MySQL 5.7 Security
Mikiya Okuno
 
【さくらのクラウド】サービス概要カタログ 2017年11月号
さくらインターネット株式会社
 
MySQL5.7 GA の Multi-threaded slave
Takanori Sejima
 
What's New in MySQL 5.7 Replication
Mikiya Okuno
 
MySQLバックアップの基本
yoyamasaki
 
お手軽に使おう Alibaba Cloud - OSS 編 -
Naoya Nakazawa
 
DATADOG TIPS #1
Naoya Nakazawa
 
kumogata-template の紹介
Naoya Nakazawa
 

More from Naoya Nakazawa (15)

PDF
はじめての Gatling
Naoya Nakazawa
 
PPTX
はじめての datadog
Naoya Nakazawa
 
KEY
Monit & Supervisord Tips
Naoya Nakazawa
 
KEY
ぼくがかんがえたさいきょうの☆きっくすたーと☆
Naoya Nakazawa
 
KEY
Apache 2.4 ChangeLog at 闇Webサーバ勉強会#5
Naoya Nakazawa
 
KEY
/etc/rc.d配下とかのリーディング勉強会
Naoya Nakazawa
 
PDF
fastcgi_conf and mime_types
Naoya Nakazawa
 
KEY
Study2study#4 nginx conf_1_24
Naoya Nakazawa
 
KEY
mod_security introduction at study2study #3
Naoya Nakazawa
 
PDF
httpd.conf line 1 to 7, 24
Naoya Nakazawa
 
KEY
puppet @techlifecookpad
Naoya Nakazawa
 
PDF
zsh最強シェル入門読書会1
Naoya Nakazawa
 
KEY
Velocity Report 2009
Naoya Nakazawa
 
PDF
Mac Ports
Naoya Nakazawa
 
はじめての Gatling
Naoya Nakazawa
 
はじめての datadog
Naoya Nakazawa
 
Monit & Supervisord Tips
Naoya Nakazawa
 
ぼくがかんがえたさいきょうの☆きっくすたーと☆
Naoya Nakazawa
 
Apache 2.4 ChangeLog at 闇Webサーバ勉強会#5
Naoya Nakazawa
 
/etc/rc.d配下とかのリーディング勉強会
Naoya Nakazawa
 
fastcgi_conf and mime_types
Naoya Nakazawa
 
Study2study#4 nginx conf_1_24
Naoya Nakazawa
 
mod_security introduction at study2study #3
Naoya Nakazawa
 
httpd.conf line 1 to 7, 24
Naoya Nakazawa
 
puppet @techlifecookpad
Naoya Nakazawa
 
zsh最強シェル入門読書会1
Naoya Nakazawa
 
Velocity Report 2009
Naoya Nakazawa
 
Mac Ports
Naoya Nakazawa
 
Ad

Recently uploaded (11)

PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
PDF
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
Ad

データセンター移行に伴い、 MySQLをカジュアルにアップグレードしたお話

  • 1. データセンター移行に伴い、 MySQLをカジュアルに アップグレードしたお話 MySQL Casual Talks Vol.3 ∼カジュアルだよこわくないよ∼ 2012/04/19 Naoya Nakazawa@n0ts 日本オラクル 青山センター Thursday, April 19, 12
  • 3. n Naoya Nakazawa n @n0ts n 日本語ブログ n http://www.sssg.org/blogs/naoya/ n 無所属 n ケーブリングからアプリまで Thursday, April 19, 12
  • 4. サーバ/インフラエンジニア養成読本 管理/監視編 絶賛発売中!!! Thursday, April 19, 12
  • 6. n 大人の事情で、あるサービスをデータセン ター移行することになりました n そのついでに MySQL をアップグレードし たので、そのお話をします Thursday, April 19, 12
  • 8. 前回のMySQL Casual Talks Vol.2 Thursday, April 19, 12
  • 9. 「MySQL 5.0 -> 5.5 へのアップグレード プラスなんか」 @oranie http://d.hatena.ne.jp/oranie/20110810/1312969238 Thursday, April 19, 12
  • 10. サービスを停止できる場合での、 MySQL 5.0から5.5に アップグレードするための方法 Thursday, April 19, 12
  • 12. 今日は、サービスが止める ことができない場合 のMySQLアップグレードについての お話をします Thursday, April 19, 12
  • 13. サービス規模 n とある広告系サービス n 秒間あたりのピーク時のリクエスト数 n X000 req/sec n 物理サーバ1ラック程度 n 超小規模サービス Thursday, April 19, 12
  • 14. サーバ構成 (簡易版) Thursday, April 19, 12
  • 15. LVS Application Server Write Write LVS Read Read repl repl Master Slave Master Slave DB1 DB2 MySQL 5.0.51b MySQL 5.0.71 Thursday, April 19, 12
  • 17. InnoDB Deep Talk #1 2012/03/10 5.0.53! https://twitter.com/#!/nobu666/status/178350176719736832 Thursday, April 19, 12
  • 22. 旧DC 新DC LVS LVS Application Application Server Server LVS LVS repl repl repl repl DB1 DB2 DB1 DB2 Thursday, April 19, 12
  • 23. 旧DC 新DC Master Master DB1 DB1 repl ×SSL Replication repl MySQL 5.0.51b MySQL 5.1.58 SSH Port Forwarding Slave Slave Master Master DB2 DB2 repl repl MySQL 5.0.71 MySQL 5.1.58 Slave Slave Thursday, April 19, 12
  • 24. SSLレプリケーションの失敗 n MySQL 5.1.58から5.0.51bに接続すると、次のエ ラーが発生した n ERROR 2026 (HY000): SSL connection error n Masterのバージョンを5.1.58にあわせるとうまく いったので、バージョンの問題か、5.0系をSSL対 応ビルドしていなかったことが原因かもしれない Thursday, April 19, 12
  • 25. SSHポートフォワード n 新DC DB1 Master上で、旧DC DB1 MasterにSSHトンネルを掘る n ssh -f <旧DC DB1 Master> -L 13306:localhost:3306 -N -4 -g n LVS経由のため、LVSが切り替わるとSSHトンネルが切れるため、 Monitで定期的にSSHトンネルが閉じているか確認するようにした n pgrepしてなければSSHトンネルを掘る簡単なシェルスクリプト n 新DC DB1 Masterを、一時的にSlaveにする n mysql> CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=13306 ...; Thursday, April 19, 12
  • 26. 新DCのMySQL n MySQL SlaveのみハードウェアRAID0 + SSD x 4 n XFS, deadlineスケジューラ n 公式のMySQL 5.1.58 RPM n InnoDB pluginを利用 n InnoDBの設定を全般的に見直したかったので、旧DC上でmysqldumpした データを流し込んで、新DC DB1 Masterをスレーブとした n DB2の方は、完全移行後に停止して移行した n 一部のテーブルにInnoDB Data Compressionを導入 Thursday, April 19, 12
  • 27. DC移行 -STEP 1- Thursday, April 19, 12
  • 28. n DNSラウンドロビンにする(レジストラ の仕様でTTLを変更できなかった) n 新DB1のアプリケーションの書き込み先 は、SSHトンネル経由で旧DCのDB1 Masterに対して行う Thursday, April 19, 12
  • 29. 旧DC 新DC Traffic LVS LVS Application Application Server Server LVS Write LVS repl repl repl repl DB1 DB2 DB1 DB2 Thursday, April 19, 12
  • 30. DC移行 -STEP 2- Thursday, April 19, 12
  • 31. n DNSラウンドロビンをやめて、新DCのみ 切り替える n リクエストが完全に新DCのみになるまで しばらく待つ Thursday, April 19, 12
  • 32. DC移行 -STEP 3- Thursday, April 19, 12
  • 33. 1. リクエストの最も少ない時間帯に、アプリケー ションからデータベースへの書き込みを一時的に 停止する(バッチなどもあわせて) 2. 新DC DB1のSlaveをMasterへ昇格させる 3. 昇格後、アプリケーションからデータベースの書 き込みを再開させる Thursday, April 19, 12
  • 34. 旧DC 新DC Traffic LVS LVS Application Application Server Server LVS LVS repl repl repl repl DB1 DB2 DB1 DB2 Thursday, April 19, 12
  • 36. n DC移行中を含めてサービスの停止はなし n 移行中もサービス上の大きな遅延はなし n SlaveをMasterへ昇格させる数分間だけ、書き込み は一時停止したけれどサービスの停止はなし n あわせて、MySQL 5.0系から5.1系に安全にかつ問 題なくアップグレードできた Thursday, April 19, 12