Slide 1

Slide 1 text

DBA/DBREしくじり先生 
 ~やっちゃったな実録集~ 
 db tech showcase 2025 
 LT資料
 ソフトバンク株式会社 
 法人プロダクト本部 プロダクトシステム統括部 
 法人システムイノベーション部 
 
 原 智子(tomo) 


Slide 2

Slide 2 text

自己紹介
 名前:原 智子(tomo @tomomo1015) 
 
 職歴
 ・新卒でSIerにて十数年、PM&DBAに従事 
 ・事業会社にてSRE&DBREを3年従事 
 ・2024年2月より ソフトバンク株式会社にて事業&システム企画(CoE) 
 ・DB界隈の一般人 
 
 好き
 ・娘とカフェ巡り(最近 🚙買いました) 
 ・技術はデータベースが好き 
 この赤ずきんアイコンが 
 目印!


Slide 3

Slide 3 text

このLTでお話すること 
 過去十数年、DBのエンジニアとして 
 成功事例を生み出してきました 


Slide 4

Slide 4 text

このLTでお話すること 
 成功は氷山の一角 
 …ということは 
 
 その成功の●倍も 
 失敗してます 


Slide 5

Slide 5 text

このLTでお話すること 
 今日はこれまで話をしてこなった 
 数々の恥ずかしい失敗事例 を
 ご紹介します! 


Slide 6

Slide 6 text

事例①
 
 確認は
 ていねいに! 


Slide 7

Slide 7 text

事例①
 - 状況
 - SIer(DBAになる前) 
 - 背景
 - 某DBベンダーさんがお客さまに直接、とある製品を紹介 
 - 事前にDBベンダーさん側にてPoCを行い、各要件を満たしている旨を お客様同席の元、伝えられた 
 - その内容を受けて自社ではPoCはせず、そのまま当該製品を導入 
 - 何がおきたか 
 - 性能が全然でない 


Slide 8

Slide 8 text

事例①
 - 何がおきたか 
 - 性能が全然でない 
 - 何をしくじった? 
 - DBベンダさんの性能試験では「無風状態」時に一瞬出た性能だった 
 - 無風状態:他のクエリが何も実行されていない状態での、クエリ性能 
 - よくよく聞くと、データ量やセッション数等々、色々考慮不足 
 - 対するこちらのシステム、平常時トランザクションが3桁/sec 


Slide 9

Slide 9 text

事例①
 - 教訓


Slide 10

Slide 10 text

事例①
 - 教訓
 - 自分の思う「できる」と相手の思う「できる」は、異なる 
 - 例:「オートスケールできる」と言われて、貴方は何だと思いますか? 
 - Read Replica追加 
 - シャーディング
 - ストレージ拡張+再パーティション 
 - ノード追加
 - 相手のせいにしない、絶対 
 - 今回の例においても、DBベンダさんの意見を受け入れた時点で自社に落ち 度がある
 - 誰かのせいにするのは簡単、自分がほんの少しでもできることがあったので あれば、自分にも責がある 


Slide 11

Slide 11 text

事例①
 - その後どうなったの? 
 - どうにか性能が出せないか、試行錯誤を続けた 
 - 結果的に性能は出なかったが、おかげで当該製品について理解を深める ことができた 
 - 数年後、開発元のエンジニアさんとのディスカッションを経て優遇いただけるよう になったのは、今となってはいい思い出 
 1年間ずっと 
 性能試験やってました… 


Slide 12

Slide 12 text

事例②
 
 確認は
 怠らない! 


Slide 13

Slide 13 text

事例②
 - 状況
 - SIer/DBA(DBチームリーダー) 
 - 背景
 - HWリプレイスに伴うDBバージョンアップを実施 
 - 連携製品インストール作業前、軽微なバグFIX版がRL 
 - 良かれと思ってバグFIX版をインストール 
 - 何がおきたか 
 - 製品間でサポートされておらず、メーカーさんより「サポート出来ませ ん」と言われる 


Slide 14

Slide 14 text

事例②
 - 何がおきたか 
 - 製品間でバージョンの互換性が無いと言われ、メーカーさんより  「サ ポート出来ません」と言われる 
 - 気付いたのが、試験終了後 
 - 何をしくじった? 
 - メーカーさんに「このバグFIX版、サポートされますか?」と一言聞くだけの 手間を怠った 
 - 過去何回もやっていたのにまたやってしまった経験 
 - どのレベルかというと、OracleDBで言うと 11.2.0.4 BP 180417 の BPレベルの 違い


Slide 15

Slide 15 text

事例②
 - 教訓


Slide 16

Slide 16 text

事例②
 - 教訓
 - 後の手戻り考えたら、その時手間でも絶対すべき 
 - 頭では「やるべき」と分かっているのに、忙しいとつい手間を省いて しまう 
 - 言い訳をすると当時、要件定義、設計、一部構築作業を一人で実施してい て、余裕がほぼ無かった 
 - とは言え、後のことを考えれば実施すべきだった 


Slide 17

Slide 17 text

事例②
 - その後どうなったの? 
 - 再試験です!!!! 
 - 結果スケジュール遅延等散々ご迷惑をおかけしました 
 - その節は、再試験になったメンバー、お客様含め関係者の皆様、    大変申し 訳ございませんでした 
 あの時確認しておけば…! 
 という後悔の中で 
 一番の失態 


Slide 18

Slide 18 text

事例③
 
 確認は
 記録する! 


Slide 19

Slide 19 text

事例③
 - 状況
 - DBRE
 - 背景
 - Amazon RDS for MySQLのバージョンアップ 
 - MySQL5.X→MySQL8へ移行 
 - Blue/Greenを使って、ほぼ無停止で移行 
 - 何がおきたか 
 - 既存のトランザクション分離レベルの設定、引継ぎ漏れ 


Slide 20

Slide 20 text

事例③
 - 何がおきたか 
 - 既存のトランザクション分離レベルの設定、引継ぎ漏れ 
 - 元々他のパラメータや設定に不備が多く、全面的に見直しが必要だった 
 - tx_isolation → transaction_isolation に変わったことは有名 
 - transaction_isolationをデフォルトの「REPEATABLE-READ」のままでもアプリ側 の試験が問題なく完了したので、問題なしと判断 
 - 設定変更したことはGitのログに一文書いた程度だった 
 - 何をしくじった? 
 - トランザクション分離レベルの懸念を、試験で洗い出すのは難しい 
 - 当たり前だが、アプリケーション側で全パターンの試験を実施することは不可能 
 - リリース後、エラー多発。すぐここが原因と思いつかなかった 
 - 恥ずかしながら、8.0へのVerUpは3回目なのに、この醜態 


Slide 21

Slide 21 text

事例③
 - 教訓


Slide 22

Slide 22 text

事例③
 - 教訓
 - 変更ログはしっかり書きましょう 
 - 当時以下のソース、ナレッジベースは作っていたので、そこにしっかり書く 
 - DB設計書(md):この点だけ書き漏れていた失態 
 - terraform:廃止したパラメータを書いておく 
 - GitHub:変更履歴はちゃんと書く 


Slide 23

Slide 23 text

事例④
 - その後どうなったの? 
 - 設定変更して、エラー解消しました 
 - 気付いたのが上司という失態 
 - その節は、開発に携わったメンバー、巻き込んだSRE・DBREの皆さん、 申し訳 ございませんでした 
 「勇●ヒンメルならトランザクション分離レベ ルを間違えたりしない」という名言が生まれま した


Slide 24

Slide 24 text

他事例
 - DBサーバ側がクラスタorスケールアウトするのに、クライアント側が 追随しない 
 - JDBCやDBのClient側の設定は開発側が設定していたため、Server側 とClient側の設定が一致しなかった 
 - (自身ではないですが)間違って消した 
 - インストールディレクトリを消した 
 - TABLE・VIEWを消した 


Slide 25

Slide 25 text

総括


Slide 26

Slide 26 text

総括
 - 共通していること 
 - 「確認漏れ」が私がよくやってしまう失敗 
 - 教訓
 - 確認は…
 
 丁寧に
 する
 怠らない
 記録する
 信号機カラー 
 信号もよく確認してね 


Slide 27

Slide 27 text

ご清聴ありがとうございました!