書籍概要

即戦力のOracle管理術
~仕組みからわかる効率的管理のノウハウ

著者
発売日
更新日

概要

「なぜ,その操作が必要なのか?」
「こういう仕組みになっているからこうする」
という背景をきちんと押さえながら,Oracleを効率的に管理するための考え方やテクニックをゼロから解説。実績豊富なOracleコンサルタントたちならではの丁寧な解説と豊富な図解で,だれでも「Oracleらしい管理」の原則とコツがわかります。DBAの仕事の全体像,監視,バックアップ,セキュリティ,トラブルシューティング,パフォーマンスチューニングなど,現場で必要なノウハウ全般が身につく1冊。

こんな方におすすめ

  • Oracleの管理をすることになった方
  • 古いバージョンの管理は経験しているが,最新のバージョンでの管理方法はご存じない方

著者から一言

長年,運用も含めたデータベースのコンサルティングをしていて,「データベースの運用について,そもそもどういう仕事なのかを紹介している本が見当たらない」と我々は思っていました。書店に並んでいるOracleデータベース運用本というと,Oracleの製品機能の紹介が多くを占めている気がしていました。
世の中には,きちんと仕事のやり方を教えられずに突然データベース運用担当者を任命されている人も多くいます。そういった人にも現場で役に立つデータベースの知識を身につけてもらうためには,データベースの運用全体を紹介したうえで,「この仕事はこういう内容です。こういう理由で必要です。ですから,この仕事にはこのOracle機能を使いましょう」と順番に説明することが必要ではないかと感じていました。これが本書を書くきっかけになりました。
また,我々,コンサルタントは日々,現場で1年目の人から10年以上の経験者まで数多くのデータベース管理者やデータベース担当者を教えています。そういった人々を教えてきた経験から,まずは,データベースの「考え方」を学んでもらうべきだと思っています。考え方を身につけてもらわない限り,その人の本当の意味での成長はないからです。
以上のことを踏まえて,我々は以下の内容を考えました。

-まず,「データベース運用」という仕事全体を紹介しよう
-少し遠回りのようでも,「考え方」を学んでもらうためにOracleのアーキテクチャを紹介しよう
-運用担当者に必要なセキュリティやサービスレベルの考え方も紹介しよう
-現場で必要となる「トラブルを起こさない方法」「起きたトラブルの対応方法」を紹介しよう
-難しいけれども,データベース管理者として必要となるチューニングとバックアップ・リカバリも上級編として紹介しよう

この伝えたいことが,ほぼそのまま本書の目次となっています。

執筆においては,実際の現場の若手をイメージし,お客様に説明するつもりで丁寧に文章を起こし,絵を多用して表現しています。初心者向けに,わかりやすく,わかりやすく,と心がけました。データベースのリリースは,11gリリース2(執筆時点の最新)に対応しています。本書を,データベース運用の初心者やデータベースを勉強し直したい人,開発者だけれども運用も理解したい人に読んでもらえれば幸いです。

目次

第1章 データベース運用の仕事を理解しよう

  • 1-1 システムにおけるデータベース運用の位置付け
  • コラム ユーザーとは?
  • コラム アプリケーションとは?
  • データベースとは
  • コラム データベースマネジメントシステム(DBMS)とは?
  • 運用とは
  • なぜデータベース運用の担当者が必要なのか
  • 1-2 データベース運用の担当者の仕事
  • データベース運用の担当者のある1日
  • コラム しきい値とは?
  • コラム ベースラインとは?
  • データベース運用のおもなタスク領域
  • 1-3 サービスの品質を保証する(サービスレベル管理)
  • キャパシティ要件の定義
  • コラム バッチ処理とは?
  • コラム キャパシティとは?
  • 可用性要件の定義
  • コラム 片系とは?
  • IT継続性要件の定義
  • コラム HA構成,RAC構成,DRサイトとは?
  • 1-4 ユーザーが納得できるサービスを提供する(キャパシティ管理)
  • 監視ポリシーの定義
  • ハードウェアリソースの監視
  • データベースリソースの監視
  • コラム ログローテーションとは?
  • コラム メモリヒット率とは?
  • パフォーマンス監視
  • コラム 待機イベントとは?
  • コラム 命名規則とは?
  • パフォーマンス分析・評価
  • 拡張性設計
  • コラム スケールアップとスケールアウト
  • 1-5 システムを正常に動作させる(定期メンテナンス)
  • メンテナンス方針の定義
  • パフォーマンス管理
  • コラム キーマンに連絡が取れないとき
  • 領域管理
  • 構成管理
  • オプティマイザ統計情報管理
  • コラム DBAチームは立場が弱い?
  • 1-6 システムを停止させない(可用性管理)
  • OSの状態/障害の監視
  • Oracleの状態/障害の監視
  • コラム セッションとは?
  • コラム OLTP(OnLine Transaction Processing)とは?
  • 1-7 システムをすぐに復旧できるようにする(IT継続性管理)
  • バックアップ設計
  • コラム データセンターでも整理整頓
  • リカバリ設計
  • コラム Oracle GoldenGateについて
  • 1-8 データベースへの不正なアクセスを防ぐ(セキュリティ管理)
  • セキュリティ要件の定義
  • アカウント管理
  • セキュリティ監視
  • 1-9 運用ポリシーを定義する(運用管理)
  • 保守,メンテナンス要件の管理
  • コラム おまじないから一歩先へ
  • 障害管理
  • コラム インシデントとは?
  • 障害対応の管理
  • バージョンアップ設計
  • コラム パッチとは?

【本章の内容をもっと深く勉強したい方へ】
Oracle University研修コース

第2章 データベース管理アーキテクチャを理解しよう

  • 2-1 データベース管理アーキテクチャの全体像
  • 2-2 OracleEnterpriseManagerからデータベースを見てみよう
  • データベース管理を支えるツールとは?
  • Oracle Enterprise Managerってなに?
  • Enterprise Manager操作シナリオその1―表領域使用状況の確認
  • Enterprise Manager操作シナリオその2―データベースのパフォーマンスの監視およびチューニング
  • Enterprise Manager操作シナリオその3―高負荷SQLの特定
  • 2-3 データ構造を理解し,データにアクセスしてみよう
  • リレーショナルデータ構造を理解しよう
  • コラム スキーマオブジェクトのDDLを確認するには?
  • コラム SYSスキーマとSYSTEMスキーマとサンプルスキーマ
  • データアクセスしてみよう
  • コラム SQL規格
  • 2-4 トランザクションの管理を理解しよう
  • トランザクションってなに?
  • コラム ACID特性とは?
  • 同時実行性と読み取り一貫性の立役者たち
  • コラム トランザクション分離レベルとは?
  • コラム システム変更番号(SCN)は枯渇しないのか?
  • 2-5 Oracleデータベース記憶域構造を理解しよう
  • 物理記憶域構造
  • コラム REDOログファイル関連の名称
  • 論理記憶域構造
  • コラム 行を一意に識別するROWID
  • コラム 最高水位標とはなにか?
  • 2-6 データベースインスタンスを理解しよう
  • データベースインスタンス
  • コラム SGAの割り当て単位はグラニュル
  • Oracleネットワークのアーキテクチャ
  • まとめ
  • コラム Oracleの考え方「Simplifying IT(ITをかんたんに)」

【本章の内容をもっと深く勉強したい方へ】
ORACLE MASTER

第3章 データベース運用の基本を学ぼう

  • 3-1 外敵からデータベースを守る
  • 不正な行為による影響を知ろう
  • 不正アクセスを阻止するための3つの門
  • コラム Oracle Databaseにもセキュリティホールは存在する?
  • 暗号化でデータベースの内容をわからなくしよう
  • 不正利用を検知しよう
  • 内部の不正を防止しよう
  • コラム あなたのシステムのセキュリティ対策は十分ですか?
  • 3-2 いざというときのためのバックアップを用意する
  • なぜバックアップをとらないといけないのか
  • コラム 右クリックの恐怖
  • 収集するべき3つのバックアップ
  • バックアップ方法と選出に必要な3つのポイント
  • コラム アーカイブREDOログファイルの重要性
  • バックアップの取得方法とツール
  • バックアップを運用するうえで決定するべき7つのポイント
  • コラム リカバリ試験を怠ったことによる代償
  • 3-3 データベースに溜まったゴミを掃除する
  • データの断片化
  • コラム 索引のREBUILD中に実行したSELECTが失敗する!?
  • オプティマイザ統計情報のメンテナンス
  • ログファイルやトレースファイルのメンテナンス
  • コラム 自動診断リポジトリ(ADR)を利用したログのメンテナンス方法
  • 3-4 データベースの声に耳を傾けよう
  • ヘルスチェックの目的
  • ヘルスチェックで確認すること
  • ヘルスチェックの実行方法
  • コラム AWRにはライセンスが必要
  • コラム CPU使用率の枯渇は悪か?
  • ヘルスチェックの分析テクニック

【本章の内容をもっと深く勉強したい方へ】
ORACLE MASTER(つづき)

第4章 不測の事態に備えよう ~トラブルとの付き合い方~

  • 4-1 トラブルを起こさない
  • 予防のしくみを作る
  • トラブルの予兆をつかむ
  • コラム ハングアップ(ハング)とは?
  • コラム データベースリソースの使用状況を確認するには
  • Enterprise Manager(EM)を使用した予防のしくみ
  • 標準化・自動化
  • 4-2 トラブルを見過ごさない
  • すぐに気づくことが大切
  • 適切な監視でトラブル検知
  • トラブルを正しく伝える
  • 4-3 トラブルを長引かせない(1)現状分析
  • トラブル解決への3ステップ
  • コラム 温度感
  • 現状分析の2つの方法
  • ヒアリングのポイント
  • コラム 回避策と解決策
  • コラム 開発系と本番系
  • どんなときに,どのログを見るべきか
  • ログを解析する(1)AWR(Auto Workload Repository)
  • ログを解析する(2)ASH(Active Session History)
  • ログを解析する(3)SQLトレース
  • ログを解析する(4)アラートログ
  • コラム アラートログに出力されるアラート情報
  • ログを解析する(5)トレースファイル
  • ログを解析する(6)リスナーログ
  • コラム コネクションプーリング
  • 4-4 トラブルを長引かせない(2)問題の切り分け
  • (1)大きい視点から小さい視点へ
  • (2)再現性を確認する
  • (3)正常時と異常時を比較する
  • (4)仮説を立てて検証する
  • 4-5 トラブルを長引かせない(3)解決策を検討・実施する
  • ORA-1555によりSQLが異常終了
  • デッドロック
  • データベースへの接続エラー
  • 解決策の実施
  • 4-6 こんな問題が発生したらどうする?
  • CASE1:データベースが反応しない
  • CASE2:特定のSQLが性能劣化
  • コラム 結果件数と処理データ量
  • コラム パケットとパケットロス

【本章の内容をもっと深く勉強したい方へ】
ミッション・クリティカルなシステム

第5章 最新・最速のSQLチューニングテクニック

  • 5-1 SQLチューニングの4大項目
  • 5-2 SQLの実行計画を理解する
  • オブジェクトへのアクセス方法「アクセスパス」を理解する
  • 表同士の結合アルゴリズム「結合方式」を理解する
  • SQLの解析の負荷を軽減する
  • バインド変数を使用してハードパースの回数を減らす
  • 5-3 オプティマイザ統計情報を理解する
  • 最適な実行計画に必要なオプティマイザ統計情報とは
  • コラム 過去の実行計画を確認する
  • 統計情報を確認するには
  • 統計情報を自動的に取得する
  • パフォーマンスの劣化が許されないデータベースの統計情報を運用する
  • 非定形な更新が頻発する巨大表の統計情報を運用する
  • コラム ヒント句について
  • 統計情報の取得方法(プリファレンス)を考える
  • 5-4 待機イベントを理解する
  • 待機イベントとは
  • おもな待機イベント
  • 待機イベントを確認するには
  • 5-5 パフォーマンス統計を理解する
  • パフォーマンス統計と待機イベント
  • おもなパフォーマンス統計を理解する
  • パフォーマンス統計を確認するには
  • SQLチューニング4大項目のまとめ
  • 5-6 基本のSQLチューニング技
  • 索引によるSQLチューニング
  • 結合方式によるSQLチューニング
  • 5-7 高度なSQLチューニングテクニック
  • パラレル実行で大規模処理を高速化
  • パーティションを使ってSQLを高速化する
  • コラム パーティションの統計情報取得を高速化しよう
  • そのほかのデータロード高速化テクニック
  • 5-8 EMを使用したかんたんSQLチューニングテクニック
  • SQLチューニングアドバイザでかんたんチューニング
  • リアルタイムSQL監視を使ってSQLを可視化する

【本章の内容をもっと深く勉強したい方へ】
チューニング

第6章 確実・高速Oracleバックアップテクニック

  • 6-1 DataPump を最大限に活用するテクニック
  • たくさんのオプション
  • DataPump実行時に指定する最低限のオプション
  • DataPump Import時にオブジェクトの格納対象を変える
  • パラレル実行によるDataPumpの高速化
  • 定義情報のみをバックアップする
  • エクスポート/インポート対象の取捨選択
  • コラム ESTIMATE_ONLYオプション
  • 6-2 RMANによる確実なバックアップ取得テクニック
  • RMANバックアップの冗長化と世代管理
  • 制御ファイルとSPFILEの自動バックアップ
  • RMANバックアップ時の整合性確認とブロックリカバリ
  • RMANバックアップの成功/失敗を判断する
  • 6-3 RMANによる高速バックアップ取得テクニック
  • RMANによる増分バックアップ
  • ブロック変更追跡で増分バックアップを高速化
  • RMANバックアップのパラレル化
  • マルチセクションバックアップ
  • Oracle Direct NFSによるNASストレージへのバックアップ高速化
  • 6-4 RMAN バックアップのサンプルスクリプト
  • スクリプト例1
  • スクリプト例2
  • スクリプト例3
  • コラム RMANのRATEオプションでバックアップ時のI/O負荷を軽減
  • 参考文献

サポート

正誤表

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2012年7月25日更新)

P.132 図2-21 ANSI/ISO標準でのSQL文

SELECT dept.deptno, dept.dname, emp.ename FROM dept LEFT OUTER JOIN
emp ON dept.deptno = emp.deptno WHERE dept.deptno IN (10,20,40);
SELECT dept.deptno, dept.dname, emp.ename FROM dept LEFT OUTER JOIN
emp ON dept.deptno = emp.deptno AND dept.deptno IN (10,20,40);

P.175

リスト 2-14 サーバープロセスと SQLPUS の通信状況
リスト 2-14 サーバープロセスと SQLPLUS の通信状況

P.334

処理した物理ブロック数(br)
処理した物理ブロック数(pr)

商品一覧