Your SlideShare is downloading. ×
本当に使える!! Oracle Database トラブルシューティング
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

本当に使える!! Oracle Database トラブルシューティング

9,920

Published on

わんくま同盟 東京勉強会 #36 発表資料

わんくま同盟 東京勉強会 #36 発表資料

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
9,920
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
46
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 本当に使える!! Oracle Database トラブルシューティング 日本オラクル Oracle Direct 大田 わんくま同盟 東京勉強会 #36
  • 2. Databaseを運用する上で、こんなことありませんか・・・ • 「間違えて重要なデータを消してしまった!!」 • 「データファイルが壊れた!!」 • 「急に動作が遅くなった!!」 などなど、危機的なトラブルが発生したことはありませんか? 本セッションでは、現場で起きた本当に怖い話と、 それについての回避策をリアルデモでお見せします!! わんくま同盟 東京勉強会 #36
  • 3. どの障害が一番多いでしょう? コンピュータ障害 計画外停止 ストレージ障害 人的エラー 実は一番多いのがこれ データ障害 データ破損 サイト障害 わんくま同盟 東京勉強会 #36
  • 4. こんなことありませんか? –「違うバッチ流してしまった!!」 → バッチを流す前に データベースを迅速に戻したい。 –「改修したアプリケーションが間違ってるじゃないか!」 → アプリケーション変更前の データベースに迅速に戻したい。 –「違うテーブルを truncate してしまった!」 → truncateする前のデータを復旧させたい。 –「テストデータを再構築するのは工数がかかるなぁ。。。」 → テストを実行させる前の状態に戻したい。 –「3時間前の状態に データベースを簡単に戻せれば楽なのに。。。」 → 指定した時間に データベースを巻き戻したい。 –「3時間前の データベースのデータを知りたい!」 → 指定した時間の データベースのデータを参照したい。 わんくま同盟 東京勉強会 #36
  • 5. もしもの時のために / フラッシュバックテクノロジー • フラッシュバック・テクノロジーが必要とされる背景 – アプリケーション障害の40%はオペレータまたはユーザーのエラー – ユーザーエラーの復旧は非常に困難 • フラッシュバック・テクノロジーの目的 – 人為的(ユーザー)エラーからの早急な復旧 • 貴重なデータの削除、間違ったデータの削除、間違った表の 削除 など • アプリケーションミス、誤バッチの実行 • フラッシュバック・テクノロジーの効果 – バックアップからのリカバリが不要! – 非常に簡単 – 短時間で復旧 – 過去データの参照が可能! – 不正なデータ改竄に効果 わんくま同盟 東京勉強会 #36
  • 6. もしもの時のために / フラッシュバックテクノロジー フラッシュバック用途とのマッピング データベース全体の復旧 フラッシュバック・データベース DDLを含む変更の取消 テーブル単位での復旧 フラッシュバック・テーブル テーブル・ドロップ操作の取消 フラッシュバック・ドロップ 過去データの参照 フラッシュバック・クエリ 行データ単位での変更履歴を表示 フラッシュバック・バージョン・クエリ トランザクション単位での変更履歴 フラッシュバック・トランザクション と、そのUNDO・SQLを表示 遠い過去データの参照 フラッシュバック・データ・アーカイブ コンプライアンス・監査 わんくま同盟 東京勉強会 #36
  • 7. フラッシュバック・テクノロジーとは フラッシュバック・テクノロジー は拡張され続けています。 機能名 Oracle9i Oracle Oracle Oracle Oracle Oracle SE/SE 9i 10g 10g 11g 11g One EE SE/SE EE SE/SE EE One One フラッシュバック・クエリ ○ ○ ○ ○ ○ ○ フラッシュバック・バージョンクエリ - - ○ ○ ○ ○ フラッシュバック・トランザクション - - - ○ - ○ フラッシュバック・データベース - - - ○ - ○ フラッシュバック・テーブル - - - ○ - ○ フラッシュバック・ドロップ - - ○ ○ ○ ○ フラッシュバック・アーカイブ - - - - - ○ わんくま同盟 東京勉強会 #36
  • 8. フラッシュバック・テクノロジーとは データ・リカバリ系機能 Database • データが変更される Customer データベース単位でのリカバリ フラッシュバック・データベース 表単位でのリカバリ Order フラッシュバック・テーブル (表の中身のリカバリ) 表単位でのドロップ操作の取消 フラッシュバック・ドロップ (ゴミ箱機能) わんくま同盟 東京勉強会 #36
  • 9. もしもの時のために / フラッシュバックテクノロジー データ・リカバリ系機能 DEMO わんくま同盟 東京勉強会 #36
  • 10. フラッシュバック・テクノロジーとは 過去データ参照系機能 現在 • データの変更はない 行データ単位での変更履歴 フラッシュバック・バージョン・クエリ Tx 3 過去の表データを表示 フラッシュバック・クエリ フラッシュバック・データ・アーカイブ Tx 2 トランザクション単位での変更履歴 Tx 1 フラッシュバック・トランザクション わんくま同盟 東京勉強会 #36
  • 11. もしもの時のために / フラッシュバックテクノロジー 過去データ参照系機能 DEMO わんくま同盟 東京勉強会 #36
  • 12. Databaseを運用する上で、こんなことありませんか・・・ • 「間違えて重要なデータを消してしまった!!」 • 「データファイルが壊れた!!」 • 「急に動作が遅くなった!!」 わんくま同盟 東京勉強会 #36
  • 13. 次に多い障害はどれでしょう? コンピュータ障害 計画外停止 ストレージ障害 人的エラー データ障害 データ破損 二番目に多いのがこれ サイト障害 わんくま同盟 東京勉強会 #36
  • 14. データ・リカバリ・アドバイザ 修復に要した時間 • 障害発生時のダウンタイム – 障害解析: ダウンタイムの大部分 障害解析に要した時間 – 修復処理: ダウンタイムの一部 総ダウンタイム • データ・リカバリ・アドバイザ – 障害の早期検出: 損害を最小限に – 障害原因及び対処を提示: 原因究明、解析時間を最小化 ダウンタイムを最小化 わんくま同盟 東京勉強会 #36
  • 15. データ・リカバリ・アドバイザ 実際の手順 データベース ①DBの状態をチェック ヘルス・チェック ヘルス・モニター ②ADRに障害 を登録 ADR インターフェース ③障害情報の表示、 修復アドバイスの提示 Enterprise Manager ④修復の実行 RMAN データ・リカバリ・アドバイザ わんくま同盟 東京勉強会 #36
  • 16. 「リカバリの実行」への画面遷移 わんくま同盟 東京勉強会 #36
  • 17. リカバリの実行 わんくま同盟 東京勉強会 #36
  • 18. 障害の表示および管理 わんくま同盟 東京勉強会 #36
  • 19. リカバリ・アドバイス わんくま同盟 東京勉強会 #36
  • 20. リカバリ・アドバイスの確認 わんくま同盟 東京勉強会 #36
  • 21. リカバリ・ジョブの発行 わんくま同盟 東京勉強会 #36
  • 22. ジョブ・アクティビティ リカバリ・ジョブの作成 わんくま同盟 東京勉強会 #36
  • 23. ジョブ・アクティビティ リカバリ・ジョブの完了(ステータスが「成功」の作成済みジョブ) わんくま同盟 東京勉強会 #36
  • 24. Databaseを運用する上で、こんなことありませんか・・・ • 「間違えて重要なデータを消してしまった!!」 • 「データファイルが壊れた!!」 • 「急に動作が遅くなった!!」 わんくま同盟 東京勉強会 #36
  • 25. データベースの自動診断 • データベース自身による稼動情報の収集と自己診断 これまでの稼動監視 DBA がデータベースを監視し、知識と DBA がデータベースを監視し、知識と 経験から最適な設定を判断する必要 経験から最適な設定を判断する必要 がある がある ・V$..... ログ、トレース ・DBA_..... STATSPACK OSレベルの情報 DBA Oracle Database 10g以降 診断結果の表示 AWR ADDM Oracle 自身がデータベースを Oracle 自身がデータベースを DBA はOracle のアドバイスを DBA はOracle のアドバイスを 監視 // 診断 監視 診断 受け入れるかを判断 受け入れるかを判断 わんくま同盟 東京勉強会 #36
  • 26. アドバイザ機能 システムのライフサイクル 開発者の作業 データベース管理者の作業 開発 単体テスト 統合テスト リリース 運用 領域管理 (SQL文作成) システム 性能維持 データベースへの SQLチューニング・アドバイザ 特定のSQL文の内容、実行計画を診断 アクセスの最適化 SQLアクセス・アドバイザ 複数のSQLのアクセス・パスを診断 Tuning Pack データベース 全体の診断 UNDOアドバイザ UNDOの保存期間やUNDO表領域をアドバイス ADDM セグメント・アドバイザ 縮小すべきセグメントをアドバイス 領域の使用方 法の最適化 メモリー・アドバイザ PGA、SGAのサイズ変更をアドバイス わんくま同盟 東京勉強会 #36
  • 27. EE Automatic Database Diagnostic Monitor ( ADDM ) + によるアドバイス Diag • ボトルネックを特定し、解決方法を推奨します SQLチューニングのアドバイザを実行 パラメータの変更 わんくま同盟 東京勉強会 #36
  • 28. EE ADDM診断レポート例 ボトルネック切り分け + Diag チューニングアドバイス わんくま同盟 東京勉強会 #36
  • 29. EE + Diag Tun SQLチューニング・アドバイザ • 特定のSQL文の内容、実行計画を診断 • アドバイスの内容 – SQL文の修正方法 • WHERE句の条件の指定方法など – 必要な索引の作成 – SQLプロファイルの作成 ※SQLプロファイル – ヒントの集合のようなもので、任意のSQL文の実行計画を生成 – SQL文を書き換えることなくパフォーマンスを向上させる どのSQLに問題があるかを自動的に診断。 アプリケーションを書き換えずに、効率のよいSQL実行に変更 わんくま同盟 東京勉強会 #36
  • 30. オンライン・セグメント縮小 HWMと全件検索 • Oracleは全件検索時、テーブル全体ではなくHigh Water Mark (HWM) まで走査します。 • メリット: テーブルの大きさに対してデータ量が少ない場合、高速に検索できる • デメリット: 大量削除などで 以前の空きが多い場合、実レコード数に比較して時間がかかる 使用領域 未使用領域 走査範囲 未使用領域 使用領域 未使用領域 走査範囲 HWM 使用領域 未使用領域 HWM •INSERT / DELETEが頻繁に発生するテーブルでは必要に応じた メンテナンスが必要です。 わんくま同盟 東京勉強会 #36
  • 31. オンライン・セグメント縮小 HWMを下げる方法 • 対象となる表に(業務的に)アクセスさせない状態で実施: 1. 論理バックアップユーティリティ(EMP/IMP) + 元表削除(DROP) 2. CREATE AS SELECT + 元表削除(DROP) + RENAME 3. CREATE AS SELECT + TRUNCATE + INSERT SELECT 4. 表領域の移動 (ALTER TABLE <表名> MOVE TABLESPACE <表領域名>) (8i ~) • オンライン・セグメント縮小 (10gR1~) ① ② ③ データの移動 HWMの移動 領域の解放 alter table <表名> enable row movement; alter table <表名> shrink space (cascade); – 業務でテーブルを利用中でもセグメント縮小可能 わんくま同盟 東京勉強会 #36
  • 32. オンライン・セグメント縮小 セグメント・アドバイザ 自動セグメント・アドバイザは10gR2~ わんくま同盟 東京勉強会 #36
  • 33. メモリアドバイザ • 最適なメモリ量の割り当て(バッファ・キャッシュ・サイズ) バッファ・キャッシュに 必要なサイズ確認 わんくま同盟 東京勉強会 #36
  • 34. 自動メモリー管理(11g) O/S Memory O/S Memory O/S Memory OSメモリー SGA SGA MEMORY_MAX_TARGET SGA MEMORY_TARGET PGA PGA PGA 自動チューニング ALTER SYSTEM SET MEMORY_TARGET=.... わんくま同盟 東京勉強会 #36
  • 35. もしものトラブルが起きても・・・・ • 「間違えて重要なデータを消してしまった!!」 • 「データファイルが壊れた!!」 • 「急に動作が遅くなった!!」 もう大丈夫ですね!! Oracleって簡単で安心でしょう? わんくま同盟 東京勉強会 #36

×