Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DBトラブルの原因特定スピードアップ! ~DB可視化の勘所~

Avatar for Akira.S Akira.S
September 25, 2025

DBトラブルの原因特定スピードアップ! ~DB可視化の勘所~

2025年9月12日に開催された「JPOUG Tech Talk Night #14」での発表資料です。
DBの稼働状況やリソース情報を可視化する際のポイントを実例を元に解説しています。

Avatar for Akira.S

Akira.S

September 25, 2025
Tweet

Other Decks in Technology

Transcript

  1. 会社紹介 4 ソフトバンク携帯ユーザー向けの「ソフトバンクカード」のカード発行・運営をし ています。 ソフトバンクカードは、Visa加盟店で利用できるプリペイドカードです。ご利 用金額に応じてTポイントが貯まります。 カード発行業務 決済代行 EC運営事業者さま向けにオンライン決済事業を運営しています。豊富な 決済手段をまとめてご提供しています。

    カード加盟店業務 Visa、Mastercard、UnionPay(銀聯)のメンバーシップライセンスを保 有しており、各ブランドのアクワイアラー(クレジットカード加盟店契約会 社)としての加盟店審査や管理事業、端末決済サービスを提供していま す。 ソフトバンクと共同で、ソフトバンク携帯ユーザー向けの通話料合算請求 「ソフトバンクまとめて支払い」の開発・運営をしています。 キャリア決済 実店舗/訪問販売 EC/ネット店舗 事業内容
  2. ソフトバンク携帯ユーザー向けの「ソフトバンクカード」のカード発行・運営をし ています。 ソフトバンクカードは、Visa加盟店で利用できるプリペイドカードです。ご利 用金額に応じてTポイントが貯まります。 カード発行業務 カード加盟店業務 Visa、Mastercard、UnionPay(銀聯)のメンバーシップライセンスを保 有しており、各ブランドのアクワイアラー(クレジットカード加盟店契約会 社)としての加盟店審査や管理事業、端末決済サービスを提供していま す。

    ソフトバンクと共同で、ソフトバンク携帯ユーザー向けの通話料合算請求 「ソフトバンクまとめて支払い」の開発・運営をしています。 キャリア決済 実店舗/訪問販売 会社紹介 5 決済代行 EC運営事業者さま向けにオンライン決済事業を運営しています。豊富な 決済手段をまとめてご提供しています。 EC/ネット店舗 事業内容
  3. 会社紹介 6 加盟店 通販サイト ゲーム 電子書籍/動画 教育 不動産 その他 チケット

    決済機関 コンビニ支払い 携帯キャリア決済 クレジットカード バーコード決済 口座振替 ポイント支払い アカウント連携決済 当社 決済サービス 全て一本化 リンク 型 API 型 オンライン決済サービス ECサイト向けに多種多様な決済手段に対応した決済画面や決済APIを提供
  4. システム概要図 7 加盟店様 フロントエンド AP 外部接続 GW DB (Master) DB

    (Slave) 決済 管理画面 加盟店様 各種決済機関 GoldenGate
  5. DBの可視化とは? 1. 従来(古来?)のモニタリング プロセス ログ メトリクス ✓CLIでの情報取得 • 変化/変動に気付きにくい ✓監視対象毎にウィンドウ

    • 数が多すぎて見きれない • 準備の手間がかかる ➢ 各種情報の相関がわからない • ウィンドウが分割されていたり時間間隔が統一されていないの で相関関係が読み取りづらい ✓『今』しかわからない • 直近数分でいいから推移が見たい 面倒くさいのにイマイチ意味がない
  6. 可視化の際に見るべき情報 17 1. アクティブセッション数 ❏ 分かること ➢ (オンライン処理)処理滞留の有無 • 瞬間的な上昇(スパイク)は無視してOK

    • 継続的な上昇はDB上で何らかのボトルネックが発生しているとみてよい ➢ (バッチ処理)過度な並列処理 • CPUコア数などのHWの限界を超えた処理の有無 超重要 ❏ 情報ソース ➢ V$SESSION • STATUS=ACTIVE であるセッション数をカウント • DB接続の設計に因るがUSERNAME/SERVICE_NAME/MACHINEなどでグループ化すると良い
  7. 可視化の際に見るべき情報 18 ❏ 情報ソース ➢ V$SESSION • 「待機イベント」は実は「待機クラス」⇒ 待機イベントだと細分化されすぎてわかりづらい •

    「総セッション数」は「アクティブセッション数」から「STATUS = ‘ACTIVE’」の条件を外しただけ 2. 待機イベント・総セッション数 重要 ❏ わかること ➢ アクティブセッション数の変動の原因 • かなり大雑把な情報(真因究明には更に詳細調査が必要) • とはいえ一次調査用としては十分かつわかりやすい
  8. 可視化の際に見るべき情報 19 3. OSメトリクス ❏ 分かること ➢ OSリソース不足 • 正直なところ補足情報でしかない(OSリソースの逼迫=DB処理滞留ではない)

    ※ もちろん放置して良いわけではない 補足情報 ❏ 情報ソース ➢ プラットフォームの機能を利用 • モニタリングプラットフォームにOSメトリクス収集機能はデフォルトで備わっていることが多い • 万が一備わっていない場合はOS標準コマンド(sar、vmstatなど)を活用
  9. 可視化の際に見るべき情報 20 4. GoldenGateレプリケーション状況 ❏ 分かること ➢GoldenGateによる論理レプリケーションのタイムラグ • 当社ではGoldenGateを用いて参照専用スレーブDBを構築しているためこれもモニタリング対象としている •

    他にもDataGuardなど環境によってモニタリング対象を検討すると良い おまけ(?) ❏ 情報ソース ➢<GGスキーマ>.gg_lag • GoldenGateのハートビートテーブル機能を利用した際に作成されるラグ監視用のビュー • 詳細はGoldenGateのドキュメント参照
  10. ダッシュボードを構築する際に意識すること 22 ❏ やりすぎない ➢ 何のための可視化か?そのためには何を可視化すべきか?をよく検討する ➢ 情報は厳選する • 何でもかんでも盛り込まない

    ※人は情報過多になると混乱する • やるなら目的別にダッシュボードを分ける ➢ 可能な限り1画面に収まるようにデザインする • 表示できないとそもそも可視化の意味が無い ❏ わかりやすさ ➢ DBエンジニアだけがわかってもダメ • 「誰が見てもわかる」を意識する(当社はDBエンジニア以外のメンバーやマネージャー層も前出のダッシュボードを見ます) ➢ ダッシュボードのデザインを工夫する 例えば・・・ ・ 重要な物は大きく表示 ・ 併せてに見たい情報は隣接させる など ➢ 以下の様な点でもぱっと見でわかるように表示を工夫する • 時間の単位(秒/分/時間) • ホスト名やインスタンス名は論理名に置き換える • UIは適度に日本語化する