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

Oracle エンタプライズマネージャー使用方法②サーバー

一覧

em7

記憶域

表領域

table_space
Oracle 記憶域」参照

REDOログ・グループ

REDOロググループ

データベース構成

メモリー・アドバイザ

自動メモリ管理:有効
memory_adviser1

memory_adviser2

memory_adviser3

自動メモリ管理:無効
自動共有管理:有効
memory_adviser4

memory_adviser5

自動メモリ管理:無効
自動共有管理:無効
memory_adviser6

memory_adviser7

初期化パラメータ

データベース構成 → 初期化パラメータ
em16
「現行」タブ
現インスタンス使用中の値
「SPFile」タブ
SPFile登録値
「動的」項目
変更時、インスタンス再起動不要
「SPFileモードでの変更を現在実行中のインスタンスに適用する」チェック
SPFile、インスタンス両方に適用する
ALTER SYSTEM SET ~ SCOPE = BOTH に当たる処理
DBA インスタンス/パラメータファイル」参照

セキュリティ

ユーザー

em_user1

設定項目 内容
ユーザー名 大文字/小文字:区別しない
パスワード 大文字/小文字:区別する
プロファイル 適用するパスワードポリシーを包括したプロファイルを選択する
認証方式 ・パスワード
・外部
・グローバル
デフォルト表領域 ユーザーがオブジェクト(表等)作成時、
格納先表領域を指定しなかった場合の格納先表領域
一時表領域
表領域の割り当て制限 使用を許可する表領域の容量
規定は全表領域に対して「なし」
アカウントステータス ログイン:○=ロック解除
ログイン:×=ロック
パスワードステータス 期限切れ=次回ログイン時にパスワード変更を求められる
ロール EMでユーザーを作成するとCONNECTが自動で付与される
SQL DCL:ユーザー、ロール、権限」参照

em_user3

em_user2

em_user4
割り当て制限を解除しない場合、CREATE TABLE権限を割り当てても表を作成できない
一度、表領域に対して割り当てた領域について再度、割り当てを解除(割り当て制限:なし、値:0)した場合
最初に割り当てた領域分、全てのDML文を実行できる。

ロール

em_role1

em_role2

em_role4

em_role3

プロファイル

ユーザの動作を制限する為のルール
SQL DDL:プロファイル」参照
em_profile1

パスワードポリシー
em_profile2