Oracleの最近のブログ記事

自動ワークロードリポジトリ(AWR)
調査員。データベース状態とワークロードに関する情報を定期的(デフォルト60分)に収集、格納する。
SYSMANスキーマの管理の表でSYSAUX表領域とメモリの両方に格納される。
これらは特定時点のシステムの統計サマリーで、スナップショット形式で保存される。一定期間たったら、空き領域確保のためにパージされる。スナップショットの保存期間 7日間、収集間隔 60分。


Automatic Database Diagnostic Monitor(ADDM)
分析官。AWRに格納されたデータを調査、分析し、アドバイスする。全体のアドバイザで、Oracle Serverのボトルネックになっているコンポーネントや推奨項目を教えてくれる。
ADDMが使用するシステムの統計情報はMMON(メモリモニター)によって、SYSAUX表領域に書き込まれる。
書き込まれた収集情報はスナップショットと呼ばれる。

手動起動が必要な場合
スナップショット期間の途中で実行する必要がある場合。
複数のスナップショットにわたって実行する必要がある場合。?
OEMホーム>関連リンク>セントラル・アドバイザ>アドバイザ>ADDM>ADDMの実行

ADDMの動作変更方法
保存期間や収集間隔を変えられる。
OEMホーム>管理>統計管理>自動ワークロード・リポジトリ

アーカイブログファイル

REDOログファイルの内容をARCHが書き込むファイル。リカバリ時に使用される。

アーカイブログファイルの保存先をフラッシュリカバリ領域に指定する場合、USE_DB_RECOVERY_FILE_DESTにセットする。
アーカイブログファイル名はLOG_ARCHIVE_FORMATでセットする。ただし以下のフォーマット記号を使って指定する必要がある。


アーカイブログファイルのフォーマット記号


  • %t, %T・・・スレッド番号を含める。thread

  • %s, %S・・・ログ順序番号を含める。sequence

  • %r, %R・・・リセットログIDを含める。Reset


*大文字を使うと番号の左側が0で埋まる。

マルチブロックサイズ

OracleではI/Oの最小単位をブロックという。
Oracleサーバでは1つのDBに対して複数のブロックサイズを持つことができる。

標準ブロックサイズ
基準となる標準ブロックサイズはSYSTEM表領域が使ってるものになる。(たとえば、SYSTEM表領域が8Bなら標準ブロックも8B)。DB_BLOCK_SIZEで指定。
標準ブロックサイズのDBバッファキャッシュのサイズをしてするのはDB_CACHE_SIZE。

非標準ブロックサイズ
ブロックサイズが違うならば、DBバッファキャッシュのブロックサイズも変わってくる。そのサイズはDB_nK_CACHE_SIZEで設定。


SGAのスライス化・・・DBバッファキャッシュを複数の領域に分割して、キャッシュの使用効率の向上を目的に使用する。

Oracleのネットワークの構成

これらのツールを使って管理できる。

Oracle Net Configuration Assistant・・・GUIツール。「リスナー構成」、「ネーミングメソッド構成」、「ローカルネットサービス名構成」、「ディレクトリ構成」が実行可能。
Oracle Enterprise Manager・・・リスナーの起動・停止、構成。ローカルネーミングの構成。ディレクトリネーミングの構成。が可能。
OEMホーム>一般>リスナーのリンク>LISTENER_SID編集ボタン
Oracle Net Manager・・・GUIツール。Oracle Netのほとんどの構成が可能。


クライアント、サーバの構成
クライアント


  • サーバのリスナーに接続要求を送信する。

  • 接続先の名前解決に使用する方法をsqlnet.oraで指定する。

  • 名前解決にローカルネーミングメソッドを使う場合は tnsnames.oraを使用。

サーバ


  • クライアントからの接続要求を受信するリスナーを構成する

  • リスナーの構成にlistener.oraを使用する。

  • リスナーの管理作業にlsnctlを使用する。

Oracleの環境変数

  • ORACLE_BASE ・・・Optimal Flexible Architecture(OFA)のディレクトリ推奨構造に従うために、ベースとなるディレクトリを指定する。この配下にORACLE_HOMEを作成することで、アップグレードや複数のOracleバージョンの管理を容易にする。windowsのだとシステム環境変数Pathに追加(C:\oracle\product\10.2.0\db_1\bin)された。C:\oracle
  • ORACLE_HOME・・・Oracleをインストールしたところ。C:\Program Files\Oracle ではない。C:\oracle\product\10.2.0\db_1\
  • ORACLE_SID・・・Oracleデータベースに対応するOracleインスタンス名。最大8文字。デフォルト:ORCL。インストール時に追加されてないので、自分でOSの環境変数に追加してやる。
  • LD_LIBRARY_PATH・・・UNIX/LINUXで使用する環境変数。 共有オブジェクトライブラリの検出パス。ORACLE_HOME/libを含めるようにする。例:$ORACLE_HOME/lib
ORACLE MASTER Bronze DBA講座(2) はじめてのOracleインストールとデータベース作成

PGA

PGA(プログラムグローバル領域)
営業(サーバプロセス)や裏方(バックグラウンドプロセス)個人のメモ帳。他の営業は覗けない。サーバプロセスごとの共有されないメモリ。サーバプロセスごとの固有のデータを格納する。
SQLのソートというと一時表領域というイメージだが、実はPGAで先にソートされる。そこで足りない場合一時表領域を使う。
Oracleインスタンスに含まれない。


PGAが持つ情報はサーバの構成方法により変わる。
専用サーバの場合に格納する情報
プライベートSQL領域・・・セッションで使用するカーソルやバインド情報?を格納
セッションメモリー・・・セッションのログイン情報など格納
SQL作業領域・・・SQL文で使用するソート情報を格納する。

アドバイザ

アドバイザ
*アドバイザを使用するにはDBがオープンしてなくてはいけない。


  • Automatic Database Diagnostic Monitor(ADDM)・・・全体のアドバイザ。

  • SQLチューニングアドバイザ・・・SQL文を分析し、パフォーマンス向上のための推奨項目を提示。もっといい感じのSQL文を考えてくれる。たとえばCPUタイム、I/Oおよびメモリーを消費している上位のSQL文を分析したりできる。↓も参考のこと。

  • SQLアクセスアドバイザ・・・特定のワークロードについて索引とマテリアライズドビューを作成するための推奨項目を提示。要はアクセスをどうしたら早くできるか考えてくれる。↓も参考のこと。

  • メモリアドバイザ・・・システムメモリーのアドバイザ。共有プール、PGA、データベースバッファキャッシュを最適化する。なお、自動メモリ管理を無効にしないと使えない。

  • 平均リカバリ時間(MTTR)アドバイザ・・・インスタンス障害後の平均リカバリ時間(MTTR)をチューニングする。

  • セグメントアドバイザ・・・オブジェクト内の断片化を調査して、個々のスキーマオブジェクトか表領域に対して縮小可能なセグメントのアドバイスを行う。対象は表領域、表、索引、表パーティション、索引パーティション。

  • UNDOアドバイザ・・・最も長い問合せと初期化パラメータUNDO_RETENTIONに指定されているUNDO保存の低しきい値を考慮して、UNDO表領域のサイズのアドバイスをする。
    チューニングに使用するシステムアクティビティは最長実行問合せ、平均UNDO生成率、最大UNDO生成率。


ワークロード
アドバイザが使用する統計情報はWRスキーマに格納される。ADDMのSYSAUXとは別。
アドバイザが推奨事項を生成するための材料となるものです
OTN Japan - 意外と簡単!? Oracle Database 10g:Windows版 第5章


SQLチューニングアドバイザ
セントラルアドバイザ経由でいける。SQL文を良くするアドバイスをしてくれる。
分析対象をデータソースという。

対象データソース
上位SQL・・・現在アクティブな上位のSQL文を分析。
SQLチューニングセット・・・指定した一連のSQL文を分析。
スナップショット・・・2つのスナップショットを指定して、その間のアクティビティを分析。
保存スナップショット・・・保存スナップショットを分析。


SQLアクセスアドバイザ
セントラルアドバイザ経由でいける。SQLを効率よく実行するための、オブジェクトを作るアドバイスをしてくれる。
スキーマをチューニングして、問合せのパフォーマンスを向上させられる。実行計画を無駄なくするために索引やマテリアライズドビューを薦めてきたりする。

マテリアライズドビュー
テーブルのように実体を持ったビューのこと。単なるビューは元となるテーブルを結合してみたり演算してみたりするものだが、使うたびに計算し直すのでパフォーマンス的に不利。
マテリアライズド・ビューは、その計算結果を保持しておき、いちいち計算し直さない。
使う側からすれば、ただ単に「高速なビュー」という感じになる(更新頻度が少なく、参照頻度が高いデータの場合)。

ひしだま's 技術メモページ

メモリアドバイザ
セントラルアドバイザ経由でいける。
SGAコンポーネントの最も効率のいいメモリサイズを教えてくれる。(メモリアドバイザ内に設定項目あり)
これを使うには「自動共有メモリー管理」を無効にしておくこと。

アドバイス対象
SGA・・・共有プール、データベースバッファキャッシュ
PGA・・・プログラムグローバル領域

データベース監視

予防的監視


  • 一般的なDB状態とワークロードの監視・・・OEMホームページでチェックできる。

  • パフォーマンスの監視・・・パフォーマンスページチェックできる。

  • アラートの使用

使うツール・・・アラート通知機能、Automatic Database Diagnostic Monitor(ADDM)

Diagnostic [da`iэgnα'stik]-診断


アラート
特定のメトリック(Oracleによって定義された、特定のシステム属性に関する一連の統計情報)しきい値を超過した事を伝える通知のこと。スクリプトの実行をするためのアラートを設定することもできる。
各アラートにはクリティカルしきい値と警告しきい値を設定できる。しきい値には絶対数でなく、実際のパフォーマンスの値に基づいて指定できる。この時の基準をベースラインという。
デフォルトアラートのカスタム、オリジナルアラートの作成も可能。
アラート状況が解消されると、自動的にアラート情報は消去される。
OEMホーム>アラート


デフォルトのアラート


  • 表領域の使用率(警告しきい値:85%、クリティカルしきい値:97%)

  • リカバリ領域空き領域

  • スナップショットが古すぎます。

  • 再開可能セッションが保留されています。


メトリック
MMONによって計算されるシステム属性に関する統計情報。自己チューニング機能、推奨事項作成に使用される(これをつかってOracleがチューニングの目安にする)。また統計情報に、警告やクリティカルのしきい値を設定すれば、監視にも使える。
自動ワークロードリポジトリ(AWR)によって、計算され格納されている。
アラート発行時に、発行原因に対処するためのSQLスクリプトの完全修飾パスを「レスポンス処理」に入力できる。

メトリックの確認・作成・・・OEMホーム>関連リンク>すべてのメトリック
メトリックの変更・・・OEMホーム>関連リンク>メトリックの管理


通知の設定
通知に必要な情報は
OEMホーム>設定>通知方法 で
送信メール(SMTP)サーバー
送信者の識別(送信者名)
送信者の電子メール・アドレス

OEMホーム>プリファレンス>一般>電子メール・アドレス
受信者の電子メール・アドレス

OEMホーム>プリファレンス>通知>ルールまたは スケジュール
通知ルールを使用すると、Enterprise Managerから通知を受け取る対象となるターゲットと条件を選択できる。


ブラックアウト
アラートを通知させない期間をブラックアウト時間という。たとえばメンテナンスでDBを停止しているのに、アラートが着たりしないように設定するもの。
定期的にブラックアウトを発生させることも可能。
OEMホーム>プリファレンス>一般>ブラックアウト

フラッシュバック

OEMホーム>メンテナンス>バックアップ/リカバリ> リカバリの実行

フラッシュバック操作
バックアップからリカバリしなくていいのがミソ。表における行の移動を有効にしておく必要がある。
フラッシュバック操作をするデータは、UNDO表領域から取り出される。
OEMホーム> メンテナンス>バックアップ/リカバリ>リカバリの実行>オブジェクト・レベルのリカバリ>オブジェクト・タイププルダウンを「表」に>以下進める

行に移動有効
OEMホーム>管理>スキーマ>表>「表を検索」>「表を選んで」編集>オプション> 行管理の有効


使えるヒト
DBAロールがなくても権限があれば使える。
必要な権限・・・FLASHBACK TABLE、FLASHBACK ANY TABLEシステム権限。その表に対するSELECT、INSERT、 DELETE、ALTERオブジェクト権限

  • フラッシュバック問い合わせ・・・ターゲット時間を指定して、データベースに対する問い合わせを実行しその時点で表示されるはずの問い合わせ結果を表示。
  • 行履歴フラッシュバック・・・指定した2つの時間内の1つ以上の表に存在した、すべての行のバージョンを表示します。
  • トランザクション履歴フラッシュバック・・・単一のトランザクション(完結してるもの)によって行われた変更、または指定した期間内全てのトランザクションによって行われた変更を表示
  • フラッシュバックテーブル・・・表(表の内容)を以前の時点に戻すことができる。表に関連する索引や制約、トリガーなどのデータも復活する。フラッシュバックするためのデータはUNDO表領域から使える。他のスキーマのオブジェクトにフラッシュバックテーブルしたい時は、FLASHBACKオブジェクト権限が必要。
  • フラッシュバックドロップ・・・DROP TABLE文の実行を無効にできる。対象は削除された表とその依存オブジェクト。表を削除するとまずゴミ箱に入る。ゴミ箱の中の表はパージされる前ならゴミ箱から戻せる。セグメントに割り当てられたエクステントはパージされるまで割り当てを解除されない。フラッシュバックの過程で復活させる表の名前を変えられる。ので、同じ名前のを復活前に作っちゃたら、名前を変えればOK。SYSTEM表領域内の表を削除すると、即パージされるので、フラッシュバックドロップできないので注意。削除する権限があれば、フラッシュバックドロップできる。
  • フラッシュバックデータベース・・・データベースのPoint-in-Timeリカバリに変わる機能を提供する。


ゴミ箱の中のオブジェクトの内容の表示
ゴミ箱の中の表の内容の表示をすると↓を確認できる。


  • ゴミ箱の中の表にアクセスするためのSELECT文

  • 削除前の表の全データ

バックアップ

一貫性バックアップ


  • リストア操作の直後にデータベースをオープンできる。(リカバリ必要なし)

  • REDOログ内の全ての変更がデータファイルに適用されている必要がある。(だからリカバリ必要なし)

  • DBをクローズして、インスタンスを停止しなくてはいけない。インスタンスを停止しているので、全てのデータファイルは同じ状態?


非一貫性バックアップ
DBオープン中に行うことができる。
データファイルに適用されていない変更が、オンラインREDOログファイルまたはアーカイブREDOログファイルに含まれている場合あり。(オープンしてると新しい更新がどんどん来るため)
リストア後にメディアリカバリ(明示的なリカバリ)を実行する必要がある。(REDOログなどの差を無くすため)


バックアップファイルのタイプ
OEMで使用可能なバックアップファイルのタイプは、
OEMホームページ>メンテナンス>バックアップ/リカバリ>現行バックアップの管理 「現行バックアップの管理」の「コンテンツ」を見るとどの種類のファイルをバックアップしてるのかわかる。


  • イメージコピー・・・OSのコピーコマンドと同じ。データファイル制御ファイル、アーカイブREDおログファイルのコピー。データファイルのイメージコピーは、未使用のブロックも含め、データファイルのすべてのブロックで構成されます。イメージコピーには1つのファイルのみを含められる。1回のコピーでは多重化できない

  • バックアップセット・・・Recovery Managerで使用するファイル形式。1つ以上のデータファイル、制御ファイル、REDOログファイルを含められる。セットだから、まとめて取れる。


データベース全体のバックアップ
DB(制御ファイル、アーカイブREDO ログファイル、SPファイル、データファイル)の全内容をバックアップ。

大規模なDBの場合、時間がかかるので、頻繁にするのは向いてない。そのためアーカイブログファイルが使用できない(もしくはできなくなる)次のような時には、全体バックアップを取る。



  • 新規DBの作成直後

  • ARCHIVELOGモードとNOARCHIVELOGモード間の切り替え時


データファイルのバックアップ


  • 全体バックアップ・・・1つ以上のファイルの全ての使用ブロックがバックアップされる。データベース内の全てのデータファイル、制御ファイル、アーカイブREDOログファイル、SPFILEがバックアップ対象。オンラインREDOログファイルは対象ではない。

  • 増分バックアップ・・・変更されたブロックのみを含む差分バックアップ。

    • 差分増分バックアップ・・・前回からの変更部分だけをバックアップ。ファイルがいくつも分かれるので、リカバリにその文の時間がかかる。

    • 累積増分バックアップ・・・最初の全体バックアップからの変更点をバックアップ。だんだんバックアップ時間は長くなっていく。リカバリに使うファイル数は少なめなので、リカバリは早め。




増分更新バックアップ
データファイルのイメージコピーを作成した後、定期的にデータベースの増分バックアップをイメージコピーに適用する方法。データファイルの状態が定期的に新しいものになるので、リカバリ時間を短くできる。


バックアップの流れ


  • バックアップ先の構成・・・バックアップ先はどこか。バックアップファイルのタイプはどっちか。

  • ポリシーの設定・・・増分バックアップするか?バックアップとらなくてもいいファイルはあるのか?何日分バックアップするか?

  • バックアップ計画の作成・・・何をいつからどのくらいの間隔でバックアップするか決める。

  • バックアップの管理・・・バックアップが存在してるか?アクセスできるか?不要になったバックアップの削除。


OEMを使用してのバックアップ設定と方法
設定
OEMホームページ>メンテナンス>バックアップ/リカバリ設定>バックアップ設定 「ディスク・バックアップの場所」をNULLにするとフラッシュリカバリ領域にバックアップされる。


方法
OEMホームページ>メンテナンス>バックアップ/リカバリ>バックアップのスケジュール


ポリシーの設定
バックアップポリシー・・・バックアップ方法や場所などの制御情報。
リテンション(保存)ポリシー・・・バックアップとコピーの保存期間を決めるもの。冗長性(複数の世代)とリカバリ期間で定義できる。たとえばDBを過去3日の任意の時点にりかばりできればいいのなら、4日以上前のバックアップは要らなくなる。

OEMホームページ>メンテナンス>バックアップ/リカバリ設定>バックアップ設定>ポリシー
データファイルは「データベース全体のバックアップから除外される表領域」を指定できる。一時表や索引のみの表領域も除外して平気。


バックアップの管理
ディスクまたはテープ上にあるバックアップファイルそのものとバックアップレコード(バックアップ情報)の管理をさす。
バックアップレコードはRman(Recovery Manager)のリポジトリに格納され、OEMを使用して管理できる。リポジトリの場所は通常、制御ファイルになる。オプションでリカバリカタログデータベース内に格納することもできる。


OEMでできること


  • リポジトリに記憶されているバックアップ(バックアップセットとイメージコピーのリスト表示)

  • リポジトリのクロスチェック

    • リポジトリにリストされているバックアップが実際に物理的に存在しているか、またはアクセス可能かをチェック

    • クロスチェック時にアクセスできないバックアップが存在した場合、そのバックアップを期限切れとする。


    クロスチェックの結果表示

    • AVAILABLE(使用可能)・・・リポジトリに記録された位置にちゃんとあり、ファイルヘッダーの破損が無い。(テープ上のはファイルヘッダーの破損のチェックは無い。)

    • EXPIRED(期限切れ)・・・リポジトリに記録されてるが、その記録位置にファイルがない、確認できない

    •     
    • UNAVAILABLE(使用不可)・・・バックアップのステータスをUNAVAILABLE(使用不可)にすることができる。一時的に使用できなくなったことを示す。リカバリ操作でこのファイルは使われない。フラッシュリカバリ領域に格納されているバックアップはUNAVAILABLEできない。



  • 期限切れになったバックアップをリポジトリから削除。「期限切れになったものを削除」ボタンをクリックすると、期限切れのバックアップセットもイメージコピーのどちらも削除される。

  • 不要になったバックアップレコードをリポジトリから削除とディスクからファイル削除。

  • フラッシュリカバリ領域にあるものは手動で削除する必要が無い。必要になったら勝手に削除される。

  • 追加ファイルのカタログ化・・・OS上でコピーしてとったバックアップやリカバリ領域内にあるバックアップファイルをリカバリ操作で使用できるように、リポジトリ内でカタログ化することができる。


バックアップのスケジュール
対象


  • データベース全体

  • 表領域

  • データファイル

  • アーカイブログファイル

  • ディスク上の全てのリカバリファイル

推奨のバックアップ計画


  • 最初に全DBのバックアップ作成。

  • 2回目以降は、毎日増分バックアップが実行。

  • Point-In-Timeリカバリできる。

アーカイブ

Powered by Movable Type 4.22-ja