!!!Oracle Database10g データベースサーバーのアーキテクチャ [Oracle Database10g] {{amazon 479810910X }} [Documentation Library|http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/index.htm] !!データベースサーバーのアーキテクチャ !概要図 *ローカルネーミングメソッド例 {{ref_image database_svr_arc.jpg}} ::SGA *V$SGAINFO SGA情報の統合された簡潔な要約 SQL> select * from v$sgainfo; NAME BYTES RES -------------------------------- ---------- --- Fixed SGA Size 1218316 No Redo Buffers 2973696 No Buffer Cache Size 96468992 Yes Shared Pool Size 58720256 Yes Large Pool Size 4194304 Yes Java Pool Size 4194304 Yes Streams Pool Size 0 Yes Granule Size 4194304 No Maximum SGA Size 167772160 No Startup overhead in Shared Pool 33554432 No Free SGA Memory Available 0 11 rows selected. !!データベースファイルの構成 !制御ファイル *データファイルやREDOログファイルの場所や名前が書かれている *データファイルやREDOログファイルが追加・削除されると自動的に更新される *制御ファイルの場所と名前は初期化パラメータファイルのCONTROL_FILESに記述 *データベースをマウントすると読み込まれる ::SQL Plusのパラメータで確認 *CONTROL_FILES SQL> show parameters control_files NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_files string /opt/oracle/app/oradata/oradb1 /control01.ctl, /opt/oracle/ap p/oradata/oradb1/control02.ctl , /opt/oracle/app/oradata/orad b1/control03.ctl ::動的パフォーマンスビューで確認 *V$CONTROLFILE SQL> select name from v$controlfile; NAME ---------------------------------------------- /opt/oracle/app/oradata/oradb1/control01.ctl /opt/oracle/app/oradata/oradb1/control02.ctl /opt/oracle/app/oradata/oradb1/control03.ctl !REDOログファイル *トランザクションおよび内部表に対して行われた変更を記録する *2つ以上のグループから構成される *ログライタープロセス(LGWR)はREDOバッファの内容を1つのグループにのみ書き出す *グループのREDOログファイルが満杯になるか、ログスイッチが要求されると、次のグループに書き出しが行われる *チェックポイントが完了したREDOログファイルはLGWRにより上書きされる *グループ内のメンバーには同じ値が書き込まれる ""ログスイッチを手動で実行 alter system switch logfile {{ref_image redo_log.jpg}} ::V$LOG *制御ファイルのREDOログ・ファイル情報を表示 SQL> select group#, sequence#, members, status from v$log; GROUP# SEQUENCE# MEMBERS STATUS ---------- ---------- ---------- ---------------- 1 38 1 INACTIVE 2 39 1 CURRENT 3 37 1 INACTIVE ::V$LOGFILE *REDOログ・グループとメンバーおよびメンバーの状態を識別 SQL> select * from v$logfile; GROUP# STATUS TYPE MEMBER IS ---------- ------- ------- ---------------------------------------------------------------------------- 3 ONLINE /opt/oracle/app/oradata/oradb1/redo03.log NO 2 ONLINE /opt/oracle/app/oradata/oradb1/redo02.log NO 1 ONLINE /opt/oracle/app/oradata/oradb1/redo01.log NO ::V$LOG_HISTORY *ログの履歴情報 !データファイル {{ref_image oracle_arch01.jpg}} ::表領域 *データベースは、表領域という論理単位に分けられる ,表領域,用途 ,SYSTEM,Oracle内部データ ,TEMP,一時データ ,USERS,ユーザーデータ *表領域には1つ以上のデータファイルを対応づけ *データファイルの中に表や索引と呼ばれるセグメントを格納 *[[表領域の管理|Oracle Database10g 表領域の管理]] *表領域に関係するデータディクショナリビューの一覧を確認 SQL> select table_name from dict where table_name like'%TABLESPACE%'; TABLE_NAME ------------------------------ USER_TABLESPACES DBA_TABLESPACES DBA_TABLESPACE_GROUPS DBA_TABLESPACE_USAGE_METRICS DBA_FILE_GROUP_TABLESPACES ALL_FILE_GROUP_TABLESPACES USER_FILE_GROUP_TABLESPACES DBA_HIST_TABLESPACE_STAT V$TABLESPACE GV$TABLESPACE 10 rows selected. ::セグメント *オブジェクトに割り当てる領域 *データセグメント、索引セグメント、UNDOセグメント、一時セグメントなど *1つの表領域に属すが、複数のデータファイルにまたがることがある *エクステントから構成 ::エクステント *セグメント内の連続領域 *データブロックからなる ::データブロック *論理データベース構造の最単位 *OSブロックから構成 *データブロックサイズは、2、4、8、16、32KB *DB_BLOCK_SIZE初期化パラメータで指定する標準ブロックサイズと4つまでの非標準ブロックサイズがある