2009年1月24日土曜日

Silver DBA 10g (1Z0-042J)その12

<表領域の管理>

□表領域の作成
 ●CREATE TABLESPACE 表領域名
  [DATAFILE 'データファイル名' SIZE サイズ
  {AUTOEXTEND OFF | ON}]
  [{LOGGING | NOLOGGING}]
  [EXTENT MANAGEMENT {DICTIONARY | LOCAL}]
  [SEGMENT SPACE MANAGEMENT {MANUAL | AUTO}]
 ・AUTOEXTEND      :データファイルがいっぱいになった時に自動拡張
                  するかどうか
 ・LOGGING          :表領域内の全てのオブジェクトに対する変更を
                   REDOログファイルに記録するかどうか
  LOGGING
  ⇒表や索引の作成時およびデータ挿入時にREDOログを
            生成するように設定する
  NOLOGGING⇒オブジェクトに変更が加えられてもREDOログは生成されない
            パフォーマンスが改善されるが、メディアリカバリは実行できない
 ・EXTENT MANAGEMENT:表領域内のエクステントの管理方法を指定する
 ・SEGMENT SPACE MANAGEMENT:表領域内のセグメントの空き領域の
                          管理方法を指定する

□表領域のエクステント管理
 ●ローカル管理
  ・エクステントの割り当てや解除が発生しても、データディクショナリ表への更新が
   発生しないためパフォーマンスが改善する
  ・隣接した空きエクステントを結合する必要が無い
  ・自動的に適切なエクステントサイズが選択されるため、領域割り当てが簡素化
   される

 ●ディクショナリ管理
  ・SYSTEM表領域がディクショナリ管理で管理されている必要がある
  ・エクステントの割り当てや解除が発生すると、Oracleサーバによって自動的に
   適切なデータディクショナリ表が更新される
  ・表領域内に格納するオブジェクトに対してデフォルト記憶域パラメータを
   指定することができる

□データファイルの自動拡張の確認
  ・DBA_DATA_FILESビューのAUTOEXTENSIBLE列で確認
  ・select file_name,tablespace_name,autoextensible
   from dba_data_files
   where tablespace_name in ('XXXXX');

□ディクショナリ管理表領域←→ローカル管理表領域の変更
  ●ディクショナリ管理→ローカル管理
   ・TABLESPACE_MIGRATE_TO_LOCALプロシージャ
  ●ローカル管理→ディクショナリ管理はできるのかな?(要調査)

□セグメント内の空き領域管理方法(ローカル管理表領域の場合)
  ●手動セグメント領域管理
   ・セグメント内の空き領域管理に空きリストを使用する方法
   
空きリストは、行が挿入されるデータブロックの決定のために使用されるリスト。
   
空きリストの数は、セグメント属性FREELISTSとFREELIST GROUPSで決定される。
   
データブロック内の使用済み領域がセグメント属性PCTUSEDを下回ると、
    空きリストに登録される

  ●自動セグメント領域管理
   
セグメント内の空き領域管理にセグメント内のビットマップブロックを使用する方法
   
行の挿入時や削除時にメンテナンスされるため、空きリストを使用しない。
    
従って、セグメント属性FREELISTS、FREELIST GROUPS、PCTUSEDは
    設定できない(設定しても無視される)。

□表領域の名前を変更するコマンド
  ・ALTER TABLESPACE 変更前の表領域 RENAME TO 変更後の表領域名;
  ・表領域内のデータファイルがオフライン、表領域がオフラインの場合エラーとなる
  ・SYSYEM表領域、SYSAUX表領域の名前は変更できない

□オフライン
  ●以下の表領域は、オフライン化できない
   ・SYSTEM表領域
   ・UNDO表領域
   ・一時表領域

  ●alter tablespace~offlineコマンド
   ・ALTER TABLESPACE 表領域名 OFFLINE
    {NOMAL | TEMPORARY | IMMEDIATE}

   ・NOMAL     ・・・いずれのデータファイルにもエラーが存在しない場合に
                オフライン化することができる。安全性が保障される

   ・
TEMPORARY ・・・いずれかのデータファイルにエラーが存在してもオフライン
                化することができる。
                Oracleはデータファイルのチェックポイントを処理してから
                オフラインにする。
   ・
IMMEDIATE ・・・即時にオフライン化する。
                この指定でオフラインにすると、データの整合性が
                保証されなくなるため、オンライン前にリカバリ処理が必要となる

□表領域を読み取り専用に変更するコマンド
  ・alter tablespace XXXXX read only
  ・オブジェクトの削除は可能
   ※オブジェクトの削除は、データディクショナリの更新により完了し、表領域を
     構成しているデータファイルは更新されないため。

□データファイルのサイズ変更
  ・ALTER DATABASE DATAFILE 'データファイル名' RESIZE 変更後のファイルサイズ

□表領域の削除
  ・DROP TABLE SPACE 表領域名 オプション指定
  ・表領域がオンラインでも、オフラインでも削除可能
   ・INCLUDING CONTENS:表領域にセグメントが格納されているばあいにセグメントも
                    含め削除する
                    OS上からはデータファイルは削除されない
   ・
INCLUDING CONTENS AND DATAFILES:表領域の削除と同時にセグメント
                    および対応するデータファイルをOS上から削除する
   ・CASCADE CONSTRAINTS:表領域内の表を参照する別の表領域の表から、全ての
                     参照整合性制約を削除する

□DATA_TABLESPACES
  ・表領域の詳細情報
□DBA_DATA_FILES
  ・データファイルの詳細情報
□V$TABLESPACE
  ・制御ファイルから取得した表領域情報
□V$DATABASE
  ・制御ファイルから取得したデータベース情報

□データファイル名を変更する手順
  ①名前を変更するデータファイルに対応する表領域をオフラインにする
  ②OSコマンドを使用してデータファイルの名前を変更する
  ③ALTER TABLESPACE 表領域 RENAME DATAFILEコマンドを実行する
  ④名前を変更したデータファイルに対応する表領域をオンラインに戻す
 
 

0 件のコメント: