一志 達也 著
Oracleの基礎的な使い方がわかっていても「いざ本番となると機能がたくさんあって、どうしていいか分からない……」という声を聞くことがあります。本書は、DBプロフェッショナルであり、かつ長年Oracleと関わってきた著者の経験から生まれた新しい入門書です。最新のOracleの機能を踏まえ、「その機能がなぜ必要なのか」「どういう目的で使うのか」という観点から解説を加えています。データベースシステム構築の現場で役立つ、真の基礎力が身につく入門書です。[Oracle Datebase 11g Release 2対応]
Chapter0 Oracle Database を学ぶ方法を考える
Oracle Database
さまざまな勉強方法
新旧バージョンの混在
まず、機能と概念を押さえよう
Chapter1 データベースが持つ基本的な機能
そもそもデータベースとは
データベースの基本的な要件
RDB とSQL
効率的なデータ管理を実現するRDB
データベースに要求するための言語SQL
メモリとディスク(ファイル)の関係
確実性を失わないために
Oracle の基本的な構造
データファイル
メモリ
プロセス
ログファイル
設定ファイル
制御ファイル
表領域とデータファイル
エクステント/ブロックそしてセグメントの関係
データベースの「物理設計」
まとめ
Chapter2 Oracle Database 11g の全体像
本章で解説すること
Oracle データベースの変遷
バージョン7 で国内普及が本格化
時代とともに拡張されてきたOracle
グリッドコンピューティングに向けて
4つのエディションとバージョン
押さえておきたいライセンスとサポート情報
SE1 かSE RAC か
EE を選択する理由
インストールについて
Oracle に付属するソフトウェア
各種プログラム言語用のミドルウェア
SQL Developer
移行ウィザード
Application Express
各種オプション製品
まとめ
Chapter3 Oracle の動作に欠かせない領域
はじめに
ローカル管理とディクショナリ管理
ディクショナリ管理の欠点
ローカル管理のメリット
データファイル内部の断片化に注意しよう
エクステントの割り当て
無駄な領域を割り当てないようにするには
設定状況の確認方法
Oracle のバージョンを知る
エクステントの管理方式を知る
エクステント数を知る
エクステントの領域を知る
エクステントやブロック管理関連のパラメータ
STORAGE 句の使い方
ブロックと空き領域の管理
ブロックのゆとりをパーセンテージで指定
空き領域に応じて新規データを書き込む
同時実行のトランザクション数を調整
空きブロックの管理リストの大きさを調整
空き領域管理の自動化
ASSM を使う方法と使わない方法
まとめ
Chapter4 表領域とASMの関係
データを記録する装置
ディスク装置の最良な使い方
容量の問題
故障時の対応
パフォーマンスの最適化
ディスクの分散配置
RAW とファイルシステム
ASM の仕組みと使いどころ
ASM の動作原理
ディスクグループと冗長化
ディスクグループと分散書き込み
ディスクの追加や削除とリバランシング
ASM の構成
ASM の管理
Oracle の動作に必要な表領域と役割
システム表領域
UNDO 表領域
一時表領域
各種コンポーネント用表領域
まとめ
Chapter5 Oracle のメモリ構造
メモリ空間の必要性をおさらいする
SGA とPGA
SGA を構成する要素
データベースバッファキャッシュ
REDO ログバッファ
共有プール
ラージプール
Java プール
ストリームプール
PGA を構成する要素
セッションメモリ
プライベートSQL 領域
メモリに関する常識と非常識
そのほかに必要となるメモリ空間
まとめ
Chapter6 各種設定ファイルと起動/停止
設定の記憶と方法
ORACLE_HOME とORACLE_SID
ORACLE_HOME とは
ORACLE_SID とは
設定ファイルの保存場所と名称
現在はspfile が主流
設定項目と確認方法
設定項目とその内容を確認するには
設定を変更するには
データベースを起動する
(1)設定ファイルの読み込み
(2)メモリ空間の確保とプロセスの起動(NOMOUNT)
(3)制御ファイルの内容確認(MOUNT)
(4)データベースのオープン(OPEN)
段階的な起動の必要性
データベースを停止するには
まとめ
Chapter7 検索操作時の動作
データを検索するまでの手順
検索のための前準備
SQL 文にどのように返答すべきか
実行計画の共有
検索の実行 ~データブロックの読み出し~
検索/チューニングの際に重要な設定値
検索の実行 ~検索結果の作成~
PGA 上での処理
効率良く結果を得るための工夫 ~索引の仕組み~
索引を使うと高速にアクセスできる理由
効率良く結果を得るための工夫 ~高度な機能の活用~
ROWID の活用
ビットマップインデックスの活用
効率良く結果を得るための工夫 ~実行計画の参照~
ルールベースのオプティマイザ
コストベースのオプティマイザ
自動で行なう定期的分析機能
オプティマイザによる実行計画の参照
効率良く結果を得るための工夫 ~実行計画の活用~
チューニングすべきSQL を特定するには
実行計画から情報を参照するには
実行計画の作成回数を少なくする方法 ~バインド変数の活用~
バインド変数を用いていない場合
まとめ
Chapter8 データ更新時の動作
データ操作の種類と基本的な流れ
新規追加処理の流れ
編集/削除処理の流れ
データ編集操作のポイント
トランザクション
Oracle におけるトランザクションの仕組み
読み取り一貫性
預金管理ではどのように利用されているのか
UNDO セグメントを活用して実現
UNDO セグメントの歴史と自動管理
自動管理の注意点
UNDO 情報には細心の注意を
変更前データの保持時間を算出するには
データ編集時のロック
ロック状態を体感してみる
ロックの事前確保と検索
遅延書き込みの仕組み
REDO ログファイルとデータ編集との関係
まとめ
Chapter9 ログとプロセスの役割
ソフトウェアに欠かせないログ
Oracle におけるログ
異常を検出するためのログ
セキュリティに関係するログ
データベースへの操作を記録するログ
異常を検出するログの詳細
アラートログにどう対処すれば良いのか
異常検出ログの設定
セキュリティに関係するログ
ネットワーク経由でのアクセス記録と管理
必須監査の設定と管理
データベースへの操作を記録するログ
Oracle 11g からの機能
ヘルスモニターとADR の構造
ADR で管理されている情報へのアクセス
テキスト形式のログは見られないのか
まとめ
Chapter10 REDO ログの仕組みとプロセスの役割
REDO ログの役割
バックアップからのリカバリ
REDO ログの多重化
REDO ログファイルのスイッチ
ログの肥大化への対策
ログファイルのスイッチの仕組み
アーカイブログファイルの保護と運用
書き込み先の設定方法
REDO ログの設定
アーカイブログファイルの設定
チェックポイントの役割と発生頻度
チェックポイントとは
発生頻度の設定
Oracle のプロセス
ユーザープロセス
サーバープロセス
バックグラウンドプロセス
そのほかのプロセス
Oracle のサービス
まとめ
Chapter11 インストールとデータベースの作成
Oracle のインストールは難しい?
システム要件の確認
有償サポートへの加入
インストレーションガイド
README の確認
インストール手順の確認
ソフトウェアの入手
ダウンロードしたファイルの置き場所
インストーラを起動する前に
不足しているパッケージのインストール
OS グループとユーザーの作成
カーネルパラメータなどの変更
インストール先となるディレクトリの作成
管理者ユーザーの環境設定
DHCP 環境の場合の注意
インストーラの起動
11g R1 以前のインストール
基本インストールの場合
拡張インストールの場合
11g R2 のインストール
11g R2 は拡張インストールのみ?
データベースは同時に作成するか
製品エディションの選択とインストールディレクトリの指定
サマリの確認
スクリプトの実行
インストール後の作業
ASM を利用する場合の注意事項
ASM インストールの落とし穴
リスナーの作成
データベースの作成
テンプレートの選択
Enterprise Manager の構成
管理者のパスワード指定とファイル配置の決定
リカバリ関連領域と有効化の設定
オプション機能の使用の有無の決定
メモリやプロセスなどの設定
ファイル配置の確認と編集
作成するかスクリプトにするか
データベースの削除
アンインストールするには
実行手順
Oracle 11g R2 のアンインストール
まとめ
Chapter12 データを消失しないために(バックアップとリカバリ)
バックアップの必要性
ハードウェア的な問題によるデータ消失に備えて
アプリケーションや人的な問題によるデータ不整合に備えて
設定ミスやシステム的な不具合に備えて
最も基本的なバックアップ
基本的なバックアップ取得時の問題
データの不整合に対する解決策
定時バックアップでカバーできない範囲
バックアップの対象
各種設定ファイル
障害発生の直前にリカバリする方法
アーカイブログとREDO ログを使ったバックアップ/リカバリ
(1) アーカイブログファイルが書き出されるモードであることを確認する
(2) アーカイブログの出力先を確認する
(3) データベースをいったん停止して、データファイルのコピーを別のフォルダに取得する
(4) データ操作を行なう
(5) データファイルを削除する
(6) データベースを起動してみる
(7) (3)でコピーしておいたファイルを元の場所に戻す
(8) (3)でデータベースを停止する時点までのデータ操作をログから適用する
(10) データベースをオープンする
なぜ復旧が可能なのか
バックアップ/リカバリの仕組み
まとめ
Chapter13 高度なバックアップ/リカバリ
動的バックアップとは
動的バックアップの仕組み
動的バックアップの完了
論理的なバックアップ
論理バックアップ向け標準ユーティリティ
論理バックアップの良いところ
バックアップ運用計画とログの管理
ログの管理
バックアップ取得時間の短縮
アーカイブログファイルだけをバックアップ
取得するデータファイルを一部だけにする
差分バックアップ
RMAN の使い方
AN の動作原理
AN で取得できるバックアップの形式
AN によるバックアップの取得
販のツールを使ったバックアップ
フラッシュバックとは
フラッシュバッククエリの動作原理
行履歴フラッシュバックの動作原理
トランザクション履歴フラッシュバック
フラッシュバックデータベースの動作原理
フラッシュバックテーブルの動作原理
フラッシュバックドロップの動作原理
まとめ
Chapter14 ネットワークとセキュリティ
Oracle におけるネットワーク
Net Services の役割(1) ~接続文字列~
Net Services の役割(2) ~複数プロトコルのサポート~
Net Services の役割(3) ~そのほかについて~
Net Services の設定 ~サーバー側~
GUI ツールによる設定方法
Net Services の設定 ~クライアント側~
GUI ツールによる設定方法
接続テストの実行
そのほかの設定
データベースとネットワークの関係
Net Services の起動と停止
接続のテスト
ユーザーの管理
権限の管理
データベースのセキュリティ
不適切なアクセス
物理的な盗難
監査機能
まとめ
Chapter15 データ型とオブジェクト
データ型とは
データ型を適切に選択する理由
Oracle のデータ型
文字を格納するデータ型について
日付を格納するデータ型について
オブジェクトとは
代表的なオブジェクト
順序(シーケンス)
シノニム
ストアドプログラム
総まとめ
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。
とおる さん
最新バージョンの情報はもちろん、過去バージョンにも言及されているのは結構便利でした。何しろ私が触ってたのは10年前、Oracle8iとか9iの時代です。そこから10年も経ってると機能的にも大幅に変わってますし、何ができたのか忘れてるし、当時はインフラの知識もほとんどなかったので、復習&新たな学びになりました。幅広い情報を扱ってるので、この本を読みながら詳細レベルの実装を行うことは難しいですが、APLエンジニアがOracle DBエンジニアに要件を伝える際には、この本の内容を把握しておく必要があるでしょう。
たかとし卿 さん
2011-12-29
★★★☆☆ なかなかいいと思う。他の入門書に比べてかなり深堀をしているように思えた
tosi さん
2020-09-19
Oracleデータベースの仕組みについて理解を深められる一冊。2011年の書籍なのでやや古いかもしれないが、Oracleを使うのであればインフラエンジニアはもちろん、アプリ開発エンジニアにも有用な内容であると感じた。ディスク、メモリ、ログについて、どのような目的でどのような領域が用意されているのかはあまり理解していなかったので、その原理を知ることができたのは有益だった。