---
title: HeatWavejp_Meetup_13_HeatWave をオンプレの MySQL と同じように使おうとしてみた！[yoku0825 氏]
tags: 
author: [HeatWavejp](https://convert.docswell.com/user/heatwavejp)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/PJR5X696E9.jpg?width=480
description: 【講演内容】 HeatWave をオンプレの MySQL と同じように使おうとしてみた！無理だった オンプレの MySQL と同じように #とは 　‐ 2台で高可用構成を組みたい 　‐ レプリケーション遅延のないALTER TABLEを実現するツールが使いたい 　‐ Point-In-Time-Recoveryがしたい 　‐ GroupReplicationのSECONDARYを読み取り用に活用したい 　‐ Change Data Capturingにも使えるようにしたい 　‐ ディスク使用量の分析をしたい 　‐ クラッシュさせたりして遊びたい 【発表者】 yoku0825 氏 【イベント情報】 HeatWavejp Meetup #13 https://heatwavejp.connpass.com/event/349599/
published: May 07, 25
canonical: https://convert.docswell.com/s/heatwavejp/54V198-2025-05-07-115655
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/PJR5X696E9.jpg)

HeatWave をオンプレの MySQL と同じように使おう
としてみた！
無理だった
2025/04/17
yoku0825
祝2周年 HeatWave の 〇〇 やってみた！LT大会！！


# Page. 2

![Page Image](https://bcdn.docswell.com/page/PEXK6MQDJX.jpg)

＼こんばんわ／
yoku0825＠とある企業のDBAだったもの
‐ オラクれない
‐ ポスグれない
‐ マイエスキューエる
生息域
‐
‐
‐
‐
Twitterだったもの: @yoku0825
Blog: 日々の覚書
日本MySQLユーザ会副代表
MySQL Casual
1/19


# Page. 3

![Page Image](https://bcdn.docswell.com/page/3EK51G9DJD.jpg)

オンプレの MySQL と同じように #とは
2台で高可用構成を組みたい
レプリケーション遅延のないALTER TABLEを実現するツールが使いたい
Point-In-Time-Recoveryがしたい
GroupReplicationのSECONDARYを読み取り用に活用したい
Change Data Capturingにも使えるようにしたい
ディスク使用量の分析をしたい
クラッシュさせたりして遊びたい
2/19


# Page. 4

![Page Image](https://bcdn.docswell.com/page/L73KQNWP75.jpg)

オンプレの MySQL と同じように #とは
2台で高可用構成を組みたい
レプリケーション遅延のないALTER TABLEを実現するツールが使いたい
Point-In-Time-Recoveryがしたい
GroupReplicationのSECONDARYを読み取り用に活用したい
Change Data Capturingにも使えるようにしたい
ディスク使用量の分析をしたい
クラッシュさせたりして遊びたい
3/19


# Page. 5

![Page Image](https://bcdn.docswell.com/page/87D39WK3JG.jpg)

2台で高可用構成を組みたい
Active / Standby 型の高可用構成
‐ Standbyにトラフィックを流しちゃうとどっちが転けても影響が出るのでStandbyは何もしない
GroupReplication3台と比べるとコストが3割減る
‐ というかGroupReplication3台にするとコストが1.5倍になる
‐ 台数が気にならないならGroupReplicationでいいはず
HeatWave MySQLの「読み取りレプリカの作成」ではこれはできない
‐ それぞれ別個のHeatWave MySQLインスタンスを作って「チャネルの作成」でつなげて、DNS管理でCNAME
をかぶせて切り替える？
‐ そんなことするなら単にComputeの上にフルスクラッチで作った方がマシ
4/19


# Page. 6

![Page Image](https://bcdn.docswell.com/page/VJP4Z9KP78.jpg)

オンプレの MySQL と同じように #とは
2台で高可用構成を組みたい
レプリケーション遅延のないALTER TABLEを実現するツールが使いたい
Point-In-Time-Recoveryがしたい
GroupReplicationのSECONDARYを読み取り用に活用したい
Change Data Capturingにも使えるようにしたい
ディスク使用量の分析をしたい
クラッシュさせたりして遊びたい
5/19


# Page. 7

![Page Image](https://bcdn.docswell.com/page/2EVXWMVVJQ.jpg)

レプリケーション遅延のないALTER TABLEを実現するツールが使いたい
pt-osc
‐ 使えた
gh-ost
‐ おま環かもしれないけど成功していない…
Rolling Schema Upgrade
‐ SET SESSION sql_log_bin = 0 を駆使してレプリカから ALTER TABLE を流しちゃうアレ
‐ 使えない
Rolling Schema Upgradeの変形
‐ レプリカに先に適用してからフェイルオーバー（特に2台構成だと楽）
‐ 使えない
6/19


# Page. 8

![Page Image](https://bcdn.docswell.com/page/57GVDGL17L.jpg)

オンプレの MySQL と同じように #とは
2台で高可用構成を組みたい
レプリケーション遅延のないALTER TABLEを実現するツールが使いたい
Point-In-Time-Recoveryがしたい
GroupReplicationのSECONDARYを読み取り用に活用したい
Change Data Capturingにも使えるようにしたい
ディスク使用量の分析をしたい
クラッシュさせたりして遊びたい
7/19


# Page. 9

![Page Image](https://bcdn.docswell.com/page/4EQ61XYNEP.jpg)

Point-In-Time-Recoveryがしたい
フツーにできる
ただしバイナリログを手元に残しておくには一ひねり必要
‐ 手元にあるとホットスポットになっているテーブルとか長すぎるトランザクションの検出とかに捗るんだけれども
8/19


# Page. 10

![Page Image](https://bcdn.docswell.com/page/KJ44R6W3J1.jpg)

オンプレの MySQL と同じように #とは
2台で高可用構成を組みたい
レプリケーション遅延のないALTER TABLEを実現するツールが使いたい
Point-In-Time-Recoveryがしたい
GroupReplicationのSECONDARYを読み取り用に活用したい
Change Data Capturingにも使えるようにしたい
ディスク使用量の分析をしたい
クラッシュさせたりして遊びたい
9/19


# Page. 11

![Page Image](https://bcdn.docswell.com/page/LE14QVYZEG.jpg)

GroupReplicationのSECONDARYを読み取り用に活用したい
無理っぽい
HAだけに3倍料金…
‐ 中の人的な文脈だとよくわかる
Semisyncで2台HAするシステムとGroupReplication SinglePrimaryでHAするシステムだったらMySQL Router抜きにしても後
者の方がずっと実装しやすいしメンテナンスが楽
‐ 使う側としてはそれはちょっとコストが…
10/19


# Page. 12

![Page Image](https://bcdn.docswell.com/page/GEWXMLG672.jpg)

オンプレの MySQL と同じように #とは
2台で高可用構成を組みたい
レプリケーション遅延のないALTER TABLEを実現するツールが使いたい
Point-In-Time-Recoveryがしたい
GroupReplicationのSECONDARYを読み取り用に活用したい
Change Data Capturingにも使えるようにしたい
ディスク使用量の分析をしたい
クラッシュさせたりして遊びたい
11/19


# Page. 13

![Page Image](https://bcdn.docswell.com/page/47Z6QMLR73.jpg)

Change Data Capturingにも使えるようにしたい
バイナリログを吸い上げたりするやつ
‐ Debeziumとかtroccoとか
できるにはできるんだけど読み取りレプリカが log_replica_updates=OFF なので必ずソースか
ら取らないといけない
‐ バイナリログ吸うだけならそれでもいいかも知れないけど全件同期からやり直したい時にもソースから吸う…
12/19


# Page. 14

![Page Image](https://bcdn.docswell.com/page/YJ626NW17V.jpg)

オンプレの MySQL と同じように #とは
2台で高可用構成を組みたい
レプリケーション遅延のないALTER TABLEを実現するツールが使いたい
Point-In-Time-Recoveryがしたい
GroupReplicationのSECONDARYを読み取り用に活用したい
Change Data Capturingにも使えるようにしたい
ディスク使用量の分析をしたい
クラッシュさせたりして遊びたい
13/19


# Page. 15

![Page Image](https://bcdn.docswell.com/page/GJ5265MLJ4.jpg)

ディスク使用量の分析をしたい
yoku0825的「MySQLが壊れました」4年連続第1位受賞（個人調べ）
アラートになったとしても、バイナリログが膨らんでいるのかibdファイルが膨らんでいるのか
‐ 稀にibtファイルが膨らんでいたりすることも
ibd/ibtファイルに関しては information_schema.INNODB_TABLESPACES である程度
想像がつくけれど
バイナリログのホットスポットになっているテーブルがどこか ( transaction_length が大きいトラン
ザクションはどれか)とかを調べにくいので「じゃあどうすれば容量に効くの？」が調べにくい
設定によって自動拡張できるのが救い
‐ Always Freeだとオフラインでも拡張できなくて二度と更新できないHeatWave MySQLができあがった（）
14/19


# Page. 16

![Page Image](https://bcdn.docswell.com/page/9E24MN93JR.jpg)

オンプレの MySQL と同じように #とは
2台で高可用構成を組みたい
レプリケーション遅延のないALTER TABLEを実現するツールが使いたい
Point-In-Time-Recoveryがしたい
GroupReplicationのSECONDARYを読み取り用に活用したい
Change Data Capturingにも使えるようにしたい
ディスク使用量の分析をしたい
クラッシュさせたりして遊びたい
15/19


# Page. 17

![Page Image](https://bcdn.docswell.com/page/D7YMXP487M.jpg)

雑なまとめ
コスト度外視ならMySQLとしては十分
「それ、MySQLでできるよ」的なDBA発言をするためには素のMySQLよりもっと考え事が多くな
る
‐ まあ、基本的なことはできるし…はそう
‐ ただ、なるべく関係者に寄り添いたいDBAとしては素のMySQLの方が優しくなれる
まだHeatWave MySQLで使えるEnterpriseEditionの機能がわかりきってないので功夫が足
りていない
‐ 監査ログのセッションを楽しみに来ました
16/19


# Page. 18

![Page Image](https://bcdn.docswell.com/page/VENW15Y9E8.jpg)

おまけ
17/19


# Page. 19

![Page Image](https://bcdn.docswell.com/page/Y79X5YP3J3.jpg)

クラッシュさせたりして遊びたい
主にHAシステムの中で「こんな壊し方をするとHAはどう動くのか？」を観測するため
‐
‐
‐
‐
gdbでアタッチして放置すれば「ハングアップ」を
iptablesでパケットをDROPしてやれば「ネットワークパーティション」を
xfs_freezeしてやれば「ファイルシステムフリーズ」を
cgroupsで「ネットワーク遅延」や「ストレージ遅延」を
あとは趣味
18/19


# Page. 20

![Page Image](https://bcdn.docswell.com/page/G782Y6DL7D.jpg)

Any Question
and/or
Suggestion?
19/19


