HeatWavejp_Meetup_13_HeatWave をオンプレの MySQL と同じように使おうとしてみた![yoku0825 氏]

>100 Views

May 07, 25

スライド概要

【講演内容】
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/

profile-image

HeatWavejpは、MySQL HeatWave の良さを知っていただき、参加者同士でノウハウやナレッジを共有できるユーザーコミュニティです。参加者同士のつながりを深めるため、以下の活動を行ってまいります。 COMMUNICATION *Slackやconnpassを活用したユーザー同士のコミュニケーションの場の提供 EVENT *オンライン/オフラインでのMeetupセミナーや勉強会の開催(隔月程度) SHARING *製品情報や最新アップデート、リリース情報の共有 INTERACT *参加者のコミュニティ・ネットワークやユーザー同士の交流を促進

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

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

2.

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

3.

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

4.

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

5.

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

6.

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

7.

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

8.

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

9.

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

10.

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

11.

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

12.

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

13.

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

14.

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

15.

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

16.

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

17.

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

18.

おまけ 17/19

19.

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

20.

Any Question and/or Suggestion? 19/19