SlideShare a Scribd company logo
Submit Search
Upload
Mysqlを4.0から5.0を経由して5.6へバージョンアップした話
Report
Share
Masataka Kono
Follow
•
10 likes
•
9,079 views
1
of
27
Mysqlを4.0から5.0を経由して5.6へバージョンアップした話
•
10 likes
•
9,079 views
Report
Share
Download Now
Download to read offline
Technology
第1回ペパボテックカンファレンスでの発表資料です http://pepabo.connpass.com/event/13208/
Read more
Masataka Kono
Follow
Recommended
歴史あるWebサービスに携わって2年半の間に起きた事やった事 by
歴史あるWebサービスに携わって2年半の間に起きた事やった事
Masataka Kono
5.8K views
•
34 slides
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話 by
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
Masataka Kono
23.4K views
•
47 slides
Laravelのeloquent だけ入れた話 by
Laravelのeloquent だけ入れた話
Masataka Kono
2.9K views
•
17 slides
ググリワードを探す話 by
ググリワードを探す話
toru ishikawa
2.2K views
•
38 slides
ウェブエンジニアとしての1年目を振り返って by
ウェブエンジニアとしての1年目を振り返って
Kohki Yamagiwa
2.5K views
•
15 slides
PHP7の内部実装から学ぶ性能改善テクニック by
PHP7の内部実装から学ぶ性能改善テクニック
Yoshio Hanawa
17.6K views
•
64 slides
More Related Content
What's hot
あと一つプログラミング言語を 覚えたら死ぬ! 脳みそがパンクしそうな あなたのための nodeJSことはじめ by
あと一つプログラミング言語を 覚えたら死ぬ! 脳みそがパンクしそうな あなたのための nodeJSことはじめ
文樹 高橋
547 views
•
26 slides
PHPの拡張モジュールをGoで作る by
PHPの拡張モジュールをGoで作る
Yoshio Hanawa
11.2K views
•
18 slides
5分でわかるPhalconPHP by
5分でわかるPhalconPHP
Shohei Tai
1.8K views
•
33 slides
zval をダイエットしてみた by
zval をダイエットしてみた
Yoshio Hanawa
7.7K views
•
27 slides
PHPマニュアルの育て方 by
PHPマニュアルの育て方
Masahiro Takagi
1.4K views
•
44 slides
PHP7の拡張モジュール事情 by
PHP7の拡張モジュール事情
Yoshio Hanawa
9.1K views
•
23 slides
What's hot
(20)
あと一つプログラミング言語を 覚えたら死ぬ! 脳みそがパンクしそうな あなたのための nodeJSことはじめ by 文樹 高橋
あと一つプログラミング言語を 覚えたら死ぬ! 脳みそがパンクしそうな あなたのための nodeJSことはじめ
文樹 高橋
•
547 views
PHPの拡張モジュールをGoで作る by Yoshio Hanawa
PHPの拡張モジュールをGoで作る
Yoshio Hanawa
•
11.2K views
5分でわかるPhalconPHP by Shohei Tai
5分でわかるPhalconPHP
Shohei Tai
•
1.8K views
zval をダイエットしてみた by Yoshio Hanawa
zval をダイエットしてみた
Yoshio Hanawa
•
7.7K views
PHPマニュアルの育て方 by Masahiro Takagi
PHPマニュアルの育て方
Masahiro Takagi
•
1.4K views
PHP7の拡張モジュール事情 by Yoshio Hanawa
PHP7の拡張モジュール事情
Yoshio Hanawa
•
9.1K views
PHPNGの動向 by Yoshio Hanawa
PHPNGの動向
Yoshio Hanawa
•
10.2K views
php-buildがいかに便利かを力説する by Yoshio Hanawa
php-buildがいかに便利かを力説する
Yoshio Hanawa
•
10.6K views
LT within June school by katosho1
LT within June school
katosho1
•
73 views
MF GeeksNight pplogの話 by Naoto Koshikawa
MF GeeksNight pplogの話
Naoto Koshikawa
•
3.8K views
Requestsで始める5分前帰社 by Satoshi Yamada
Requestsで始める5分前帰社
Satoshi Yamada
•
5.4K views
Pythonで業務改善をしたときにあった問題(ライト版) by Satoshi Yamada
Pythonで業務改善をしたときにあった問題(ライト版)
Satoshi Yamada
•
3.9K views
YAPC::Asia 2012 CPANに恩返ししよう by azuma satoshi
YAPC::Asia 2012 CPANに恩返ししよう
azuma satoshi
•
936 views
PHPerに覚えて欲しい日本語の重要性 by Rina Fukuda
PHPerに覚えて欲しい日本語の重要性
Rina Fukuda
•
14.6K views
bottle.pyをつかったチャットアプリ作成チュートリアル by Satoshi Yamada
bottle.pyをつかったチャットアプリ作成チュートリアル
Satoshi Yamada
•
5.1K views
Phpでアプリケーションサーバー by k-motoyan
Phpでアプリケーションサーバー
k-motoyan
•
5.4K views
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田 by Y Watanabe
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Y Watanabe
•
1.4K views
フロントエンド温泉にサーバーレスでダイブする(Public) by Yuki Ito
フロントエンド温泉にサーバーレスでダイブする(Public)
Yuki Ito
•
272 views
レガシーシステムのDBマイグレーションし始めた話 by nekogeruge_987
レガシーシステムのDBマイグレーションし始めた話
nekogeruge_987
•
1.1K views
PHP-MLを使用して気軽に機械学習にトライしてみる by Ryo Shibayama
PHP-MLを使用して気軽に機械学習にトライしてみる
Ryo Shibayama
•
4.9K views
Similar to Mysqlを4.0から5.0を経由して5.6へバージョンアップした話
爆速フレームワークでREST APIを作った話 by
爆速フレームワークでREST APIを作った話
Shohei Tai
7.4K views
•
41 slides
PHP カンファレンス福岡 2017 参加報告 by
PHP カンファレンス福岡 2017 参加報告
y-uti
544 views
•
10 slides
PHP conference kansai2018_ishihara by
PHP conference kansai2018_ishihara
ishihara_yuki
502 views
•
52 slides
PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~ by
PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~
Yuta Sakurai
8.3K views
•
48 slides
MySQLの系譜について少々 by
MySQLの系譜について少々
yoku0825
5.4K views
•
20 slides
PHPでセキュリティを真面目に考える by
PHPでセキュリティを真面目に考える
Takuya Sato
34.8K views
•
80 slides
Similar to Mysqlを4.0から5.0を経由して5.6へバージョンアップした話
(20)
爆速フレームワークでREST APIを作った話 by Shohei Tai
爆速フレームワークでREST APIを作った話
Shohei Tai
•
7.4K views
PHP カンファレンス福岡 2017 参加報告 by y-uti
PHP カンファレンス福岡 2017 参加報告
y-uti
•
544 views
PHP conference kansai2018_ishihara by ishihara_yuki
PHP conference kansai2018_ishihara
ishihara_yuki
•
502 views
PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~ by Yuta Sakurai
PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~
Yuta Sakurai
•
8.3K views
MySQLの系譜について少々 by yoku0825
MySQLの系譜について少々
yoku0825
•
5.4K views
PHPでセキュリティを真面目に考える by Takuya Sato
PHPでセキュリティを真面目に考える
Takuya Sato
•
34.8K views
人材発掘うっはうは by Ken Ogura
人材発掘うっはうは
Ken Ogura
•
676 views
2015/04/11 第4回G-Study発表資料 Risoluto開発に見る車輪の再発明 by Yuta Hayakawa
2015/04/11 第4回G-Study発表資料 Risoluto開発に見る車輪の再発明
Yuta Hayakawa
•
1.9K views
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い by sasezaki
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
sasezaki
•
9.8K views
まだ技術ブログを始めてないPHPerのあなたへ。PHPカンファレンス関西2013 LT by 77web
まだ技術ブログを始めてないPHPerのあなたへ。PHPカンファレンス関西2013 LT
77web
•
4.9K views
Cmsdou oosaka by onagatani
Cmsdou oosaka
onagatani
•
1.5K views
2015.2.6神戸PHP勉強会おちゃのこネット by Masaya Arimoto
2015.2.6神戸PHP勉強会おちゃのこネット
Masaya Arimoto
•
814 views
Aws OpsWorks [JAWSDAYS 2014 ACEに聞けトラック] by Yukihiko SAWANOBORI
Aws OpsWorks [JAWSDAYS 2014 ACEに聞けトラック]
Yukihiko SAWANOBORI
•
3.7K views
PHP 8 で Web 以外の世界の扉を叩く by shinjiigarashi
PHP 8 で Web 以外の世界の扉を叩く
shinjiigarashi
•
3.7K views
PHP5技術者認定初級試験を受験しました by hajikami
PHP5技術者認定初級試験を受験しました
hajikami
•
886 views
サバフェスLt by 宗 大栗
サバフェスLt
宗 大栗
•
3.6K views
PHP カンファレンス 2014 に行ってきたよ by Masaru Matsuo
PHP カンファレンス 2014 に行ってきたよ
Masaru Matsuo
•
5.2K views
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜 by Katsuhiro Miura
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
Katsuhiro Miura
•
6.5K views
先取り!PHP 7 と WordPress by Masashi Shinbara
先取り!PHP 7 と WordPress
Masashi Shinbara
•
31.6K views
鹿駆動勉強会 青江発表資料 by Takashi Aoe
鹿駆動勉強会 青江発表資料
Takashi Aoe
•
1.4K views
Recently uploaded
IPsec VPNとSSL-VPNの違い by
IPsec VPNとSSL-VPNの違い
富士通クラウドテクノロジーズ株式会社
606 views
•
8 slides
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Hitachi, Ltd. OSS Solution Center.
109 views
•
26 slides
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PC Cluster Consortium
66 views
•
12 slides
定例会スライド_キャチs 公開用.pdf by
定例会スライド_キャチs 公開用.pdf
Keio Robotics Association
146 views
•
64 slides
光コラボは契約してはいけない by
光コラボは契約してはいけない
Takuya Matsunaga
28 views
•
17 slides
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PC Cluster Consortium
28 views
•
36 slides
Recently uploaded
(7)
IPsec VPNとSSL-VPNの違い by 富士通クラウドテクノロジーズ株式会社
IPsec VPNとSSL-VPNの違い
富士通クラウドテクノロジーズ株式会社
•
606 views
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by Hitachi, Ltd. OSS Solution Center.
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Hitachi, Ltd. OSS Solution Center.
•
109 views
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by PC Cluster Consortium
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PC Cluster Consortium
•
66 views
定例会スライド_キャチs 公開用.pdf by Keio Robotics Association
定例会スライド_キャチs 公開用.pdf
Keio Robotics Association
•
146 views
光コラボは契約してはいけない by Takuya Matsunaga
光コラボは契約してはいけない
Takuya Matsunaga
•
28 views
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by PC Cluster Consortium
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PC Cluster Consortium
•
28 views
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可 by Hitachi, Ltd. OSS Solution Center.
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
Hitachi, Ltd. OSS Solution Center.
•
10 views
Mysqlを4.0から5.0を経由して5.6へバージョンアップした話
1.
MySQLを4.0から5.0を 経由して5.6へバージョ ンアップした話 @mapyo
2.
自己紹介 ● カラーミーショップのソフトウェアエンジニア ● 入社2年4ヶ月くらい ●
みんなからは「ぼいらー」と呼ばれています ● ぺちぱー(PHPer)です
3.
今日話すこと 1. 規模感・メンバー 2. 一度5.0を経由した理由 3.
5.0にするまでにやったこと 4. 本番を5.0、5.6にしていった時の流れ 5. 注意すべき事 6. まとめ ※ぺちぱーとして話すのでmysqlのチューニングとかダンプ、リ ストアする時のテクニック的な話は出て来ません!
4.
規模感 ● slaveの台数10台くらい ● mysqlの容量600G ●
DBを見ているロールの数7個以上 ● 素のSQLが散りばめられている ● 同じチームのソフトウェアエンジニア5〜6人くら い ● 全部終わったのが1年弱くらい
5.
メンバー ● ぺちぱー(僕) ● インフラ周りめっちゃすごい人(途中でシニアエ ンジニアに。) アドバイザー的なポジション ●
@hsbt(チーフエンジニア) ● ボブさん
6.
今日話すこと 1. 規模感・メンバー 2. 一度5.0を経由した理由 3.
5.0にするまでにやったこと 4. 本番を5.0、5.6にしていった時の流れ 5. 注意すべき事 6. まとめ ※ぺちぱーとして話すのでmysqlのチューニングとかダンプ、リ ストアする時のテクニック的な話は出て来ません!
7.
一度5.0を経由した理由 ● 4.0から一気に5.6に移行するとなにか起きた時 の影響が大きそう。 ● mysql4.0→mysql5.6へ直接レプリケーションが 出来ませんでした。 master 4.0 この辺、どういう流れでバージョンアップしていくかは後で詳しく説明 します。 slave 5.6 master 4.0 slave 5.0 slave 5.6
8.
今日話すこと 1. 規模感・メンバー 2. 一度5.0を経由した理由 3.
5.0にするまでにやったこと 4. 本番を5.0、5.6にしていった時の流れ 5. 注意すべき事 6. まとめ ※ぺちぱーとして話すのでmysqlのチューニングとかダンプ、リ ストアする時のテクニック的な話は出て来ません!
9.
5.0にするまでにやった事 ● 5.6の開発環境を作る ● 開発環境の4.0のデータを5.6に突っ込む ●
開発環境で4.0(今までのDBと)5.6を簡単に切 り替えられる仕組み作り ● その他開発環境の整備 ● 5.6で開発してもらうように布教する ● テスト、修正 ● 不要レコードの削除
10.
開発環境の4.0データを5.6に突っ込む ● sedスクリプトをかます cat dump.sql
| sed -e 's/timestamp(14)/timestamp/' | sed -e 's/TYPE=/ENGINE=/' > dump5.sql
11.
5.6で開発してもらうように布教 メリット ● 4.0では動くが、5.6では動かないクエリがこれ以 上増えない ● 現状、5.6で動かないクエリがあったら教えても らえる。(^^♪
12.
テスト ● デキるテスターの人にお願い☆ その間僕は。。 ● 修正が必要なsqlを調べる ●
ググる ● 分かった修正箇所の横展開
13.
修正する 1. 直さなきゃいけない部分がみつかる 2. 直す(4.0でも5.6でも動くように) 3.
他の開発メンバーにこういうパターン注意してく ださいリストを作ってお知らせ 全部で5パターンくらい
14.
不要なレコードの削除 ● とあるテーブルの容量が200Gくらい!! ● ダンプ、リストアの時間大。 古いレコードが消せそうだったので消した。 150Gくらい減った。。。
15.
今日話すこと 1. 規模感・メンバー 2. 一度5.0を経由した理由 3.
5.0にするまでにやったこと 4. 本番を5.0、5.6にしていった時の流れ 5. 注意すべき事 6. まとめ ※ぺちぱーとして話すのでmysqlのチューニングとかダンプ、リ ストアする時のテクニック的な話は出て来ません!
16.
本番を5.0化していった時の流れ1 Step1 mysql5.0をmasterからのレプリケーションに設定 ※appサーバからは見ない。 INSERT,UPDATEが 5.0でエラーにならないかをチェッ ク可能 slave 4.0 master 4.0 slave 4.0 slave 5.0 app
17.
本番を5.0化していった時の流れ2 Step2 mysql5.0をslaveに設定 ※appサーバから見るようにする! slave 4.0 master 4.0 slave 4.0 slave 5.0 SELECTが5.0でエラーに ならないか? NewRelicが活躍! app
18.
※僕が作業したのは 1と4だけです(*´)●`ڡ ※slaveを見ているロールは 5つくらい ※1マラソン終わるのに2〜3日くらい 本番を5.0化していった時の流れ3 Step3 slave全台を5.0にしていく slave 5.0 master 4.0 slave 5.0 slave 5.0 以下のマラソン×10回くらい。。 1.
slave1台をappサーバから外す 2. 5.0にリストア 3. masterからレプリケーション 4. appサーバから見るように app
19.
本番を5.0化していった時の流れ3 Step4 メンテを入れてslave1台をmasterに昇格! slave 5.0 master 4.0 slave 5.0 slave 5.0 メンテ終わった後は何事もなかった かのように動いてたぜ! ※masterしか見ていないロールもあるので、多 少不安はあった。 ここまでで約半年くらい。。 slave 5.0 master 5.0 slave 5.0 master 4.0
20.
本番を5.6化していった時の流れ そして、5.6に! 今までの作業をもう1週やる。。。 1. 5.6をレプリケーションにつなげる 2. appサーバから見るようにして様子見 3.
slave全台を5.6にする。 4. メンテを入れてslaveをmasterに昇格 ※性能のいいサーバを購入したので slaveの台数を減らせた! ※僕のやった作業は appサーバの接続先切り替えとメンテの作業くらい。。
21.
今日話すこと 1. 規模感・メンバー 2. 一度5.0を経由した理由 3.
5.0にするまでにやったこと 4. 本番を5.0、5.6にしていった時の流れ 5. 注意すべき事 6. まとめ ※ぺちぱーとして話すのでmysqlのチューニングとかダンプ、リ ストアする時のテクニック的な話は出て来ません!
22.
注意すべき事! 移行途中にmasterに直接SQLを流す時は、 最新バージョンでかならず検証する! slave 4.0 master 4.0 slave 5.0 slave 5.0 4.0→OK, 5.0→エラーのSQL 1. masterでは成功 2.
slaveでエラー発生! 3. レプリケーションが止まる! 4. ヤバイ!!
23.
まとめ 〜5.6にするまでにやった事〜 1. 開発環境を用意して、テストする 2. 開発メンバーに周知する 3.
Slaveから5.0にしていって、Masterを昇格させ る 4. 上の作業を、5.6にする為にもう1回やる 5. 終わり!
24.
所感1 ● 期間が長かった ○ 修正パターンが見つかる→全ロールでgrepして、後は 目視確認して修正箇所を見つける ○
slaveの1台バージョンアップするのに数日。 ● インフラ周りめっちゃすごい人はすごかった。 ○ 本番データのダンプ、リストアの検証(※600G) ○ 5.0、5.6サーバを構築しまくっていた(slave10台) ○ 細かい設定値まわりとかいろいろ
25.
所感2 ● デキるテスターの人がいた ○ 安心感 ○
バグが出そうな部分を熟知 ● やれる事はやった。後はバグが出たら全力で直 すという心意気が大事。 ○ ホントに大丈夫なのか?という不安 ○ メンテ終了後、大規模な障害が起きたら怖い! ○ 気持ちを切り替えて、前を向く!
26.
最後に どういうsqlを修正したか?は 僕のブログをご覧下さい。 http://goo.gl/YXeozS
27.
以上です!!