DBA 診断機能

自己監視アーキテクチャ

dba_adviser1

ADDM

自動データベース診断モニター
Automatic Database Diagnostic Monitor (Diagnostic:診断)
AWRスナップショットに基づいてパフォーマンス診断を行い、結果をEMに表示する。

・一般:DBの状態
・ホストCPU:CPU使用率
DBインスタンスの使用時間、その他プロセスの使用時間
dba_adviser6

パフォーマンス
dba_adviser5

AWR

自動ワークロードリポジトリ Auto Workload Repository
AWRスナップショット(=ある時点のDBのパフォーマンス統計情報)を保存する場所。
SYSAUX表領域内のメモリ領域
↓ で設定する
サーバー > 統計管理 > 自動ワークロード・リポジトリ
dba_adviser4
スナップショット保存(日):8 ※規定
スナップショット間隔(分):60 ※規定
ベースライン
しきい値に用いる特定の時期のスナップショット

メトリック

=監視項目
MMONによって計算される。
ホーム > 関連リンク > すべてのメトリック
dba_adviser2

メトリックのしきい値

メトリックに対して設定する値
しきい値を超えた場合にDBの機能を損なう警告としてアラートを表示する。
ホーム > 関連リンク > メトリックとポリシー設定
dba_adviser3

アラート

しきい値 意味
警告しきい値 この段階で対応する事が望ましい
クリティカルしきい値 「警告しきい値」より深刻な状況である事を通知する為のしきい値

dba_adviser7

サポートワークベンチ

クリティティカルアラート表示

問題の詳細を表示
(以下、日本ではサービス外)
サービスリクエスト作成

Oracleサポートへアップロード

サービスリクエストを実行

インシデントをクローズ

ソフトウェアとサポート > サポート > サポート・ワークベンチ
dba_adviser10

アドバイザ

一覧

関連リンク > アドバイザ・セントラル
dba_adviser8

種類 アドバイザ名 機能
ADDM ADDM ADDM」参照
SQLアドバイザ SQLチューニングアドバイザ SQLチューニングアドバイザ」参照
SQLアクセスアドバイザ SQLアクセスアドバイザ」参照
メモリアドバイザ メモリーアドバイザ DBA インスタンス/メモリアドバイザ」参照
SGAアドバイザ
PGAアドバイザ
共有プールアドバイザ
バッファキャッシュアドバイザ
その他 セグメントアドバイザ セグメントアドバイザ」参照
UNDOアドバイザ UNDO表領域のサイズ設定アドバイスを提示
問い合わせ履歴から見たコスト、UNDO保存期間等から判定
平均リカバリ時間(MTTR) インスタンス障害の回復時間を提示
SQLアドバイザ

アドバイザ名 対象 DML文 機能 自動
SQLチューニングアドバイザ 全SQL文 推奨事項提示
SQL推奨事項実行
SQLプロファイル更新
索引作成
SQLアクセスアドバイザ 指定SQL文 索引作成
マテリアライズドビュー作成
SQLチューニングアドバイザ

dba_adviser13

14

・データソースに対するアドバイスを生成
・自動実行
・SQLプロファイルの作成/変更を自動実装可

データソース

ソース名 内容
トップアクティビティ 過去1時間で最高コストのSQL文
履歴SQL 過去24時間で最高コストのSQL文
SQLチューニングセット 全てのSQL文

SQLプロファイル
問い合わせ文固有の統計情報
問い合わせオプティマイザが問い合わせを実行する際にSQLプロファイルを利用する事で速度向上が見込める

SQLアクセスアドバイザ

・スキーマのチューニングアドバイスを提示
索引、マテリアライズドビューの作成等
・DML文も対象とする(≠SQLチューニングアドバイザ)
・ワークロードを指定して実行する
ワークロード
スキーマにアクセスするSQL文のセット
指定できるワークロードは以下
・現行および最近のSQLアクティビティ
・SQLリポジトリ
・ユーザー定義ワークロード(開発環境等)
データ移動 > アドバイザ・セントラル > SQLアドバイザ > SQLアクセス・アドバイザ
dba_adviser9

セグメントアドバイザ

・セグメントの断片化について改善アドバイスを提示
・セグメント増加に関する統計調査
実行すると表領域(セグメント)中の断片化された未使用領域が固められる。
→セグメントの圧縮

ソフトウェア管理

OracleMetaLink

パッチ ( = Oracleの不備、不具合に対する修正プログラム) を提供
(Oracleの有償サポート契約者のみ)

設定 > パッチ適用設定
dba_adviser11

クリティカルパッチ

ホーム > 一般 > すべてのプロパティ
dba_adviser12

DBA リカバリ

backup2

ステップ

ロールフォワード
REDOログファイルの内容を全て反映
・未コミットの命令も反映される
・UNDOデータも作成される
・一貫性バックアップの場合はコミット内容がデータファイルには反映されているので、
このステップだけでリカバリが完了する。

ロールバック
ロールバックした状態からUNDOデータを用いて未コミットの命令を戻す
→リカバリ完了

種類

リカバリ名 自動/手動 状態
インスタンスリカバリ
(クラッシュリカバリ:RAC環境)
自動実行(SMON)
(データベース異常停止時)
アーカイブREDOログファイル
を使用して
ロールフォワード/ロールバック
が自動で行われる
OPEN
メディアリカバリ 手動実行
(ディスク障害時等)
手動で、
・バックアップファイルをリストア
・ロールフォワード/ロールバック
を行う
MOUNT
フラッシュバック 手動実行
(ユーザー操作ミス時)
フラッシュバック」参照 OPEN

メディアリカバリオプション

オプション 内容 必要な
バックアップファイル
ON/OFF
ライン
ログ
モード
完全
リカバリ
バックアップ時点からのREDOログファイルの内容を全てリカバリ
(障害発生直前のCOMMIT状態まで)
データの損失無し
・制御ファイル
・データファイル
・アーカイブREDOログファイル
・REDOログファイル
・ON
・OFF
ARCHIVE
ログモード
Point-in-Time
リカバリ
(不完全リカバリ)

指定時刻より前のバックアップを利用して指定時刻までリカバリ
(指定時刻直前のCOMMIT状態まで)
指定時刻から後のデータは失われる
・OFF ARCHIVE
ログモード

リカバリ方法

リカバリ方法 内容
Oracle推奨リカバリ データリカバリアドバイザ」参照
ユーザー指示のリカバリ ユーザー指示のリカバリ」参照
フラッシュリカバリ フラッシュリカバリ」参照

データリカバリアドバイザ

=Oracle推奨リカバリ

【流れ】
DB:障害を検知

ADRへ障害情報格納

データリカバリアドバイザ実行

自動診断リポジトリ
ADR:Automatic Diagnostic Repository
障害情報を格納する為のDB外のディレクトリ構造

可用性 > バックアップ/リカバリ > 管理 > リカバリの実行
em_detareceveryadviser1

アドバイスが表示され、修復を実行できる
em_detareceveryadviser2

フラッシュリカバリ

バックアップ/リカバリ関連ファイルを自動管理する為の領域

種類

機能 内容
フラッシュバック問い合わせ 指定時刻における問い合わせ結果を取得する
フラッシュバックバージョン問い合わせ 指定期間内において、表の全行の履歴を取得する
フラッシュバックトランザクション問い合わせ 指定トランザクションによって実行された変更結果を取得する
フラッシュバック表 表を指定時点へ戻す
(1)フラッシュバック表関連の権限が必要
 「フラッシュバック表実行権限」参照
(2)対照の表の「行の移動」が有効
(3)UNDO表領域に変更前データがある
フラッシュバックドロップ 削除した表を戻す
・ゴミ箱(RECYCLEBIN)内のみ
・SYSTEM表領域内の表削除時はゴミ箱には入らない
フラッシュバックデータベース DBを指定時点まで戻す
(Point-in-Timeリカバリ)

設定

(1)NO ARCHIVELOGモード → ARCHIVELOGモード
(2)アーカイブREDOログの保存先をフラッシュリカバリ領域に
(3)フラッシュリカバリ領域の作成

可用性 > リカバリ設定
instance_recovery

(1)NO ARCHIVELOGモード → ARCHIVELOGモード
(2)アーカイブREDOログの保存先をフラッシュリカバリ領域に
アーカイブREDOログの保存先に「USE_DB_RECOVERY_FILE_DEST」を追加する
media_recovery

(3)フラッシュリカバリ領域の作成
flash_recovery

推奨サイズ
・データファイル完全バックアップ2つ分
・増分バックアップ分
・リカバリに必要なアーカイブREDOログファイル分

実行

フラッシュバック表
Oracle エンタプライズマネージャー使用方法③スキーマ/フラッシュバック表の実行」参照

ユーザー指示のリカバリ
可用性 > リカバリの実行 > ユーザー指示のリカバリ
flash_recovery2
「リカバリの有効範囲」を選択

論理リカバリ

impインポート

≠SQL*Plus
imp (ユーザ名)/(パスワード)
 インポートパス
 file=c:\test.dmp

 インポート元
 fromuser=(スキーマ名)

 インポート先
 touser=(スキーマ名)

 オブジェクト作成時のエラーを無視する
 ignore=y

datapumpインポート

≠SQL*Plus

データベース全体

impdp (ユーザ名)/(パスワード)

 指定ディレクトリからインポート
 directory=(ディレクトリ名)

 指定ファイルをインポート
 dumpfile=(ファイル名)

 DB全体をインポート

 full=y

 表領域

 tablespaces=(表領域名)

 スキーマ

 schemas=(スキーマ名)

 テーブル

 tables=(スキーマ名).(表名)

 データのみインポート
 content=DATA_ONLY

 上書き
 table_exsists_action=REPLACE

 異なるスキーマへ変更

 remap_schema=(エクスポートスキーマ名):(インポートスキーマ名)

 異なる表領域へ変更

 remap_tablespace=(エクスポート表領域名):(インポート表領域名)

DBA バックアップ

物理/論理バックアップ

一覧

バックアップ
方式
ログ
モード
リカバリ
方法
データ
復旧
バックアップ
直前まで 表単位 クローズ オープン 増分 DB単位 表領域単位 データ
ファイル
単位
表単位
Export × × × ×
DataPump × × × ×
OSコマンド 一貫性 NO ARCHIVE × × × × × × ×
ARCHIVE 完全
不完全 ×
非一貫性 ARCHIVE 完全 × × × ×
不完全 ×
RMAN 一貫性 NO ARCHIVE × × × × × × ×
ARCHIVE 完全
不完全 ×
非一貫性 ARCHIVE 完全 × × ×
不完全 ×
物理/論理 内容
物理バックアップ ファイル(データ含む)
論理バックアップ データのみ

物理バックアップ

データを含むファイルごとバックアップ~リカバリを行うバックアップ方法
同一データベースでのみリカバリ可能

backup1

バックアップ対象ファイル

以下の物理ファイルをコピーする事
・制御ファイル
・SPFile
・データファイル
・アーカイブREDOログファイル
(オンラインREDOログファイルのコピー)

タイプ

タイプ ON/OFF 条件 アーカイブ 必要ステップ リカバリタイプ
一貫性 オフ
ライン
インスタンス
停止
NO ARCHIVELOG
モード
ロールフォワード
ARCHIVELOG
モード
ロールフォワード
ロールバック
メディアリカバリ
非一貫性 オン
ライン
インスタンス
起動
ARCHIVELOG
モード
・ロールフォワード
・ロールバック
メディアリカバリ

インスタンスの停止操作を行うと、REDOログファイルにおけるCOMMIT内容がデータファイルに書き込まれる
=一貫性バックアップ時:REDOログファイル不要
障害発生時
・REDOログファイル:書込○
・データファイル:書込×
という状態になる可能性がある。
=非貫性バックアップ時:REDOログファイルを用いたロールバックが必要(メディアリカバリ)

保存ファイル形式

種類 内容
イメージコピー ファイルのコピー
バックアップセット RcoveryManagerによるコピー
使用ブロックのみをコピー

バックアップ設定:デバイス」で指定

EMサポート対象バックアップタイプ

対象 内容
データファイル 全体バックアップ データファイル全体
増分バックアップ 変更があったブロックのみ
差分増分バックアップ
累積増分バックアップ
増分更新バックアップ イメージコピー取得後、
増分バックアップ分をイメージコピーへ更新
リカバリ時間が短縮される
データベース 全体バックアップ DB全体

バックアップ実行時、「バックアップ・タイプの選択」で選択する。

差分増分バックアップ
em_zobun_bkup1

累積増分バックアップ
em_zobun_bkup2

バックアップ設定

可用性 > バックアップ/リカバリ > バックアップ設定 > デバイス
em_backup3
「ディスクバックアップの場所」を指定しない場合、フラッシュリカバリ領域にバックアップが保存される。

可用性 > バックアップ/リカバリ > バックアップ設定 > ポリシー
em_backup4

バックアップポリシー

設定項目 補足
各バックアップとデータベースの構成変更ごとに、制御ファイルおよびサーバー・パラメータ・ファイル(SPFILE)を自動的にバックアップ バックアップ、データディクショナリの更新の度に制御ファイル、SPFileがバックアップされる
自動バックアップ・ディスクの場所 未設定時、フラッシュリカバリ領域にバックアップが保存される
バックアップ済の、読取り専用およびオフラインのデータファイルなどの未変更ファイルをスキップして、データベース全体のバックアップを最適化
増分バックアップの高速化のためブロック変更トラッキングを有効化 増分バックアップ時に高速化される
リテンションポリシー

リテンション:保存

設定項目 補足
すべてのバックアップの保存 手動で削除しない限りバックアップは増え続ける
リカバリに必要なバックアップを、指定日数内の任意の時間に保存(Point-in-Timeリカバリ) 指定日数分のみバックアップ
メディアリカバリオプション
各データファイルについて、少なくとも指定回数の全体バックアップを保存 指定個数以前のバックアップは自動削除される

スケジュール

スケジュール バックアップ対象 バックアップ方法
カスタマイズ データベース全体 ・全体バックアップ
・増分バックアップ
表領域
データファイル
アーカイブログファイル
推奨 データベース全体 増分バックアップ
カスタマイズ・バックアップ実行

・バックアップ対象
・バックアップ方法
をカスタマイズできる

可用性 > バックアップ/リカバリ > 管理 > バックアップのスケジュール
em_backup5

バックアップ・タイプの選択
em_backup6
EMサポート対象バックアップタイプ」参照

em_backup7

em_backup8

em_backup9

推奨バックアップ実行

保存された増分バックアップを使用して増分更新バックアップがスケジュール実行される。
増分更新バックアップ
データファイルのイメージコピーロールフォワードするリカバリ方法

可用性 > バックアップ/リカバリ > 管理 > バックアップのスケジュール
em_backup5

em_backup10

em_backup11

em_backup12

em_backup13

可用性 > バックアップ/リカバリ > 管理 > バックアップのスケジュール
em_backup5

管理

メンテナンス

EMを使用してディスク(テープ)に保存したバックアップはRecoveryManagerリポジトリに格納される=バックアップレコード
バックアップレコードは「現行バックアップの管理」ページで管理できる。
可用性 > バックアップ/リカバリ > 管理 > 現行バックアップの管理
em_recovery_manager1
クロスチェック
バックアップレコードが物理ファイルとしてディスク(テープ)に存在するか?のチェック
チェックの結果はステータスが割り振られる
カタログ化
バックアップをRecoveryManagerリポジトリに登録する事
リカバリ領域内やOSコマンドによって取得したバックアップに対しては
「追加ファイルのカタログ化」によりカタログ化しておく事で、
リカバリ時に使用可能になる。

バックアップのステータス

ステータス RecoveryManagerのリポジトリに記憶されているバックアップについて
使用可能
AVAILABLE
ディスク(テープ)に「有る」状態
期限切れ
EXPIRED
ディスク(テープ)に「無い」状態
使用不可
UNAVAILABLE
保存先ディスク(テープ)が使用できない状態

論理バックアップ

ダンプファイルと呼ばれるデータのみのファイルを扱うバックアップ方法
異なるデータベース間でのバックアップ~リカバリが可能。
オブジェクト単位(表のみ等)でバックアップ対象を選択可能

エクスポート

expツール

≠SQL*Plus
exp testuser/testpass

 指定パスへ出力
 file=c:¥test.dmp

 DB全体をエクスポート

 full=y

 指定スキーマの全所有オブジェクトをエクスポート
 owner=testuser

 指定テーブルをエクスポート
 rows=y
 tables=(TEST_TBL, TEST_TBL2)

datapumpツール

=SQL*Plus
create or replace directory testtarget as 'C:\test';
GRANT READ, WRITE ON DIRECTORY testtarget TO (ユーザ名)
権限付与については「SQL DCL:ユーザー、ロール、権限/オブジェクト権限」参照
作成済みのディレクトリ情報については「Oracle データディクショナリ・ビュー/ALL_DIRECTORIES」参照

≠SQL*Plus

expdp (ユーザ名)/(パスワード)

 指定ディレクトリへ出力
 directory=(ディレクトリ名)

 指定ファイルにエクスポート
 dumpfile=(ファイル名)

 DB全体をエクスポート

 full=y

 表領域をエクスポート
 tablespaces=(表領域名)

 指定スキーマの全所有オブジェクトをエクスポート
 schemas=scott

 scottスキーマのEMPテーブルをエクスポート
 tables=scott.emp

インポート

DBA リカバリ/impインポート
DBA リカバリ/datapumpインポート
参照

ロード

SQL*Loader

・制御ファイル(emで作成。DBの制御ファイルとは別)
・データファイル(表データとなるテキストファイル)
を用意しておく事で行データを表に取り込める

データ移動 > 行データの移動 > ユーザー・ファイルからのデータのロード
em_load1

DBA ファイル

データベースファイル

一覧

oracle_instance_list4

Oracleデータベースを構成する物理ファイル

データファイル
(.DBF)
表、索引等データを格納
制御ファイル
(.DAT)
DBの物理構造を格納
REDOログファイル
(.LOG)
変更情報を格納
データファイル


















名前  表領域   サイズ(M) 
{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\SYSTEM01.DBF SYSTEM 680
{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\SYSAUX01.DBF SYSAUX 440
{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\UNDOTBS01.DBF UNDOTBS1 25
{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\USERS01.DBF USERS 5
{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\TEMP01.DBF TEMP 20

制御ファイル

データベースの物理構造を記録
・データベース名
REDOログファイル名、保存場所
・ログ順序番号
・チェックポイント情報
保存場所
<oracle_home>\oradata\\CONTROL~.CTL

REDOログファイル

データベースの更新履歴(=REDOログバッファ)の内容がLGWRプロセスによって書き込まれる。
REDOロググループ
・2グループ以上構成する必要あり
・1グループには1ファイル以上のREDOログファイルを配置する
LGWRプロセスは1ファイルが一杯になると別グループへ書き込み先を変更する(=ログスイッチ)

ログスイッチ
書込み先が変更される事

アーカイブログファイル
ログスイッチ時、リカバリ用に保存されるREDOログファイルのコピー
ARCnプロセスにより実行される。

保存場所
<oracle_home>\oradata\\REDO~.LOG

パラメータファイル

一覧

ファイル名 PFile SPFile
ファイル形式 テキスト形式 バイナリ形式
編集方法 エディタによる編集 ALTER SYSTEM SET ~
SCOPE={BOTH|SPFILE}
編集内容の反映タイミング 再起動時 即時
次セッション(遅延)
再起動時
ALTER SYSTEM の範囲 インスタンス
データベース
SPFile

サーバパラメータファイル
・初期化パラメータファイルより優先して読み込まれる
SPFileが読み込まれるとPFileは読み込まれない
・変更内容の反映タイミングは選択できる
 ・SCOPE=SPFILE
  SPFILEのみ変更:再起動後に反映される
 ・SCOPE=BOTH
  インスタンス&SPFILE変更:即時反映され、SPFileも書き変わるので再起動後も反映される
保存場所
$ORACLE_HOME/dbs (Linux)
$ORACLE_HOME/database (Windows)

PFile

テキスト初期化パラメータファイル
Oracle(SQL*Plus等)から変更する事はできない
保存場所
<oracle_home>\admin\<SID>\pfile\init.ora.~

初期化パラメータ

初期化パラメータ 意味
sga_max_size SGAの最大サイズ
・ALTER SYSTEM SET ~
・sga_tagert
で設定できる最大値
sga_target SGA全体の合計サイズ
「自動共有メモリ管理」設定時用
db_cache_size データベースバッファキャッシュのサイズ
shared_pool_size 共有プールのサイズ
large_pool_size ラージプールのサイズ
java_pool_size Javaプールのサイズ
stream_poolsize ストリームプールのサイズ

OracleNet

sqlnet.ora

プロファイル構成ファイル
保存場所
<oracle_home>\NETWORK\ADMIN\sqlnet.ora
DBA OracleNet」参照

tnsnames.ora

ローカルネーミングメソッド用構成ファイル
保存場所
<oracle_home>\NETWORK\ADMIN\tnsnames.ora
DBA OracleNet」参照

listener.ora

リスナー構成ファイル
保存場所
<oracle_home>\NETWORK\ADMIN\listener.ora
DBA OracleNet」参照

パスワードファイル

sysdba、sysoper権限ユーザがパスワード認証接続時に参照されるバイナリファイル。
他ユーザのパスワードはDB内に格納されているが、
上記ユーザはDB停止時に接続する為に外部ファイルを使用する(DBを起動させる為)
保存場所
・windowsの場合
<oracle_home>\database\PWD<SID>.ora
・unix系OSの場合
<oracle_home>/dbs/orapw<SID>
初期化パラメータ:REMOTE_LOGIN_PASSWORDFILE
EXCLUSIVEまたはSHARED
の設定の場合に使用される。
NONE:OS認証時
パスワードファイル作成(≠SQL*Plus)
ORAPWD FILE=<oracle_home>database\PWD.ora password=**** entries=10 force=y
orapwd file=<ファイル名> password=<パスワード> entries=<ユーザ数>
% orapwd file=orapwORCL password=oracle entries=10

ポート番号ファイル

各アプリのポート番号
ポート番号を変更した場合、ポート番号ファイルは更新されない。
インストール直後の状態のみを表す

保存場所
$ORACLE_HOME\install\portlist.ini

テンプレートファイル

DBA テンプレート」参照

DBA テンプレート

テンプレートとは?

DBCAにおいてデータベースを作成する際の雛形
テンプレートファイルを用いる事で、同じデータベースを作成可能。
Oracleに用意されたテンプレートに加え、
既存のデータベースからテンプレートを作成できる。
また、テンプレートファイルをエディタで修正して作成するデータベースの内容を変更する事も可能。

DBCA:テンプレート管理

DBCAの一機能
事前定義されたデータベース情報
新規にデータベースを作成する場合もデフォルトで用意されているテンプレートを用いてデータベースを作成する。

dbca (2)

dbca

シードテンプレート

種類 テンプレート内容 作成方法
シード
テンプレート
既存のデータベース構造
既存のデータベース物理データファイル
既存のデータベースを使用
(データおよび構造)
非シード
テンプレート
既存のデータベース構造

既存のデータベースを使用
(構造のみ)

作成対象

シードテンプレート 非シードテンプレート
データベース構造
データベースオプション
表領域
データファイル
初期化パラメータファイル
ユーザ定義スキーマ
ユーザ定義データ
物理データファイル

テンプレートファイル

保存場所

$ORACLE_HOME\assistants\dbca\templates

データベース・コンポーネント




























コンポーネント  選択済 
Oracle JVM true
Oracle Text true
Oracle XML DB true
Oracle Multimedia true
Oracle OLAP true
Oracle Spatial true
Oracle Label Security false
サンプル・スキーマ false
Enterprise Managerリポジトリ true
Oracle Application Express true
Oracle Warehouse Builder true
Oracle Database Vault false
Oracle Database Extensions for .NET false
初期化パラメータ
















































名前 内容
audit_file_dest {ORACLE_BASE}\admin\{DB_UNIQUE_NAME}\adump
audit_trail db
compatible 11.2.0.0.0
control_files ("{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\control01.ctl", "{ORACLE_BASE}\flash_recovery_area\{DB_UNIQUE_NAME}\control02.ctl") 制御ファイル
db_block_size 8KB データブロックサイズ
db_name
db_recovery_file_dest {ORACLE_BASE}\flash_recovery_area
アーカイブREDOログファイル保存先をフラッシュリカバリ領域に設定
DBA バックアップ/フラッシュリカバリ」参照
db_recovery_file_dest_size MB
diagnostic_dest {ORACLE_BASE}
dispatchers (PROTOCOL=TCP) (SERVICE={SID}XDB)
memory_target 250MB
自動メモリー管理」設定時のメモリサイズ
SGA + PGA
0 指定時は自動メモリー管理:無効

open_cursors 300
processes 150
remote_login_passwordfile EXCLUSIVE
undo_tablespace UNDOTBS1
キャラクタ・セット






名前
データベース・キャラクタ・セット JA16SJISTILDE
各国語キャラクタ・セット AL16UTF16
データファイル


















名前  表領域   サイズ(M) 
{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\SYSTEM01.DBF SYSTEM 680
{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\SYSAUX01.DBF SYSAUX 440
{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\UNDOTBS01.DBF UNDOTBS1 25
{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\USERS01.DBF USERS 5
{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\TEMP01.DBF TEMP 20
制御ファイル



名前
{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\control01.ctl
{ORACLE_BASE}\flash_recovery_area\{DB_UNIQUE_NAME}\control02.ctl
REDOログ・グループ








グループ サイズ(K)
1 51200
2 51200
3 51200

DBA 記憶域

表領域

データベースオブジェクトをグループ分けする為の論理的な領域
それぞれがデータベースオブジェクト=セグメントを保持する
各セグメントは物理的なデータベースファイル1つ以上と関連付けられる。

storage_area1

storage_area2

・各表領域に対して1つ以上のデータファイルが作成される。
・セグメントのデータはデータファイルに格納される
表領域:データファイル = 1:N
セグメント:データファイル = 1:N

表領域の種類

表領域 内容
SYSTEM ・管理データ(メイン)
データディクショナリ
SYSAUX 管理データ(補助)
UNDOTBS ロールバック
・フラッシュバック用
読取の一貫性
DBA インスタンス/UNDO」参照
USERS ユーザーオブジェクト
TEMP ソート、結合等PGA不足時に使用
表領域を分ける意味

・使用制限
表領域単位にQUOTA(使用制限)を設定できる。
表などのオブジェクトに使用できる領域の上限値を設定できる。
・セキュリティ
表領域単位でオンライン/オフラインの設定ができる。
ユーザー毎の使用可否を表領域単位で制御できる。
・障害対策
表領域単位でデータのバックアップやリカバリが行える。
ある表領域で障害が発生しても、他の表領域を使用する業務に与える影響を最小限にできる。
・速度向上
表領域を異なるディスク上に配置することで、I/Oの衝突を減少させられる。
速度向上や安全性を考慮して、
表用の表領域や索引用の表領域に分ける事が推奨されている。

管理

サーバー > 表領域
table_space

管理項目 内容
割当済サイズ(MB) データファイル容量合計
使用されている領域(MB) 使用領域容量
使用されている割当済領域(%) データファイル容量に対する使用領域の割合
自動拡張 作成」参照
割当済空き領域(MB) 未使用領域容量
ステータス 作成」参照
データファイル データファイル数
タイプ 作成」参照
エクステント管理 作成」参照
セグメント管理 作成」参照

作成

サーバー > 表領域 > 作成 > データファイル > 追加
em_tablespace1

サーバー > 表領域 > 作成
em_tablespace2

エクステント管理方法 内容(表領域内のエクステント情報) 推奨
ローカル管理 ビットマップ(各データファイル)で管理(速い)
ディクショナリ管理 データディクショナリ(SYSTEM表領域)で管理(遅い)

データの挿入、削除時にどのエクステントのデータを操作するか?等の自動判定方法

タイプ 内容
永続 限定しない
一時 一時セグメント用
UNDO UNDOセグメント用

ステータス 内容
読取/書込 通常
読取専用 参照専用のデータに使用
オフライン リカバリ時等に使用(アクセス不可)

em_tablespace3

セグメント領域の管理 内容
自動 自動
手動 空きリストを使用

QUOTA
QUOTA」参照

削除

削除
表領域内のオブジェクト及びデータファイルも削除される
SQL DDL:表領域/削除」参照

セグメント

storage_area2

データベースオブジェクト(表や索引) 1つに該当する論理的なデータ領域

表や索引をCreateすると自動的に作成される(※2)。
レコードの増加に伴ってセグメント領域も増加する。
表作成時等)に、サイズ上限を設定できる。

エクステント

storage_area2

データブロックが連続したデータ領域
セグメントが複数のデータファイルで構成される場合(※3) でも、
エクステントが複数のデータファイルに分割される事は無い。
セグメント作成時には1つ以上のエクステントが必要(※2)。
表レコードの増加等によりセグメントが増大する場合、
エクステントをセグメントに追加する(手動or自動)
通常、表領域作成時に表領域の最大サイズ及び、エクステントのサイズを指定する。
エクステントを一杯まで使用した後に、エクステントが追加されると、
表領域のサイズも追加エクステント分増える。
表領域作成時に指定した最大サイズを超えてエクステントを追加する事はできない。
またセグメント作成時(表作成等)にもエクステントのサイズを指定できる。
表領域における挙動と

QUOTA
割り当て可能な表領域容量
ユーザー毎に設定
SQL DCL:ユーザー、ロール、権限」参照
QUOTAが0
既存のエクステントは残る為(追加はできない)、
エクステントの残り分のみ、行等のデータ追加は可能

データブロック

データブロックとは?

最小I/O単位
データブロックサイズ:データベース作成時に指定。変更不可
既定値:2,048byte
更新系DB:小さくすると速い
検索系DB:大きくすると速い
データブロック内には複数の行データが格納される

行連鎖

1行の読み込みにおいて複数のデータブロックへアクセスする必要がある状態
遅い
データブロックサイズ < 1行のデータサイズの状態で、
行データを更新した場合に発生する

データブロックに格納されるデータ種類

・ ブロックヘッダ:ブロック毎に必要(80byte)
・ 行データ
・ 行ディレクトリ:
・ 表ディレクトリ:表毎に必要(4byte)

行データ

サイズ:可変長
NUMBER型:値の桁数÷2+1
VARCHAR2型:値の桁数に応じて可変
CHAR型:有効桁分固定
DATE型:7byte固定

PCTFREE

Percent Free
データブロック毎の空き領域割合
規定値:10%
行連鎖を防ぐ為に、
データブロックにおいてPCTFREEに達すると、
新しいデータブロックに保存される

PCTUSED

Percent Used
データブロックにおける行データの使用率
規定値:40%
一度PCTFREEに達したデータブロックにはデータは追加されなくなるが、
データが削除されたりしてPCTUSEDを下回った場合には再度追加される。

DBA インストール手順

OUI

Oracle Universal Installer
要するにインストーラ

ダウンロード

Oracle公式サイト
メディアからではなくダウンロードファイルからインストールする場合、
ファイル2つをダウンロード後、
database\stage\Components
の中身を1つにまとめます。

要件

要件

最小値
物理メモリ (RAM) 1GB
スワップ領域 RAM (MB) スワップ領域
1,024~2,048 RAM × 1.5
2,048~8,192 RAM と同じ
8,192超 RAM × 0.75
/tmp 内のディスク容量 400MB
ソフトウェアファイル用ディスク容量 3.22GB
データベースファイル用ディスク容量 1.5GB

要件 最小値
物理メモリ (RAM) 1GB
スワップ領域 RAM × 2.0
一時ディスク容量 200MB
ハードディスク容量 4.55GB

インストール開始

通常、↓ OracleUniversalInstallerを用いてインストールを行うとありますが・・・
OUI

ダウンロードファイルからインストールを行う場合は以下の画面でインストールされます。
oracle_install (1)

「データベースの作成および構成」
を選択すると後述するDBCAを直接起動する場合とは異なる画面でデータベースの作成まで終了しますが、
(内部でDBCAを起動しているらしい)
ここでは
「データベース・ソフトウェアのみインストール」
を選択してインストールを行います。

oracle_install (6)
以下を設定します。
・ Oracleベース
環境変数:ORACLE_BASE
同一サーバに複数のデータベースをインストールする場合でも、
通常Oracleベースは1つ。

・ Oracleホーム
環境変数:ORACLE_HOME
同一サーバに複数のデータベースをインストールする場合でも、
Oracleホームは分ける必要がある。
(OracleホームはOracleベース内に設定)

他は基本的に、
「次へ」
を押すだけで終了します。

NetCA

Oracle Net Configuration Assistant
ネットワーク関連設定ツール
リスナーをインストールできる。

リスナー作成

Oracleデータベースを使用するにはデータベースを作成すると同時にリスナーの作成が必要
リスナーの概要及び作成方法については「DBA OracleNet」参照

DBCA

Oracle DBCA使用方法」参照

DBA 管理者ツール

OUI

Oracle Universal Installer
インストール用GUIツール
DBA インストール手順 OUI」参照

DBCA

DataBase Configuration Assistant
データベース作成用GUIツール
DBA インストール手順 DBCA」参照

DBUA

DataBase Upgrade Assistant
バージョンアップ用GUIツール

NetCA

Oracle Net Configuration Assistant
ネットワーク関連設定ツール
DBA インストール手順 NetCA」参照
DBA OracleNet/NetCA」参照

Net Manager

Oracle Net Manager
ネットワーク構成用GUIツール
通常、データベースサーバーをネットワーク上に構築する

DBA OracleNet/Net_Manager」参照

EM

Oracle Enterprise Manager
またはOEM
管理ツール
ブラウザから使用
Oracle エンタプライズマネージャー使用方法①一覧」参照
Oracle エンタプライズマネージャー使用方法②サーバー」参照
Oracle エンタプライズマネージャー使用方法③スキーマ」参照

SQL*Plus

SQL実行用CUIツール
SQL*Plus使用方法」参照

SQL Developer

SQL実行用GUIツール
SQL Developer使用方法」参照
SQLServerにおけるManagementStudio

RMAN

Recovery Manager
バックアップ、リストア用CUIツール

Data Pump

データベース間データ転送CUIツール

SQL*Loader

外部ファイルのロード(取込み)用CUIツール
SQL文を含むロードファイルをロードして実行。

BLOB型のテーブルにExcelファイルを格納する際に利用
プログラムからそのデータを抽出して操作できる
SQLからではExcelデータをInsertするのは難しいがSQL*Loaderだと比較的簡単にできる
DBA バックアップ/SQL*Loader」参照

DBA オブジェクト

スキーマオブジェクト一覧

データベース・ユーザーによって所有されるオブジェクト
ユーザーは1つのスキーマを持つ

索引
順序
ビュー
ストアド・ファンクションプロシージャパッケージ
シノニム
トリガー
リンク
ディメンション
外部プロシージャ・ライブラリ
Javaクラス、JavaリソースおよびJavaソース
マテリアライズド・ビューおよびマテリアライズド・ビュー・ログ
オブジェクト表、オブジェクト型およびオブジェクト・ビュー
演算子
クラスタ
外部プロシージャ

クラスタ

スキーマオブジェクト
複数の表を1つの領域(セグメント)に格納し、
同じデータブロックを共有する表のグループ。
・ 結合処理においてディスクのI/Oが少なくなる
・ 表の検索速度が向上する。
・ サイズが小さくなる。

パッケージ

ストアドプロシージャ、ストアドファンクションを所属させる名前空間

データベースリンク

他データベースのテーブルへのアクセス手段
サーバが別、データベースが別等でも、
データベースリンクを張る事で操作を可能にできる
CREATE DATABASE LINK (データベースリンク名)
CONNECT TO (ユーザー名)
IDENTIFIED BY (パスワード)
USING (データベースサーバーのIPアドレス)/(接続先のデータベースサービス名)

SELECT * FROM (データベースリンク先のテーブル名)@(データベースリンク名)

外部プロシージャ

PL/SQLから呼び出せるCで作成した外部プログラム

非スキーマオブジェクト一覧

データベース・ユーザーによって所有されないオブジェクト
ロールバックセグメント
コンテキスト
ディレクトリ
プロファイル
ロール
ユーザー
表領域

オブジェクト命名規則

・先頭数字 : ×
・31バイト以上 : ×
・予約語 : ×
・非日本語環境での日本語使用 : ×
・非日本語環境での使用可能文字 : A~Z a~z 0~9 _ # $

DBA インスタンス

Oracleの構成

・ メモリ上のインスタンス(メモリ領域、プロセス)
・ ディスク上のデータベースファイル(物理ファイル)
から成る
oracle_instance_list

インスタンスとは?

データベースを構成する
・ メモリ情報
・ 物理ファイル(データベースファイル)
の内のメモリ情報
SGA(システムグローバルエリア)
バックグラウンドプロセス
から成る
oracle_instance_list2

SGA

システムグローバルエリア
高速アクセスの為にOracleデータベースが稼働するコンピュータ内に保持されるメモリ領域
複数のユーザーで共有される
oracle_instance_list3

データベースバッファキャッシュ

データファイルの内容を保持する領域
データをファイルでなくメモリ上に置く事で処理速度の向上を図っている
サーバープロセスは最初にここから読み書きし(速い)、無い場合にデータファイルを操作する(遅い)。
更新内容はDBWnプロセスによりデータファイルへ書き込まれる。

共有プール

・ SQL文解析結果
・ SQL文実行計画
・ データディクショナリ情報
 「Oracle データディクショナリ・ビュー」参照

REDOログバッファ

REDO情報を保持する領域
REDO情報 = データベースへの変更情報
(Insert等のDML文、Commit/RollBack等も含む)
commit時、一定時間経過時等に、
REDOログバッファ

REDOログファイル へ、
LGWRプロセスによって書き込まれる。
その後REDOログバッファはクリアされる

ラージプール

オプション
・ 共有サーバー時のセッション情報
RMAN使用時のデータ

Javaプール

オプション
JVMに含まれるセッション固有のデータを保持
JAVAストアドプロシージャ実行時のJAVAの情報

バックグラウンドプロセス

oracle_instance_list

プロセス名 機能 補足
SMON サーバープロセス監視
インスタンスリカバリ
PMON ユーザープロセス管理
ロールバック
DBWn DBバッファキャッシュ→データファイルへ書込み
LGWR REDOログバッファ→REDOログファイルへ書込み
CKPT DBWnへ実行指示
ARCn REDOログファイル→Archiveログファイルを作成
RMAN バックアップ/リカバリツール ≠バックグラウンドプロセス
MMON アラート通知

SMON

システムモニター
(1)重要なタスク
 ・ インスタンスリカバリ
  (サーバー側の障害時≠PMON)
 ・ 無効になったトランザクションのリカバリ等
(2)メンテナンス・タスク
 ・ 一時領域の再利用
 ・ データ・ディクショナリのクリーンアップ
 ・ UNDO表領域の管理等
を実行

PMON

プロセスモニター
・ ユーザープロセス
 (クライアント側の障害時≠SMON)
・ ディスパッチャプロセス
が異常終了した場合にプロセスのリカバリを実行
データベースバッファキャッシュのクリーンアップ
・リソース解放(ロールバック、ロック解除)
・プロセス、ディスパッチャ再起動

DBWn

データベースライタープロセス
データベースバッファキャッシュ

データファイル
へ書き込む。
書き込むタイミングはCKPTプロセスが指示する

LGWR

ログライタープロセス
REDOログバッファ

REDOログファイル
へ書き込む。
REDOログバッファ」参照

CKPT

チェックポイントプロセス
チェックポイントでDBWnにシグナルを送る
データベースの全てのデータファイルと制御ファイルを更新
最新のチェックポイントを示す

ARCn

アーカイバプロセス
・ REDOログ・ファイルが一杯になる
・ オンラインREDOログの切替えが発生
の場合に、
REDOログファイル

アーカイブ記憶領域
へコピーする

RMAN

Recovery Manager
・ バックアップ
・ リストア
・ リカバリ
用Oracle標準ツール
以下の方法で起動・操作可能
・ OSから起動、コマンドラインで操作
・ EMで操作(バックグラウンドで起動・実行される)
RMANを使用せずにOSの機能だけでのバックアップ、リストア、リカバリと比較して、
・ バックアップ:世代管理、不要バックアップの自動削除
・ リストア:必要なバックアップファイルの自動取得
等のメリットがある。
DBA バックアップ」参照
DBA リカバリ」参照

MMON

マネージメント・モニター
・統計情報の取得
・各値に対して、しきい値(メトリック)を超えた場合のアラート通知処理
表領域の不足等

データベース起動の流れ

状態 説明 必要なファイル SQLコマンド
Open
使用可能 REDOログファイル
データファイル
STARTUP
ALTER DATABASE OPEN
Mount
データベースをマウント
Oracleが物理構成を保持
制御ファイル STARTUP MOUNT
ALTER DATABASE MOUNT
NoMount
インスタンス起動 PFile
SPFile
STARTUP NOMOUNT
ShutDown 停止 切断」参照

インスタンスの状態を確認するSQLは「Oracle データディクショナリ・ビュー/インスタンス」参照
起動に必要な権限については「SQL DCL:ユーザー、ロール、権限/システム権限」参照

プロセス

dba_process3
※図はRAC利用時で、複数インスタンス、複数DBファイルを使用

ユーザープロセス

ユーザの操作を受け付け、サーバープロセスに対してリクエストを送信する

サーバープロセス

・ ユーザープロセスからのリクエストを実行
・ 実行結果をユーザープロセスへレスポンス

専用サーバー接続

dba_process1
tnsnames.ora:SERVER=SHARED
共有サーバーに接続しない
クライアントからの接続(セッション)に対して1つのサーバプロセスが割り当てられる
高速
少数のユーザが長時間接続を維持するバッチ処理向け
多数のユーザが頻繁に接続~切断を繰り返すアプリでは遅い
(Webシステムでは接続プーリング機能により回避可能)
UNIX系
データベースへの接続~切断が1プロセス
Windows系
データベースへの接続~切断が1スレッド

共有サーバー接続

dba_process2
tnsnames.ora:SERVER=SHARED
共有サーバーに接続できない場合はエラー
常時複数のサーバープロセスが待機しており、
ディスパッチャという受付サービスがクライアントからの要求を空いているサーバプロセスへ振り分ける
マルチスレッドサーバー(MTS:Multi Thread Server)接続とも呼ばれる。
サーバのリソースを効率的に使用できる反面、速度は専用サーバに劣る

PGA

プログラムグローバル領域
サーバープロセスに対して割り当てられる。
・ プライベートSQL領域
  セッション毎のカーソル、バインド情報
・ セッションメモリー
  セッション毎のログイン情報
・ SQL作業領域
  SQL文で使用するソート、結合情報。最も多く消費され易い
から成る。
他のサーバープロセスとは共有されない。
複数のサーバープロセスが起動している場合、複数のPGAが起動する。
個々のPGAの集合は、
インスタンスPGA(合計インスタンスPGA)
と呼ばれる。

UGA

User Global Area
SQL実行の際、ソートや結合時に使用されるメモリ領域
・ 専用サーバ接続時:PGAから割り当て
・ 共有サーバ接続時:ラージプールから割り当て

メモリ管理

自動メモリー管理

SGA、PGAの合計メモリサイズを指定すると、
負荷に応じてSGA、PGAに対して動的にメモリ容量が割り当てられる
PGAが複数ある場合も同様に動的に割り当てられる

手動メモリー管理

・ 自動共有メモリー管理: SGA用
  最大メモリ容量を設定すると、動的にメモリ容量が調整される

・ 手動共有メモリー管理: SGA用
  手動でメモリ容量を設定する

・ 自動PGAメモリー管理
  最大メモリ容量を設定すると、動的にメモリ容量が調整される

・ 手動PGAメモリー管理
  手動でメモリ容量を設定する

がある。

メモリアドバイザ

最適なメモリーサイズを選択できるグラフィカルツール
Oracle エンタプライズマネージャー使用方法参照

管理モード アドバイザ
自動メモリー管理 メモリーアドバイザ
自動共有メモリー管理 + 自動PGAメモリー管理
(自動メモリー管理:無効)
SGAアドバイザ
PGAアドバイザ
手動共有メモリー管理 + 自動PGAメモリー管理
(自動メモリー管理:無効 / 自動共有メモリー管理:無効)
PGAアドバイザ
共有プールアドバイザ
バッファキャッシュアドバイザ

Oracle エンタプライズマネージャー使用方法②サーバー/メモリー・アドバイザ」参照

参考

REDO/UNDO

REDO
REDO情報 = データベースへの変更情報
DDL文、COMMIT/ROLLBACK命令等も含まれる
保存先:REDOログバッファ → REDOログファイル

UNDO
UNDO情報 = 変更前(COMMIT前)データ
ROLLBACKの為に使用
・変更が発生する度に更新される=COMMITされるまではデータが保障される
・保存先:UNDO表領域
UNDO表領域が不足すると「スナップショットが古すぎます」エラーが表示される
・UNDO保存=コミット後の保存時間
パラメータ:UNDO_RETENTIONで指定(規定:900)