Submit Search
カジュアルに本番データを開発環境に入れる #mysqlcasual
4 likes
4,949 views
Kazuhiro Oinuma
MySQL Casual Talks vol.9の発表資料
Engineering
Read more
1 of 22
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
More Related Content
PPTX
Client Side Balzorでツールを作ってみた
裕之 木下
PPTX
Ossフル活用でinfrastructure as codeやってみた
Akifumi Niida
PDF
アカツキはどのようにAWSを活用しているか #jawsug
aktsk
PPTX
OSS運用管理勉強会LT
atk1234
PDF
仮想マシンを使った開発環境の簡単共有方法
Hideo Takahashi
PPTX
Azure DevOpsで技術同人誌作成
裕之 木下
PDF
新登場!Surface Laptop 4
Tomokazu Kizawa
PPTX
Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成
Tetsurou Yano
Client Side Balzorでツールを作ってみた
裕之 木下
Ossフル活用でinfrastructure as codeやってみた
Akifumi Niida
アカツキはどのようにAWSを活用しているか #jawsug
aktsk
OSS運用管理勉強会LT
atk1234
仮想マシンを使った開発環境の簡単共有方法
Hideo Takahashi
Azure DevOpsで技術同人誌作成
裕之 木下
新登場!Surface Laptop 4
Tomokazu Kizawa
Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成
Tetsurou Yano
What's hot
(20)
PDF
Updates of Azure NoSQL announced at Microsoft Ignite Spring 2021
Oshitari_kochi
PPTX
Swarm mode運用してみた
Akifumi Niida
PDF
LINE LIFF with Azure ハンズオン資料 - Azure サービス解説
Kazumi OHIRA
PPTX
AzureDevOpsで始めるAndroidのCI/CD
Shinya Nakajima
PPTX
Shiva 〜Nextremerをscale upする機械学習環境〜
Kazuki Morozumi
PDF
20150905 stream analytics
一希 大田
PDF
How Wantedly (in)directly uses AWS
Yoshinori Kawasaki
PPTX
BITRISEを使っています
Kazuaki KURIU
PPTX
Memtest86をかけてみた話
Yasuaki Sera
KEY
iOS6時代のTwitter / Facebook連携
Masahiro Murakami
PPTX
BIOSからUEFI
Yasuaki Sera
PPTX
Rancher Meetup Tokyo#3 Storageについて
Tetsurou Yano
PDF
Docker on azure!進化していくcontainerを覗いてみよう!
Tsukasa Kato
PDF
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
Akihiro Kuwano
PDF
Azure Searchで作る検索サービス
Yuta Matsumura
PDF
君も今日からWebMatrixMan(仮)
Yuki Igarashi
PDF
Aurora MySQL HandMade Major VersionUp
Takafumi Nakahara
PPTX
.NETラボ2021年10月 .NETの過去と現在
TomomitsuKusaba
PDF
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
Daisuke Masubuchi
PDF
Rancherでwindows server上のコンテナを管理できるか
Takashi Kanai
Updates of Azure NoSQL announced at Microsoft Ignite Spring 2021
Oshitari_kochi
Swarm mode運用してみた
Akifumi Niida
LINE LIFF with Azure ハンズオン資料 - Azure サービス解説
Kazumi OHIRA
AzureDevOpsで始めるAndroidのCI/CD
Shinya Nakajima
Shiva 〜Nextremerをscale upする機械学習環境〜
Kazuki Morozumi
20150905 stream analytics
一希 大田
How Wantedly (in)directly uses AWS
Yoshinori Kawasaki
BITRISEを使っています
Kazuaki KURIU
Memtest86をかけてみた話
Yasuaki Sera
iOS6時代のTwitter / Facebook連携
Masahiro Murakami
BIOSからUEFI
Yasuaki Sera
Rancher Meetup Tokyo#3 Storageについて
Tetsurou Yano
Docker on azure!進化していくcontainerを覗いてみよう!
Tsukasa Kato
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
Akihiro Kuwano
Azure Searchで作る検索サービス
Yuta Matsumura
君も今日からWebMatrixMan(仮)
Yuki Igarashi
Aurora MySQL HandMade Major VersionUp
Takafumi Nakahara
.NETラボ2021年10月 .NETの過去と現在
TomomitsuKusaba
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
Daisuke Masubuchi
Rancherでwindows server上のコンテナを管理できるか
Takashi Kanai
Ad
Viewers also liked
(6)
PDF
コードはナマモノ 腐らせないために今までやってきたこと
Kazuhiro Oinuma
PDF
MySQL 初めてのチューニング
Craft works
PDF
メンテナブルでありつづけるためのCSS設計
拓樹 谷
PPTX
本当のオブジェクト指向は可読性を上げる
Wataru Terada
PDF
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Masahiro Nagano
PDF
逆説のスタートアップ思考
Takaaki Umada
コードはナマモノ 腐らせないために今までやってきたこと
Kazuhiro Oinuma
MySQL 初めてのチューニング
Craft works
メンテナブルでありつづけるためのCSS設計
拓樹 谷
本当のオブジェクト指向は可読性を上げる
Wataru Terada
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Masahiro Nagano
逆説のスタートアップ思考
Takaaki Umada
Ad
カジュアルに本番データを開発環境に入れる #mysqlcasual
1.
カジュアルに 本番データを 開発環境に入れる MySQL Casual Talks
vol.9 @oinume
2.
自己紹介 ๏ Kazuhiro Oinuma
(@oinume) ๏ MySQL user since v3.23 ๏ CyberAgent,Inc ๏ Ameba Ownd
4.
๏ 簡単にオシャレなWebサイトが作れる ๏ ブログっぽいデザイン、キュレーションメディアのよ うなデザインなどカスタマイズも可能 ๏
Starbucks, VOGUE, NIGO, etc…
5.
カジュアルに 本番データを 開発環境に入れる
6.
動機 ๏ 開発環境でちゃんとしたテストデータを作るの つらい ๏ UGCかつデザインのバリエーションが多い ๏
本番環境ディプロイ後に発見される不具合たち
7.
http://techlife.cookpad.com/entry/2014/10/03/110806
8.
本番データを開発環境 に入れちゃおう
9.
DBサーバー構成 App Replication ELB Slave Master 調査用 RDS
10.
流れ ๏ 1. 調査用のDBからmysqldump ๏
2. 開発環境のDBにインポート ๏ 3. データを開発環境向けにUPDATE ๏ 上記をJenkinsのJobで毎日動かす ๏ あえてレプリケーション方式にはしなかった ๏ リアルタイム性は不要 ๏ レプリが止まった時の対応が面倒そう
11.
補足 ๏ mysqldumpしたファイルのサイズは3GB弱ぐらい ๏ 小規模!! ๏
mysqldump するのに3分ぐらい ๏ dumpファイルをインポートするのに20分ぐらい ๏ MySQLのバージョンは5.6.19 ๏ 5.7じゃなくてすいません(́・ω・`)
12.
第一段階 mysqldumpしてインポートするだけなら簡単
13.
問題 ๏ mysqldumpしてからインポートするため、デー タが一度消えてしまう ๏ →開発環境独自に作ったデータが消えてしまう ๏
対策:開発環境独自のレコードのidを+10億に ๏ AUTO_INCREMENTをずらす
14.
流れ v2 1. 調査用のDBからmysqldump 2.
開発環境DBでid >= 10億 のレコードをバックアップ 3. 1.の本番データを開発環境DBにインポート 4. データを開発環境向けにUPDATE 5. 2.でバックアップしたデータをリストア 6. 各テーブルのAUTO_INCREMENT値をずらす
15.
id >= 10億
のレコード のみmysqldump $ mysqldump -h {db_host} -P {db_port} -u{db_user} -p{db_password} ̶no-create-info ̶order-by-primary ̶default-character-set=utf8mb4 ̶insert-ignore ̶where id >= 10億 {db_name} {table}
16.
AUTO_INCREMENT のずらし方 ๏ INFORATION_SCHEMAから各テーブルの現在 のAUTO_INCREMENT値を取得 ๏ ALTER
TABLE {table} AUTO_INCREMENT=… でずらす
17.
INFORMATION_SCHEMA からAUの値を取得 SELECT t.table_name, t.auto_increment FROM information_schema.tables AS
t INNER JOIN information_schema.columns AS c ON t.table_name = c.table_name WHERE t.table_schema = '{db_name}' AND c.table_schema = {db_name}' AND t.auto_increment IS NOT NULL AND c.column_key = 'PRI' /* 主キーのみ対象 */ ORDER BY t.table_name;
18.
INFORMATION_SCHEMA からAUの値を取得 +--------------------------------+----------------+ ¦ table_name ¦
auto_increment ¦ +--------------------------------+-----------------+ ¦ blog_posts ¦ 900000 ¦ ¦ blog_post_categories ¦ 250000 ¦ ¦ pages ¦ 590000 ¦ … ※数字はフィクションです
19.
AUTO_INCREMENTずらす ALTER TABLE {table}
AUTO_INCREMENT=…
20.
よかったこと ๏ 不具合が本番ディプロイ前に発見しやすくなった ๏ 機能追加・修正のイメージがしやすくなった ๏
ユーザーと同等の体験をして開発できる ๏ 開発時に重いクエリに気付きやすくなった ๏ ALTER TABLEする場合にどのぐらい時間がかか るか簡単に試せる
21.
カジュアルに本番データを 開発環境に入れちゃおう
22.
ありがとう ございました
Download