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
障害は突然やってくる。OracleDatabaseリカバリコンテスト
Search
Takayuki Nishio
September 12, 2025
Education
0
26
障害は突然やってくる。OracleDatabaseリカバリコンテスト
JPOUG#14で発表した内容になります。
Oracle Databaseの障害対応スキルアップのために、自社で実施した取り組みを共有いたしました。
Takayuki Nishio
September 12, 2025
Tweet
Share
More Decks by Takayuki Nishio
See All by Takayuki Nishio
SelectAIはSQL講師になれるのか?
nisshii
0
12
スタートダッシュ!オラクルマスター23ai
nisshii
0
79
オンプレからADBへのデータ移行。正月休みを獲得した方法 [Oracle]
nisshii
0
250
Oracle CloudWorld 2024現地レポート
nisshii
0
140
SelectAIでSQL研修の演習問題に挑む [Oracle]
nisshii
1
420
Other Decks in Education
See All in Education
Introduction - Lecture 1 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
2.6k
the difficulty into words
ukky86
0
170
Linguaxes de programación
irocho
0
330
自分だけの、誰も想像できないキャリアの育て方 〜偶然から始めるキャリアプラン〜 / Career planning starting by luckly v2
vtryo
1
260
Test-NUTMEG紹介スライド
mugiiicha
0
300
Ch1_-_Partie_1.pdf
bernhardsvt
0
430
QR-koodit opetuksessa
matleenalaakso
0
1.7k
The knowledge panel is your new homepage
bradwetherall
0
200
Library Prefects 2025-2026
cbtlibrary
0
120
Sanapilvet opetuksessa
matleenalaakso
0
34k
高校におけるプログラミング教育を考える
naokikato
PRO
0
180
Master of Applied Science & Engineering: Computer Science & Master of Science in Applied Informatics: Artificial Intelligence and Data Science
signer
PRO
0
840
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
640
Building Applications with DynamoDB
mza
96
6.7k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
Fireside Chat
paigeccino
41
3.7k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
The Language of Interfaces
destraynor
162
25k
Building a Modern Day E-commerce SEO Strategy
aleyda
44
8k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Transcript
Oracle Cloud 失注への軌跡 ~ 努力は無駄にならない ~ しゃちほこオラクル倶楽部 第7回 西尾 孝之
障害は突然やってくる! Oracle Databaseリカバリコンテストでチームのスキルを一段上へ! 2025年9月12日 【JPOUG Tech Talk Night #14】 - Takayuki Nishio -
オーガナイザー紹介 | 西尾 孝之 / Takayuki Nishio 資格 ・ORACLE MASTER
: Platinum DBA 2019, 12c , 11c , 10g , 9i , 8i ・AWS : Database Speciality , Data Analytics , Machine-Learning 認定証 ・マッターホルン登頂…4478m ・モンブラン登頂………4810m ・キリマンジャロ登頂…..5895m Oracleと山を愛するエンジニア(22年目) 2025 OCI Top Engineers 表彰
アジェンダ| チームの実践スキルアップ手法 DBリカバリコンテスト概要 1 2 3 想定障害シナリオ(基本編) 想定障害シナリオ(本当にあった怖い話編) 障害は突然やってくる! スキルアップ実践手法
DB障害対応のスキルをどう鍛えるか? <弊社の業務> 弊社はOracle製品の保守窓口として、お客様から多様な問い合わせを受け付けている。 <対象製品は様々> Database、Fusion Middleware (WebLogic,Forms and Reports) BI,
Golden Gate , Oracle Cloud 等 <問い合わせの内容は?> 製品の使い方、運用中のエラー、障害 <普段のスキルアップは?> 扱う製品の導入訓練(複数OS,複数Ver) 問い合わせナレッジの共有 ナレッジベースでの実施確認 エラー発生時にどんなログをみるか、どんな対応をするか
課題 人によって製品知識に偏りがでる。 ⇒ Oracle製品を扱う以上、 Databaseは当たり前として標準以上のスキルを身に着けてほしい 構築訓練は実施しているが、障害対応で「手を動かせるか」は別。 ⇒ スピード感をもった対応ができるようにしてほしい → リカバリコンテストで楽しく障害対応を学んでみよう!
リカバリコンテスト実施概要 <目的> 楽しみながら学べる場をつくる 実践的な障害対応スキルを強化 今までの問い合わせログの内容を自然に共有 <ルール> 参加者は1人で対応をする マニュアルや、MOS検索といった公式ドキュメントは参照OK(ChatGPT不可) <採点基準> 復旧までのスピード
データ損失の有無 ※バックアップスキルも含めて確認 <環境> Oracle Database 19c を使用 OCIで障害発生済みのDBを構築。サーバをコピーすることで、人数分の環境を簡単に作成。 <発生させた障害> 開催者側でシナリオを想定し、障害を発生させた
想定障害シナリオ:基本編
想定障害シナリオ| 基本編 突然DBインスタンスが停止した。 ※制御ファイルが1つ破損 このシナリオで、DB障害に対する基礎を確認。 ・インスタンスのステータスは? ⇒ どの状態まで起動できている? ・障害が発生したら、何から調査する? ⇒
アラートログをみる ・エラー番号の調査方法 ・アーキテクチャの基礎が理解できているか?
想定障害シナリオ:本当にあった怖い話編
想定障害シナリオ| 本当にあった怖い話編 ログマイナーを実行したら、DB止まったんだけど execute dbms_logmnr.add_logfile( logfilename=>'/u03/app/oracle/redo/DB0910_5CW_NRT/onlinelog/o1_mf_1_nd2zwllc_.log' ,options=>dbms_logmnr.NEW); ログマイナー実行コマンド → SQL*Plusで実行するところ、OSコマンド上で実行してしまう。
「logfilename=>オプション」が Linuxのリダイレクトになってしまった。 結果、REDOログファイルのサイズが 0バイトに、、、 ※REDOログファイルは多重化なし
想定障害シナリオ| 本当にあった怖い話編 GUIツールでデータを削除するつもりが表を消してしまった サンプルデータ
想定障害シナリオ| 本当にあった怖い話編 SELECT文を実行したらエラーになる。SELECTできるテーブルもある。 SELECT * FROM employees WHERE emp_id =
10001; エラーになるSELECT文 → 特定の表領域(データファイル)破損。 確認したところバックアップがない状況。 SELECT * FROM customers WHERE cust_id = 10001; エラーにならないSELECT文
想定障害シナリオ| 本当にあった怖い話編 半年ぶりにDBサーバのOSを再起動したら、アプリケーションからDBに 接続できない。DBサーバ上のSQL*Plusは接続できるんだけど SQL> SELECT status FROM V$INSTANCE; ⇒
OPEN であることは確認できる。 DBサーバ上でSTATUSを確認した結果、OPEN → lsnrctl status で確認すると、DBサービスが登録されていない → 初期化パラメータ local_listener に 接続識別子が指定されている → tnsnames.oraから 上記に指定された接続識別子が消えている (メンテ時に他サーバのファイルで置き換えていた)
実施風景 | 緊張感は半端ない。ついついキーボードをたたく音が強くなる。 たまに聞こえる勝利の雄たけび タイムアップ後の捨て台詞。 あと10秒あれば!!! わかってたのに!!!
こんな気づきがありました| 複数インスタンスが扱えない(環境変数ORACLE_SIDの理解不足) ⇒ 普段 Fusion を扱ってる若手。LinuxやDBの経験が少ない RMAN苦手意識。やっぱりバックアップはオフラインでしょ信仰(簡単だから) ⇒ 便利っぽいのは分かっているが、OSコピーでおわる簡単さに惹かれている 意外に新機能は若手のほうが知っていることも。
ベテランのほうがあえて回り道の障害対応。 ⇒ 知識のUPDATEは必要。 知識としてリカバリ方法が分かっていても、なかなか実践が難しい。 ⇒ リカバリコンテストに繰り返し参加!!
ありがとうございました Thank you