Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
mysql_first_performance_ tuning_y8
Search
mamy1326
May 27, 2017
Programming
2.8k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
mysql_first_performance_ tuning_y8
初めてのMySQLパフォーマンスチューニング
mamy1326
May 27, 2017
More Decks by mamy1326
See All by mamy1326
PHPer が知るべき MySQL クエリチューニング/What PHPers Need to Know about MySQL Query Tuning
mamy1326
18
8k
戦って品質保証を勝ち取る/Fight_for_quality_assurance
mamy1326
2
920
MySQLでGROUP BY と ORDER BY を同時に使いたくなったら/If_you_want_to_use_GROUP_BY_and_ORDER_BY_at_the_same_time_in_mysql
mamy1326
4
6.3k
初めてのMySQLパフォーマンスチューニングーデータベースは怖くない!/mysql-performance-tuning-basics-in-db-study-chugoku-chiho
mamy1326
8
2.9k
アウトプットを継続するためにやる10箇条-吉祥寺.pm-/10_things_practicing_to_continue_output-in_kichijoji.pm
mamy1326
4
2.4k
MySQLパフォーマンスチューニングの基本ー実際のトラブルシュートから my.cnf までー/MySQL_Performance_Tuning_Basics_in_OSC_Niigata
mamy1326
2
3.8k
アウトプットを継続するためにやっている 10 のこと/10_things_practicing_to_continue_output
mamy1326
21
9.7k
アプリケーションエンジニアが知るべきDNSの基本/Basics_of_DNS_that_application_engineers_should_know
mamy1326
113
47k
dns-penetration-problem-why-can-not-i-say-penetration-kichijojipm15
mamy1326
5
3.7k
Other Decks in Programming
See All in Programming
Contextとはなにか
chiroruxx
1
330
Creating Composable Callables in Contemporary C++
rollbear
0
130
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
260
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
530
OSもどきOS
arkw
0
570
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
160
さぁV100、メモリをお食べ・・・
nilpe
0
140
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
640
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
11
4.2k
A2UI という光を覗いてみる
satohjohn
1
140
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5.1k
スマートグラスで並列バイブコーディング
hyshu
0
140
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
So, you think you're a good person
axbom
PRO
2
2.1k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
430
Embracing the Ebb and Flow
colly
88
5.1k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
340
KATA
mclloyd
PRO
35
15k
What's in a price? How to price your products and services
michaelherold
247
13k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
Building Adaptive Systems
keathley
44
3.1k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Transcript
ॳΊͯͷ .Z42-αʔόʔ ύϑΥʔϚϯε νϡʔχϯά ·Έͳ͓͖ !NBNZ .BZ!Z4QSJOHJO4IJCVZB
ࣗݾհ Name ɹɹ ɿ·Έͳ͓͖ Twitterɹɹ ɿ@mamy1326 2016·ͰΞϓϦத৺ 2017͔Βຊ֨తʹ ɹɹɹɹɹɹɹDBɾΠϯϑϥ
ϫλγ Πϯϑϥ νϣοτσΩϧ
ɹఆΦʔσΟΤϯε ɾΞϓϦΤϯδχΞ ɾ%#ීஈπʔϧͰࢀরɾૢ࡞ ɹˠίϚϯυϥΠϯͰ%#ૢ࡞͠ͳ͍ ɾίϯιʔϧ͋Μ·ΓΘͳ͍
ߏ ⾣NZDOG ɹશ߲ͷௐࠪɾઃఆ ⾣ΫΤϦΩϟογϡͷଌఆ ⾣ϨϓϦέʔγϣϯ
ϓϩϩʔά
ɹͱ͋ΔαʔϏεͷӡ༻ঢ়گ िʹҰ %#αʔόʔμϯ ͕ऩ·ΔͷΛ ͻͨ͢Βͭ
ɹͱ͋ΔαʔϏεͷӡ༻ঢ়گ %#ͷ -"͕Ͷ্͕ͬͯΔΜͰ ͱΓ͋͑ͣ 8FCͷଓ੍ݶͯ͠ Ͳ͏ʹ͔͍ͯͨ͠
ɹͱ͋ΔαʔϏεͷӡ༻ঢ়گ %#ͷ -"͕Ͷ্͕ͬͯΔΜͰ ͱΓ͋͑ͣ 8&#ͷଓ੍ݶͯ͠ Ͳ͏ʹ͔͍ͯͨ͠ ౖ
ঢ়گ̍ νϡʔχϯά͞Ε͍ͯͳ͍ .Z42- ઐ༻αʔόʔ
ঢ়گ̎ ࢭ·Βͳ͍ )551ϦΫΤετ Ͱඵؒ̑
ঢ়گ̏ ڊେͳϩάςʔϒϧ ϑϧεΩϟϯ º̎ ֤ສϨίʔυ
ঢ়گ̐ ࿈ൃ͢ΔεϩʔΫΤϦ ϩάऔ͍ͬͯͳ͍
ঢ়گ̑ ࢮΜͩΒऴΘΔϚελʔ εϨʔϒ͕ͳ͍
ঢ়گ̒ .Z42-ܥ ࣏తʹ όʔδϣϯΞοϓͰ͖ͳ͍
ࢦ͢ .Z42-ͷઃఆΛ ͪΌΜͱཧղͯ͠ ࠷దͳύϑΥʔϚϯεΛɻ
NZDOG શ߲ͷ ௐࠪɾઃఆ
ɹNZDOG֬ೝ [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-lincs=0 expire_logs_days=3 sort_buffer=4M log-bin=mysql-bin server-id=1001 ΄΅σϑΥϧτ
ɾТɾA
ɹNZDOGઃఆํ ɾڞ༗ྖҬ͔Β ɹɹɹςʔϒϧݸผྖҬ ɾదͳϝϞϦׂΓͯ
ɹNZDOGઃఆํ ɾڞ༗ྖҬ͔Β ɹɹɹςʔϒϧݸผྖҬ ɾదͳϝϞϦׂΓͯ
ɹڞ༗ྖҬͱ ɾ.Z42-ͷσϑΥϧτɺ͓͖͍ͬശͷத ɹͰશςʔϒϧΛऔΓѻ͍ͬͯΔ ɾେ͖ͳςʔϒϧখ͞ͳςʔϒϧಉډ ɾϨίʔυͰߋ৽ʹ͕͔͔࣌ؒΔ
ɹڞ༗ྖҬͷ࣮ྫ EBUBCBTF UBCMFSPXTTJ[F WBSMJCNZTRMJCEBUB
ɹڞ༗ྖҬͷ࣮ྫ EBUBCBTF UBCMFSPXTTJ[F WBSMJCNZTRMJCEBUB ͜ͷϑΝΠϧʹ શͯͷςʔϒϧͷσʔλ͕ ه͞Ε͍ͯΔ
ɹςʔϒϧݸผྖҬͱ ɾςʔϒϧΛ͚̍ͭͣͭͯऔΓѻ͏ ɾେ͖ͳςʔϒϧখ͞ͳςʔϒϧݸผ ɾߋ৽ରͷςʔϒϧͷྖҬʹͷΈߋ৽͕ ɹ͔͔ΔͨΊଞʹӨڹΛ༩͑ͳ͍
ɹઃఆ༰ ͜Ε͚ͩʂ [mysqld] innodb_file_per_table=1
ͨͩ͠ɾɾɾ ɾNZTRM࠶ىಈ͚ͩͰ ɹطଘͷςʔϒϧʹରͯ͠ద༻͞Εͳ͍ ɾ࠶ىಈޙʹ$3&"5& ɹ͞ΕΔςʔϒϧʹͷΈ༗ޮ EVNQϦετΞ͕ඞཁ
ɹ݁Ռ EBUBCBTF UBCMFSPXTTJ[F WBSMJCNZTRMJCEBUB WBSMJCNZTRMNBNZ
ɹ݁Ռ EBUBCBTF UBCMFSPXTTJ[F WBSMJCNZTRMJCEBUB WBSMJCNZTRMNBNZ EBUBCBTF໊Ͱ σΟϨΫτϦ͕࡞͞Ε ςʔϒϧ͝ͱʹ ϑΝΠϧ͕࡞ΒΕ͍ͯΔ
ɹ݁Ռ EBUBCBTF UBCMFSPXTTJ[F WBSMJCNZTRMJCEBUB WBSMJCNZTRMNBNZ EBUBCBTF໊Ͱ σΟϨΫτϦ͕࡞͞Ε ςʔϒϧ͝ͱʹ ϑΝΠϧ͕࡞ΒΕ͍ͯΔ Ώɹ͑ɹʹ
ɹ݁Ռ EBUBCBTF UBCMFSPXTTJ[F WBSMJCNZTRMJCEBUB WBSMJCNZTRMNBNZ SFQPSUςʔϒϧɹ͕ ߋ৽͞Εͨ߹ ֘ͷϑΝΠϧͷΈߋ৽
ɹNZDOGઃఆํ ɾڞ༗ྖҬ͔Β ɹɹɹςʔϒϧݸผྖҬ ɾదͳϝϞϦׂΓͯ
ɹϝϞϦׂΓͯͱ ɾσʔλͱJOEFY ɹɹɹɹϝϞϦʹΩϟογϡ ɾదͳαΠζ ɹɹɹɹཧϝϞϦͷׂ
ɹઃఆ༰ ͜Ε͚ͩʂ [mysqld] # InnoDBͷσʔλͱindexΛΩϟογϡ͢ΔόοϑΝαΠζ # (ਪཧϝϞϦ8ׂ) innodb_buffer_pool_size=6G # InnoDBͷߋ৽ϩάΛه͢ΔσΟεΫ্ͷϑΝΠϧαΠζ
innodb_log_file_size=1G
ղઆ ⾣JOOPEC@CV⒎FS@QPPM@TJ[F( ɾσʔλͱJOEFYΛΩϟογϡ͓ͯ͘͠αΠζ ɾ%#αʔόʔͷཧϝϞϦ(ʹର͢Δ͓Αׂͦ ɾNZTRM࠶ىಈ࣌ʹׂΓͯΒΕ·͢ ɾॻ͖ࠐΈ࣌ʹύϑΥʔϚϯε্͕ݟࠐ·ΕΔ ɹˏ.Z42-ެࣜ
ղઆ ⾣JOOPEC@MPH@pMF@TJ[F( ɾ*OOP%#ͷߋ৽ϩάαΠζ ɾDPNNJUཤྺΛه͢Δ ɹˠ.Z42-DPNNJU࣌ɺ͍ͬͨΜϩάʹه͞ΕΔ ɾϑΝΠϧγʔέϯγϟϧͳͷͰɺߋ৽͕͍ ɾੵΜͩDPNNJUΛॱ࣮࣍σʔλʹө͢Δ
ͦͷଞͷઃఆ ⾣εϩʔΫΤϦϩάؔ࿈ [mysqld] # εϩʔΫΤϦͷग़ྗઃఆ slow_query_log=ON # εϩʔΫΤϦͱఆ͢Δඵ long_query_time=3 #
εϩʔΫΤϦͷॴ log-slow-queries=/var/log/slow.log
ͦͷଞͷઃఆ ⾣ΫΤϦΩϟογϡؔ࿈ [mysqld] # ΫΤϦΩϟογϡ࠷େαΠζ query_cache_limit=16M # ΫΤϦΩϟογϡͰ༻͢ΔϝϞϦαΠζ query_cache_size=512M #
ΫΤϦΩϟογϡͷλΠϓ # 0:off, 1:ON SELECT SQL_NO_CACHE, 2:DEMAND SELECT SQL_CACHE query_cache_type=1⊠
NZDOGઃఆ݁Ռ ⾣ඵؒϦΫΤετʂ ⾣ϝϞϦ͕ੵ·Ε͚ͨͩՔಇʂ ⾣ςʔϒϧݸผͰߋ৽ܥ͕ૣ͘ʂ ⾣ΫΤϦΩϟογϡώοτʂ ⾣JOEFYݟ͠ͰεϩʔΫΤϦղফʂ
ɹNZDOGઃఆ·ͱΊ ⾣αʔϏεʹԠͯ͡దʹઃఆʂ ⾣σϑΥϧτμϝʂθολΠʂ ⾣ઃఆޙͷఆظతʹࢹʂ ɹˠνϡʔχϯάܧଓ໋͕ʂ ⾣ςʔϒϧઃܭܭըతʹʂ
ແࣄʹɾɾɾ αʔϏε͕ ӡ༻ʹ͑ΒΕΔΑ͏ʹ
ΫΤϦΩϟογϡ ଌఆ
ଌఆ NZDOGઃఆ͔ͯ͠Βिؒ ΫΤϦΩϟογϡ͕ Ͳ͏ͳͬͨͷ͔
Δ͜ͱ ΫΤϦΩϟογϡΛదʹ࣋ͨͤ ݁ՌΛͳΔ͘Ωϟογϡ͔Βฦ͢Α͏ νϡʔχϯάΛߦͬͨ ݁ՌΛݕূ Ͱݕূ
ΫΤϦΩϟογϡͱ %#Λ4&-&$5ͨ݁͠ՌΛ ϝϞϦʹΩϟογϡ͠ ࣍ʹಉҰͷΫΤϦͷ߹ Ωϟογϡ͔Β݁ՌΛฦ͢
ɹઃఆ༰ [mysqld] # ΫΤϦΩϟογϡ࠷େαΠζ query_cache_limit=16M # ΫΤϦΩϟογϡͰ༻͢ΔϝϞϦαΠζ query_cache_size=512M # ΫΤϦΩϟογϡͷλΠϓ
# 0:off, 1:ON SELECT SQL_NO_CACHE, 2:DEMAND SELECT SQL_CACHE query_cache_type=1⊠
ઃఆͷ֬ೝ NZTRM4)087"3*"#-&4-*,&bRVFSZ@DBDIF +------------------------------+-----------+ | Variable_name | Value | +------------------------------+-----------+ |
have_query_cache | YES | | query_cache_limit | 16777216 | | query_cache_min_res_unit | 4096 | | query_cache_size | 536870912 | | query_cache_type | ON | | query_cache_wlock_invalidate | OFF | +------------------------------+-----------+
ઃఆͷղઆ ⾣IBWF@RVFSZ@DBDIFɿ:&4 ɹΫΤϦΩϟογϡΛ ɹ༻Մೳ͔Ͳ͏͔
ઃఆͷղઆ ⾣RVFSZ@DBDIF@MJNJUɿ ɹͭͷRVFSZͷ࣮ߦ݁Ռ ɹɹͱͯ͠ ɹDBDIF͢Δ࠷େͷαΠζ
ઃఆͷղઆ ⾣RVFSZ@DBDIF@TJ[Fɿ ɹΫΤϦΩϟογϡͷ ɹ૯ྖҬ
ઃఆͷղઆ ⾣RVFSZ@DBDIF@UZQFɿ0/PS ɹ4&-&$542-@/0@$"$)& ɹͰ࢝·ΔΫΤϦҎ֎Ωϟογϡ Ωϟογϡ͔Β ໌ࣔతʹআ֎Ͱ͖Δ
ɹөঢ়ଶͷݕূ NZTRM4)084&44*0/45"564-*,&b2DBDIF +-------------------------+-----------+ | Variable_name | Value | +-------------------------+-----------+ |
Qcache_free_blocks | 791 | | Qcache_free_memory | 533156064 | | Qcache_hits | 1442086 | | Qcache_inserts | 291072 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 3599 | | Qcache_queries_in_cache | 1760 | | Qcache_total_blocks | 4361 | +-------------------------+-----------+
өͷղઆ ⾣2DBDIF@IJUTɿ ɹΫΤϦʔ݁Ռ͕ ɹΫΤϦʔΩϟογϡ͔Βฦ͞Εͨ ɹͭ·ΓΩϟογϡώοτ Ωϟογϡʹ͋ΔΫΤϦʔ͕ ΘΕΔͨͼʹΠϯΫϦϝϯτ
өͷղઆ ⾣2DBDIF@JOTFSUTɿ ɹΫΤϦʔΩϟογϡʹՃ͞Εͨ ɹΫΤϦʔͷ
өͷղઆ ⾣2DBDIF@OPU@DBDIFEɿ ɹΩϟογϡͰ͖ͳ͍͔ ɹRVFSZ@DBDIF@UZQFઃఆͷͨΊ ɹΩϟογϡ͞Εͳ͔ͬͨ ϝϞϦෆͳͲͰΩϟογϡ͞Εͳ͍ ߹͋ΔͷͰҙ
ɹ݁Ռ ΫΤϦΩϟογϡIJU
ώοτͷܭࢉ શΫΤϦʔ ͷͰ ΫΤϦΩϟογϡώοτΛ আࢉ͢Δ
ώοτͷܭࢉ શΫΤϦʔ Ωϟογϡ͔Βฦͨ͠ ʴ Ωϟογϡ͔Βฦͤͳ͔ͬͨ
ώοτͷܭࢉ Ωϟογϡ͞ΕΔͱ 2DBDIF@JOTFSUT͕ ΧϯτΞοϓ͞ΕΔ Ωϟογϡʹ ৽نొͨ͠
ώοτͷܭࢉ ΩϟογϡʹొͰ͖ͳ͍ͱ 2DBDIF@OPU@DBDIFE͕ ΧϯτΞοϓ͞ΕΔ Ωϟογϡ͔Β ฦͤͳ͔ͬͨ
ώοτͷܭࢉ ⾣2DBDIF@IJUTɿ ⾣2DBDIF@JOTFSUTɿ ⾣2DBDIF@OPU@DBDIFEɿ
ʜ
ɹͨͩ͠ɾɾɾ Ұൠతʹ ΛԼճͬͨΒ ͍Ζ͍Ζݟͨ͠ํ͕͍͍
ҙ ʲલఏʳ ΫΤϦΩϟογϡ 4&-&$5ʢݕࡧʣ
ҙ ॻ͖ࠐΈ͕ଟൃ͢Δ ςʔϒϧʹ͔ͳ͍ Ωϟογϡ͕ॻ͖ΘΔ
ҙ ΫΤϦΩϟογϡΛΊ ϓϩάϥϜଆͰΩϟογϡ NFNDBDIFEͳͲ
ɹΫΤϦΩϟογϡ·ͱΊ ⾣ϝϞϦʹԠͯ͡దʹઃఆʂ ⾣IJUΛܧଓͯ͠ܭଌʂ ⾣αʔϏεͷੑ࣭ΛݟۃΊΔʂ ⾣ܿ͘ϓϩάϥϜʹͤΔʂ
ϨϓϦέʔγϣϯ ࣮ࢪ
͜͜·ͰͰɾɾɾ ɾӡ༻͕҆ఆ ɾΫΤϦΩϟογϡ ɹɹɹώοτ҆ఆ
͔͠͠
՝ Ϛελʔ͕ࢮ͵ͱ σʔλ͕શ෦ࢮ͵
ෳ Ϛελʔ͔͠ͳ͍ ݱঢ়ʹ εϨʔϒΛ࡞Γ
ෳ ϨϓϦέʔγϣϯ Λ࣮ࢪ͠·͢
ɹϨϓϦέʔγϣϯͱ ⾣σʔλϕʔεશମͷෳ ϨϓϦΧ ⾣ผͷαʔόʔʹෳʢεϨʔϒʣ ⾣.Z42-ͷඪ४ػೳͰ͓खܰ ⾣΄΅࣌ؒࠩͳ͠ʹಉظ
ߏ Ϛελʔ ʢ୯Ұʣ εϨʔϒ ʢʣ εϨʔϒ ʢOʣ ɾɾɾ
Ϛελʔ ⾣σʔλΛߋ৽͢Δଆ ⾣ߋ৽༰ΛεϨʔϒ͕औΓʹདྷΔ ɹˠεϨʔϒʹର͠ߋ৽ΠϕϯτΛ௨ ⾣ෳͷεϨʔϒΛ࣋ͯΔ
εϨʔϒ ⾣ߋ৽༻Ͱͳ͘ࢀর༻ ⾣Ϛελʔͷߋ৽༰Λड͚औΔ ⾣ϚελʔͷόΠφϦϩάΛऔಘ ⾣ߋ৽༰Λ%#ʹө ⾣ͭͷϚελʔͷΈ࣋ͯΔ
ϝϦοτ ⾣ࢀর 4&-&$5 ੑೳͷ্ ݕࡧॲཧ͕ॏ͍߹ εϨʔϒΛࢀরܥʹͯ͠ ෛՙࢄ
ϝϦοτ ⾣Մ༻ੑͷߴ͍ߏͷ࣮ݱ Ϛελʔোͷ߹ εϨʔϒΛϚελʔʹঢ֨ μϯλΠϜॖ
ϝϦοτ ⾣όοΫΞοϓαʔόʔ εϨʔϒͰόοΫΞοϓ ϚελʔʹӨڹͳ͘ όοΫΞοϓऔಘ
ࣄલ४උ ⾣ϨϓϦέʔγϣϯϢʔβʔ࡞ ⾣ϚελʔՔಇঢ়ଶͷ֬ೝ ⾣ϚελʔόΠφϦϩάͷ֬ೝ ⾣εϨʔϒͷઃఆ֬ೝ
ࣄલ४උ ⾣ϨϓϦέʔγϣϯϢʔβʔ࡞ ⾣ϚελʔՔಇঢ়ଶͷ֬ೝ ⾣ϚελʔόΠφϦϩάͷ֬ೝ ⾣εϨʔϒͷઃఆ֬ೝ
ɹɹϨϓϦέʔγϣϯϢʔβʔ࡞ ⾣ఆٛ ɹɾϚελʔଆʹ࡞ ɹɾεϨʔϒ͔Βଓ͢Δ ɹɾϨϓϦέʔγϣϯઐ༻Ϣʔβʔ
ɹɹϨϓϦέʔγϣϯϢʔβʔ࡞ ⾣࡞ίϚϯυ NZTRM NBTUFS $3&"5&64&3 NZTRM NBTUFS `SFQM`!`<εϨʔϒͷϗετ໊>` NZTRM NBTUFS
*%&/5*'*&%#:1"44803%` `
ɹɹϨϓϦέʔγϣϯϢʔβʔ࡞ ⾣ݖݶίϚϯυ NZTRM NBTUFS (3"/53&1-*$"5*0/4-"7& NZTRM NBTUFS 0/ 50
NZTRM NBTUFS `SFQM`!`<εϨʔϒͷϗετ໊>`
ࣄલ४උ ⾣ϨϓϦέʔγϣϯϢʔβʔ࡞ ⾣ϚελʔՔಇঢ়ଶͷ֬ೝ ⾣ϚελʔόΠφϦϩάͷ֬ೝ ⾣εϨʔϒͷઃఆ֬ೝ
ϚελʔͷNZDOG [mysqld] # εϨʔϒʹ௨͢ΔόΠφϦϩά(࣮ࡍφόϦϯά͞ΕΔ) log-bin=mysql-bin # ϨϓϦέʔγϣϯ࣌ͷɺαʔόʔϢχʔΫID server-id=1001 # όΠφϦϩάϑΝΠϧͷϩʔςʔτ
set-variable=expire_logs_days=3
[mysqld] # εϨʔϒʹ௨͢ΔόΠφϦϩά(࣮ࡍφόϦϯά͞ΕΔ) log-bin=mysql-bin # ϨϓϦέʔγϣϯ࣌ͷɺαʔόʔϢχʔΫID server-id=1001 # όΠφϦϩάϑΝΠϧͷϩʔςʔτ set-variable=expire_logs_days=3
ϚελʔͷNZDOG DPNNJUΛ௨ޙ εϨʔϒ͕ଓͯ͠औಘ WBSMJCNZTRM NZTRMCJO999999
[mysqld] # εϨʔϒʹ௨͢ΔόΠφϦϩά(࣮ࡍφόϦϯά͞ΕΔ) log-bin=mysql-bin # ϨϓϦέʔγϣϯ࣌ͷɺαʔόʔϢχʔΫID server-id=1001 # όΠφϦϩάϑΝΠϧͷϩʔςʔτ set-variable=expire_logs_days=3
ϚελʔͷNZDOG εϨʔϒ͔Βݟͨ Ϛελʔͷ*%
[mysqld] # εϨʔϒʹ௨͢ΔόΠφϦϩά(࣮ࡍφόϦϯά͞ΕΔ) log-bin=mysql-bin # ϨϓϦέʔγϣϯ࣌ͷɺαʔόʔϢχʔΫID server-id=1001 # όΠφϦϩάϑΝΠϧͷϩʔςʔτ set-variable=expire_logs_days=3
ϚελʔͷNZDOG ଟ͗͘͢͠Δͱ ετϨʔδѹഭ
ࣄલ४උ ⾣ϨϓϦέʔγϣϯϢʔβʔ࡞ ⾣ϚελʔՔಇঢ়ଶͷ֬ೝ ⾣ϚελʔόΠφϦϩάͷ֬ೝ ⾣εϨʔϒͷઃఆ֬ೝ
ɹɹϚελʔόΠφϦϩάͷ֬ೝ ⾣όΠφϦϩάͱҐஔใ ɹɾόΠφϦϩάϑΝΠϧͱ ɹɹɹˠϚελʔ͕DPNNJUͨ͠ཤྺ ɹɾϩʔςʔτ͞ΕΔ ɹɹɹˠݱࡏͷϑΝΠϧ໊Λ֬ೝ ɹɾͲ͜·ͰDPNNJUͰ͖ͯΔ͔ ɹɹɹˠҐஔใΛ֬ೝ
ɹɹϚελʔόΠφϦϩάͷ֬ೝ mysql> SHOW MASTER STATUS\G ********* 1. row ********* File:
mysql-bin.000075 Position: 588201136 Binlog_Do_DB: Binlog_Ignore_DB: 1 row in set (0.01 sec)
ɹɹϚελʔόΠφϦϩάͷ֬ೝ mysql> SHOW MASTER STATUS\G ********* 1. row ********* File:
mysql-bin.000075 Position: 588201136 Binlog_Do_DB: Binlog_Ignore_DB: 1 row in set (0.01 sec) DPNNJUΛ௨ޙ εϨʔϒ͕ଓͯ͠औಘ WBSMJCNZTRM NZTRMCJO999999
ɹɹϚελʔόΠφϦϩάͷ֬ೝ mysql> SHOW MASTER STATUS\G ********* 1. row ********* File:
mysql-bin.000075 Position: 588201136 Binlog_Do_DB: Binlog_Ignore_DB: 1 row in set (0.01 sec) ϚελʔͰ DPNNJU͕࣮ߦ͞Εͨ ϙδγϣϯ
ɹɹϚελʔόΠφϦϩάͷ֬ೝ mysql> SHOW MASTER STATUS\G ********* 1. row ********* File:
mysql-bin.000075 Position: 588201136 Binlog_Do_DB: Binlog_Ignore_DB: 1 row in set (0.01 sec) εϨʔϒઃఆͰ༻͢ΔͨΊ ϝϞ͓͖ͯ͠·͠ΐ͏
⾣εϨʔϒΛ࡞Δࡍͷݪଇ ɹϚελʔΛϩοΫͯ͠EVNQ͠ ɹಉҰͷঢ়ଶͰϦετΞͯ͠ ɹϑΝΠϧɾϙδγϣϯΛ߹ΘͤΔ ࠩɾൈ͚࿙Εͳ͘ ϨϓϦέʔγϣϯ։࢝ ɹɹϚελʔόΠφϦϩάͷ֬ೝ
ࣄલ४උ ⾣ϨϓϦέʔγϣϯϢʔβʔ࡞ ⾣ϚελʔՔಇঢ়ଶͷ֬ೝ ⾣ϚελʔόΠφϦϩάͷ֬ೝ ⾣εϨʔϒͷઃఆ֬ೝ
ɹɹεϨʔϒͷઃఆ֬ೝ mysql> SHOW SLAVE STATUS\G **************** 1. row **************** Slave_IO_State:
Master_Host: [Ϛελʔͷϗετ໊] Master_User: repl Master_Log_File: mysql-bin.000009 Read_Master_Log_Pos: 303456264 Slave_IO_Running: No Slave_SQL_Running: No Seconds_Behind_Master: NULL Master_Server_Id: 0 1 row in set (0.01 sec)
ɹɹεϨʔϒͷઃఆ֬ೝ ⾣4MBWF@*0@4UBUFɿۭจࣈ ɹεϨʔϒͷݱࡏͷεςʔλε ɹϨϓϦέʔγϣϯ్͕Ε͍ͯΔͨΊ ɹۭจࣈͱͳ͍ͬͯΔ ࣮ߦ͞Ε͍ͯΕ 8BJUJOHGPSNBTUFSUPTFOEFWFOU
ɹɹεϨʔϒͷઃఆ֬ೝ ⾣.BTUFS@6TFSɿSFQM εϨʔϒ͔ΒϚελʔʹ ଓ͢ΔϢʔβʔ໊ ɹ ϚελʔͰ࡞ͨ͠ઐ༻Ϣʔβʔ
ɹɹεϨʔϒͷઃఆ֬ೝ ⾣.BTUFS@-PH@'JMFɿNZTRMCJO εϨʔϒ͕Ϛελʔ͔Β औಘ͢ΔόΠφϦϩά ɹ Քಇ͍ͯ͠ͳ͔ͬͨͷͰ ζϨ͍ͯΔ
ɹɹεϨʔϒͷઃఆ֬ೝ ⾣
[email protected]
@-PH@1PTɿ εϨʔϒͷ*0εϨου͕ ࠷ޙʹಡΈऔͬͨҐஔ ɹ ͔͜͜ΒϨϓϦέʔγϣϯ࠶։͕ͩ େ͖͘ζϨ͍ͯΔ
ɹɹεϨʔϒͷઃఆ֬ೝ ⾣4MBWF@*0@3VOOJOHɿ/0 εϨʔϒͷ*0εϨου͕ ࣮ߦ͞Ε͍ͯͳ͍ ɹ ϚελʔͷόΠφϦϩά͕ҧ͏ͷͰ ଓͰ͖͍ͯͳ͍
ɹɹεϨʔϒͷઃఆ֬ೝ ⾣4MBWF@42-@3VOOJOHɿ/0 εϨʔϒͷ42-εϨου͕ ࣮ߦ͞Ε͍ͯͳ͍ ɹ εϨʔϒͷ%#͕ ߋ৽͞Ε͍ͯͳ͍
ɹɹεϨʔϒͷઃఆ֬ೝ ⾣4FDPOET@#
[email protected]
ɿ/6-- Ϛελʔʹൺͯ Ԇ͍ͯ͠Δඵ ɹ ϨϓϦέʔγϣϯ࣮ߦ͞Ε͍ͯͳ͍
ɹϨϓϦέʔγϣϯखॱ ⾣ϚελʔͷEVNQΛऔಘ ⾣εϨʔϒͷNZDOGઃఆ ⾣εϨʔϒʹϦετΞ ⾣εϨʔϒઃఆมߋ ⾣ϨϓϦέʔγϣϯ࣮ߦ ⾣࣮ߦঢ়گΛࢹ
ɹϨϓϦέʔγϣϯखॱ ⾣ϚελʔͷEVNQΛऔಘ ⾣εϨʔϒͷNZDOGઃఆ ⾣εϨʔϒʹϦετΞ ⾣εϨʔϒઃఆมߋ ⾣ϨϓϦέʔγϣϯ࣮ߦ ⾣࣮ߦঢ়گΛࢹ
ɹɹϚελʔͷEVNQΛऔಘ ⾣ϚελʔΛϩοΫ mysql(master)> FLUSH TABLES WITH READ LOCK; Query OK,
0 rows affected (0.00 sec) ⾣όΠφϦϩάͱϙδγϣϯऔಘ mysql(master)> SHOW MASTER STATUS; File: mysql-bin.000075 Position: 588201136 Binlog_Do_DB: Binlog_Ignore_DB: 1 row in set (0.01 sec)
ɹɹϚελʔͷEVNQΛऔಘ ⾣ϚελʔΛϩοΫ mysql(master)> FLUSH TABLES WITH READ LOCK; Query OK,
0 rows affected (0.00 sec) ⾣όΠφϦϩάͱϙδγϣϯऔಘ mysql(master)> SHOW MASTER STATUS; File: mysql-bin.000075 Position: 588201136 Binlog_Do_DB: Binlog_Ignore_DB: 1 row in set (0.01 sec) εϨʔϒઃఆͰ༻͢ΔͨΊ ϝϞ͓͖ͯ͠·͠ΐ͏
ɹɹϚελʔͷEVNQΛऔಘ ⾣EVNQऔಘ $ mysqldump -u root -p mamy1326 > gzip
mamy1326.dump.gz ɾผίϯιʔϧ͔Β࣮ࢪ ɹˠRVJU͢ΔͱϩοΫ͕֎Ε·͢ ɾετϨʔδ༰ྔΛߟྀͯ͠H[JQ ɾTDQίϚϯυͰεϨʔϒʹసૹ
ɹɹϚελʔͷEVNQΛऔಘ ⾣ϚελʔͷϩοΫΛղআ mysql(master)> UNLOCK TABLES; Query OK, 0 rows affected
(0.00 sec)
ɹϨϓϦέʔγϣϯखॱ ⾣ϚελʔͷEVNQΛऔಘ ⾣εϨʔϒͷNZDOGઃఆ ⾣εϨʔϒʹϦετΞ ⾣εϨʔϒઃఆมߋ ⾣ϨϓϦέʔγϣϯ࣮ߦ ⾣࣮ߦঢ়گΛࢹ
ɹɹεϨʔϒͷNZDOGઃఆ [mysqld] # εϨʔϒͷαʔόʔID server-id=1002 # Ϛελʔͷঢ֨Λߟྀ͠ɺϩΪϯάΛ༗ޮʹ͢Δ log-bin=mysql-bin # όΠφϦϩάϑΝΠϧͷϩʔςʔτ
set-variable=expire_logs_days=3 # όΠφϦϩάͷग़ྗઃఆ log_slave_updates
[mysqld] # εϨʔϒͷαʔόʔID server-id=1002 # Ϛελʔͷঢ֨Λߟྀ͠ɺϩΪϯάΛ༗ޮʹ͢Δ log-bin=mysql-bin # όΠφϦϩάϑΝΠϧͷϩʔςʔτ set-variable=expire_logs_days=3
# όΠφϦϩάͷग़ྗઃఆ log_slave_updates ɹɹεϨʔϒͷNZDOGઃఆ ϚελʔɺεϨʔϒ શͯ߹Θͤͯ Ұҙͷ*%
[mysqld] # εϨʔϒͷαʔόʔID server-id=1002 # Ϛελʔͷঢ֨Λߟྀ͠ɺϩΪϯάΛ༗ޮʹ͢Δ log-bin=mysql-bin # όΠφϦϩάϑΝΠϧͷϩʔςʔτ set-variable=expire_logs_days=3
# όΠφϦϩάͷग़ྗઃఆ log_slave_updates ɹɹεϨʔϒͷNZDOGઃఆ όΠφϦϩάઃఆ Ϛελʔʹঢ֨ͨ͠߹ εϨʔϒʹ௨͢Δ
[mysqld] # εϨʔϒͷαʔόʔID server-id=1002 # Ϛελʔͷঢ֨Λߟྀ͠ɺϩΪϯάΛ༗ޮʹ͢Δ log-bin=mysql-bin # όΠφϦϩάϑΝΠϧͷϩʔςʔτ set-variable=expire_logs_days=3
# όΠφϦϩάͷग़ྗઃఆ log_slave_updates ɹɹεϨʔϒͷNZDOGઃఆ ༰ྔѹഭ͠ͳ͍Α͏ʹ
[mysqld] # εϨʔϒͷαʔόʔID server-id=1002 # Ϛελʔͷঢ֨Λߟྀ͠ɺϩΪϯάΛ༗ޮʹ͢Δ log-bin=mysql-bin # όΠφϦϩάϑΝΠϧͷϩʔςʔτ set-variable=expire_logs_days=3
# όΠφϦϩάͷग़ྗઃఆ log_slave_updates ɹɹεϨʔϒͷNZDOGઃఆ εϨʔϒͰ όΠφϦϩάΛग़ྗ͠ Ϛελʔঢ֨Մೳʹ
ɹɹεϨʔϒͷͦͷଞͷ࡞ۀ ⾣NZDOGΛຊ൪ʹ߹ΘͤΔ ⾣NZTRM࠶ىಈ ⾣ϦετΞରͷ ɹɹɹσʔλϕʔεআɾ࠶࡞
ɹϨϓϦέʔγϣϯखॱ ⾣ϚελʔͷEVNQΛऔಘ ⾣εϨʔϒͷNZDOGઃఆ ⾣εϨʔϒʹϦετΞ ⾣εϨʔϒઃఆมߋ ⾣ϨϓϦέʔγϣϯ࣮ߦ ⾣࣮ߦঢ়گΛࢹ
ɹɹεϨʔϒʹϦετΞ ⾣ϦετΞ࣮ߦ ɾετϨʔδ༰ྔʹҙʂ ɹɹˠαΠζେ͖ΊͷόΠφϦϩά͕ ɹɹɹɹͲΜͲΜͰ͖ͯ༰ྔΛѹഭ $ zcat mamy1326.dump.gz | mysql
-u root -p mamy1326
ɹɹεϨʔϒʹϦετΞ ⾣ϦετΞ࣮ߦ ɾετϨʔδ༰ྔʹҙʂ ɹɹˠαΠζେ͖ΊͷόΠφϦϩά͕ ɹɹɹɹͲΜͲΜͰ͖ͯ༰ྔΛѹഭ $ zcat mamy1326.dump.gz | mysql
-u root -p mamy1326 163(&."45&3-0(450 bNZTRMCJOYYYYYY` దʹύʔδ͠·͠ΐ͏
ɹϨϓϦέʔγϣϯखॱ ⾣ϚελʔͷEVNQΛऔಘ ⾣εϨʔϒͷNZDOGઃఆ ⾣εϨʔϒʹϦετΞ ⾣εϨʔϒઃఆมߋ ⾣ϨϓϦέʔγϣϯ࣮ߦ ⾣࣮ߦঢ়گΛࢹ
ɹεϨʔϒઃఆมߋ ⾣ϚελʔͰϝϞͨ͠༰Λઃఆ mysql> STOP SLAVE; mysql> RESET SLAVE; mysql> CHANGE
MASTER TO -> master_log_file = ’mysql-bin.000075’, -> master_log_pos = 588201136;
mysql> STOP SLAVE; mysql> RESET SLAVE; mysql> CHANGE MASTER TO
-> master_log_file = ’mysql-bin.000075’, -> master_log_pos = 588201136; ɹεϨʔϒઃఆมߋ ⾣ϚελʔͰϝϞͨ͠༰Λઃఆ εϨʔϒΛࢭΊ·͢
mysql> STOP SLAVE; mysql> RESET SLAVE; mysql> CHANGE MASTER TO
-> master_log_file = ’mysql-bin.000075’, -> master_log_pos = 588201136; ɹεϨʔϒઃఆมߋ ⾣ϚελʔͰϝϞͨ͠༰Λઃఆ εϨʔϒ͕อ͍࣋ͯͨ͠ ϨϓϦέʔγϣϯҐஔΛ Ϧηοτ͠·͢
mysql> STOP SLAVE; mysql> RESET SLAVE; mysql> CHANGE MASTER TO
-> master_log_file = ’mysql-bin.000075’, -> master_log_pos = 588201136; ɹεϨʔϒઃఆมߋ ⾣ϚελʔͰϝϞͨ͠༰Λઃఆ ϚελʔͷόΠφϦϩάɺ ϙδγϣϯΛઃఆ
ɹϨϓϦέʔγϣϯखॱ ⾣ϚελʔͷEVNQΛऔಘ ⾣εϨʔϒͷNZDOGઃఆ ⾣εϨʔϒʹϦετΞ ⾣εϨʔϒઃఆมߋ ⾣ϨϓϦέʔγϣϯ࣮ߦ ⾣࣮ߦঢ়گΛࢹ
ɹϨϓϦέʔγϣϯ࣮ߦ ⾣ϨϓϦέʔγϣϯͷ։࢝ mysql> START SLAVE; ઃఆͨ͠ϙδγϣϯ͔Β ಉظ͕࣮ߦ͞Ε·͢
ɹϨϓϦέʔγϣϯ࣮ߦ ⾣ϨϓϦέʔγϣϯͷ֬ೝ mysql> SHOW SLAVE STATUS\G ***************** 1. row *****************
Slave_IO_State: Waiting for master to send event Master_Log_File: mysql-bin.000075 Read_Master_Log_Pos: 878873047 Slave_IO_Running: Yes Slave_SQL_Running: Yes Exec_Master_Log_Pos: 605504154 Seconds_Behind_Master: 244615 Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Master_Server_Id: 1001
ɹϨϓϦέʔγϣϯͷ֬ೝ ⾣4MBWF@*0@4UBUFɿ 8BJUJOHGPSNBTUFSUPTFOEFWFOU εϨʔϒͷݱࡏͷεςʔλε ϨϓϦέʔγϣϯ͕։࢝͞Ε Ϛελʔ͔ΒͷΠϕϯτͪ
ɹϨϓϦέʔγϣϯͷ֬ೝ ⾣.BTUFS@-PH@'JMFɿ NZTRMCJO ϚελʔͷόΠφϦϩάϑΝΠϧ ݱࡏϚελͰߋ৽͞Ε͍ͯΔ ϑΝΠϧ໊ʹͳ͍ͬͯΔ
ɹϨϓϦέʔγϣϯͷ֬ೝ ⾣
[email protected]
@-PH@1PTɿ ϚελʔͷόΠφϦϩά͔Β *0εϨου͕ಡΈऔͬͨҐஔ ˞42-࣮ߦ͞ΕͨͱݶΒͳ͍
ɹϨϓϦέʔγϣϯͷ֬ೝ ⾣&
[email protected]
@-PH@1PTɿ *0εϨου͕ಡΈࠐΜͩϩά͔Β 42-εϨου͕ ࣮ߦͨ͠ΫΤϦͷҐஔ
ɹϨϓϦέʔγϣϯͷ֬ೝ ⾣4FDPOET@#
[email protected]
ɿ εϨʔϒ͕Ϛελʔʹൺ Ԇ͍ͯ͠Δඵ
ɹϨϓϦέʔγϣϯͷ֬ೝ ⾣4MBWF@*0@3VOOJOHɿ:&4 ϚελʔͷόΠφϦϩάΛ औಘͰ͖͍ͯΔ
ɹϨϓϦέʔγϣϯͷ֬ೝ ⾣4MBWF@42-@3VOOJOHɿ:&4 औಘͨ͠όΠφϦϩάͷ 42-࣮ߦͰ͖͍ͯΔ
ɹϨϓϦέʔγϣϯखॱ ⾣ϚελʔͷEVNQΛऔಘ ⾣εϨʔϒͷNZDOGઃఆ ⾣εϨʔϒʹϦετΞ ⾣εϨʔϒઃఆมߋ ⾣ϨϓϦέʔγϣϯ࣮ߦ ⾣࣮ߦঢ়گΛࢹ
ɹ࣮ߦঢ়گΛࢹ mysql> SHOW SLAVE STATUS\G **************** 1. row ************** Read_Master_Log_Pos:
878873047 Exec_Master_Log_Pos: 605504154 Seconds_Behind_Master: 244615 ⾣࣮ߦޙ
ɹ࣮ߦঢ়گΛࢹ mysql> SHOW SLAVE STATUS\G **************** 1. row ************** Read_Master_Log_Pos:
878873047 Exec_Master_Log_Pos: 605504154 Seconds_Behind_Master: 244615 ⾣࣮ߦޙ mysql> SHOW SLAVE STATUS\G **************** 1. row ************** Read_Master_Log_Pos: 879066686 Exec_Master_Log_Pos: 879066686 Seconds_Behind_Master: 0 ⾣ಉظྃ
ɹϨϓϦέʔγϣϯ·ͱΊ ⾣ෳ࡞ɾӡ༻ྃʂ ⾣ࢀরܥͷαʔόʔ४උྃʂ ⾣όοΫΞοϓαʔόʔ࡞ྃ
ৼΓฦΓ
શମͷৼΓฦΓ ⾣NZDOGઃఆ ຊདྷͷύϑΥʔϚϯεΛಘͨ ⾣ΫΤϦΩϟογϡଌఆ ܧଓࢹͷେࣄ͞Λͬͨ ⾣ϨϓϦέʔγϣϯ࣮ࢪ Խͷ४උ͕Ͱ͖ͨ
՝
ࠓޙͷ՝ ⾣ܧଓࢹͷΈ ֤छγΣϧͰରԠத ⾣ࢀরܥΛεϨʔϒʹ ϓϩάϥϜվमઃܭத ⾣ෆཁϨίʔυͷআ ϩάܥ ஈ֊Λ౿ΜͰআܭըத
Τϐϩʔά
ઃఆ͔ͨ͠Β ऴΘΓͰͳ͍
Πϯϑϥ ϥΠϑαΠΫϧ͕͍
ʑͷࢹɾܭଌ͔Β ઌखΛଧͭʂ
ܧଓྗͳΓ
ࠓҰ൪ ͔͑ͨͬͨ͜ͱ
Πϯϑϥʹಓʹೖ͔ͬͨΓ ਖ਼ܟԕͯ͠·ͨ͠
ͻΐΜͳ͜ͱ͔Βೖͬͨಓ͕ ࠓָͯ͘͠ํ͕ͳ͍ʂ
΄ͱΜͲ1)1ॻ͍ͯͳ͍͠ ॻ͍ͯγΣϧ
WJN͔͠Θͳ͍ͷͰ ຖࠇ͍ը໘
͔͠͠ʂ
ਂ͘ߟ͑ ͭͣͭௐͯ ө͢Δ
ܭଌͯ݁͠ՌΛௐ ࣍ͷखΛଧͭ
࡞ۀϩάΛ ϚʔΫμϯͰશͯه
ΤϯτϦʔʹ͢Δͱ͖ શ෦ௐ͢
ϩʔΧϧʹڥߏஙΛ ΧδϡΞϧʹ͍ͯ͠Δ
Ξτϓοτ ָ͍͠ʂʂʂʂ
ָ͍͠ʂʂʂʂ
ΞϓϦΤϯδχΞ͔ͩΒͬͯ ΠϯϑϥΛ ଞਓͤʹ͠ͳ͍
ΞϓϦΤϯδχΞ͔ͩΒͬͯ ϑϩϯτΤϯυΛ ଞਓͤʹ͠ͳ͍
ੈքΛ͛Δ͜ͱ ΤϯδχΞਓੜͷ͕Γ Λҙຯ͢Δ
Βͳ͍ΑΓ Δ΄͏ָ͕͍͠ʂ
ੈքΛ͛ͯ ͜Ε͔Β ָ͍͠ΤϯδχΞϥΠϑΛʂ
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ
͓·͚ ⾣ݩهࣄͷ͝հ ɾ.Z42-ύϑΥʔϚϯενϡʔχϯά ɹɹNZDOGͷݟ͠ ɹIUUQRJJUBDPNNBNZJUFNTDFBFFDD⒎B ɾ.Z42-ύϑΥʔϚϯενϡʔχϯά ɹɹΫΤϦΩϟογϡద༻ঢ়گͷ֬ೝ ɹIUUQRJJUBDPNNBNZJUFNTEEDGB ɾ.Z42-ϨϓϦέʔγϣϯઃఆ ɹɹखॱɾ֤छεςʔλεͷৄࡉͱτϥϒϧγϡʔςΟϯά
ɹIUUQRJJUBDPNNBNZJUFNTBFEGBCGE