2. ファイル管理 1 モニター方法 領域 内容 対象 方法及び項目 V$COTOROLFILE 格納場所 ブロックサイズ 制御ファイル データベース物理構成情報 V$COTROL_RECORD_SECTIO 制御タイプ レコードサイズ etc データファイル ディクショナリ & ユーザ情報 V$DATAFILE データファイルの物理的な構造情報 REDO ログファイル アーカイブログ ファイルサイズ 物理構成情報 ログスイッチ発生状況 ログスイッチ待機状況 チェックポイント頻度 チェックポイント未完了 アーカイブ未完了 ログ消去 ディスク競合等の上記以外 発生回数 開始回数 完了回数 アーカイブログモード アーカイブロギング自動 or 手動 アーカイブログ構成情報 V$SSSTAT V$LOGFILE V$LOG アラートログ ( 拡張子.ARC) V$SESSIO_EVET log file switch checkpoint incomplete V$SESSIO_EVET log file switch archiving needed V$SESSIO_EVET log file switch clearing log file V$SESSIO_EVET log file switch completion V$SSSTAT DBWR checkpoint write requests V$SSSTAT background checkpoints started V$SSSTAT background checkpoints completed V$DATABASE log_mode パラメータ (V$PARAMETER) log_archive_start ARCHIVEコマンド V$ARCHIVED_LOG 演繹的 : ( 最もトランザクションが激しい時間帯で発生した REDOログの量 )*( その時間 )/( ログ スイッチの帰納法的 : 右記 SQLの実行前と後の差の平均 REDOログファイルの場所 物理的な構成情報 ロググループ & ログメンバーのログ使用情報 ログファイルサイズ LOG_CHECKPOITS_TO_ALERT =TRUE に設定してアラートログに開始時間 終了時間を出力する イヴェント名 待機回数 タイムアウト回数 待機時間 最大待機時間 チェックポイント要求回数 チェックポイント発生回数 チェックポイント完結回数 ログモードの確認 : ARCHIVEモードか?OARCHIVEか? アーカイブが自動か否か アーカイブ先 ログの順序アーカイブログのブロックサイズ等 モニター例 select STATUS, AME, BLOCK_SIZE, FILE_SIZE_BLKS from select TPE, RECORD_SIZE, RECORDS_TOTAL, RECORDS_USED from V_$COTROLFILE_RECORD_SECTIO; select FILE#, BTES, BLOCKS, CREATE_BTES, BLOCK_SIZE, AME from V_$DATAFILE; select STATISTIC#, AME, CLASS, VALUE, STAT_ID from V_$SSSTAT where name = 'redo size'; select GROUP#, STATUS, TPE, MEMBER, IS_RECOVER_DEST_FILE from V_$LOGFILE; select GROUP#, BTES, ARCHIVED, STATUS, FIRST_TIME from V_$LOG; select EVET, TOTAL_WAITS, TOTAL_TIMEOUTS, TIME_WAITED, MAX_WAIT from V_$SESSIO_EVET WHERE EVET = 'log file switch checkpoint incomplete' ; select EVET, TOTAL_WAITS, TOTAL_TIMEOUTS, TIME_WAITED, MAX_WAIT from V_$SESSIO_EVET WHERE EVET = 'log file switch checkpoint incomplete' ; select EVET, TOTAL_WAITS, TOTAL_TIMEOUTS, TIME_WAITED, MAX_WAIT from V_$SESSIO_EVET WHERE EVET = 'log file switch checkpoint incomplete' ; select EVET, TOTAL_WAITS, TOTAL_TIMEOUTS, TIME_WAITED, MAX_WAIT from V_$SESSIO_EVET log file switch completion'; select STATISTIC#, AME, CLASS, VALUE, STAT_ID from V_$SSSTAT where name = 'DBWR checkpoint write requests'; select STATISTIC#, AME, CLASS, VALUE, STAT_ID from V_$SSSTAT where name = 'background checkpoints started'; select STATISTIC#, AME, CLASS, VALUE, STAT_ID from V_$SSSTAT where name = 'background checkpoints completed'; SELECT LOG_MODE FROM V$DATABASE; SHOW PARAMETER LOG_ARCHIVE_START; ARCHIVE LOG LIST; select AME, BLOCKS, BLOCK_SIZE from V_$ARCHIVED_LOG; 1
2 メンテナンス方法 領域 内容 対象 方法 制御ファイルミラー化 ( 拡張子 ctl ファイル ) 拡張子.ctlファイル 制御ファイル データファイル REDO ログファイル アーカイブログ データファイル拡張 ( 拡張子 dbf ファイル ) DBWR プロセス増加 チェックポイント発生頻度の調整 FAST_START_MTTR_TARGET のデフォルトが推奨される REDO ロググループ追加 REDO ロググループ削除 REDO ログの初期化 REDO ログ追加 REDO ログ削除 REDO ログ切替 ( 手動 ) 補足資料 1 図 1 参照 チェックポイント発生 ( 手動 ) 補足資料 1 図 1 参照 アーカイブログモードの設定 アーカイブログ手動実行 メンテナンス ( 追加 削除 ) 拡張子.dbf ファイル DB_WRITER_PROCESSES FAST_START_MTTR_TARGET LOG_CHECKPOIT_ITERVAL LOG_CHECKPOIT_TIMEOUT 補足資料 ➀ 図 2 参照 REDO ロググループ REDO ロググループ REDO ログ REDO ログ REDO ログ ログスイッチ チェックポイント LOG_ARCHIVE_START 手動アーカイブの実行 LOG_ARCHIVE_DEST_n ALTER SSTEM 文で拡張子.ctl ファイルをメンテナンスする ALTER DATABASE 文で拡張子.dbf ファイルのサイズを変更する ALTER TABLESPACE 文で DATAFILE のサイズを変更する ALTER DATABASE 文で拡張子.dbf AUTOEXTED を指定する ALTER SSTEM 文で起動するDBWRプロセス数を設定する デフォルト 1 値の範囲 1~20 チェックポイントの発生頻度を データベースがリカバリに必要な最長の所要時間 ( 秒数 ) で指定する 設定範囲 0~3602 秒 本パラメータを設定すると以下のパラメータ LOG_CHECKPOIT_ITERVAL は設定出来ない チェックポイントの発生頻度を 直前のチェックポイントからのLGWR 発生までのブロック ( ブロック数 ) で指定する デフォルト 1ブロック チェックポイント発生頻度を 直前のチェックポイントから経過時間を秒数でしていする デフォルト 1800 秒 ALTER DATABASE ADD 文でロググループを追加する ALTER DATABASE DROP 文でロググループを削除する ALTER DATABASE CLEAR 文でログを初期化 ( 中身を空に ) する ALTER DATABASE ADD 文でロググループに追加する ALTER DATABASE DROP 文でロググループから削除する ログファイルサイズを事前に見積もっておき 業務ピーク時の切替を回避する様に手動で切替える ログファイルサイズを事前に見積もっておき 業務ピーク時の切替を回避する様に手動で切替える アーカイブログが自動か手動かを設定する コマンド SQLの詳細な使用方法については割愛する メンテナンス例 ALTER SSTEM SET control_files = '/ORADATA/u01/ctrl01.ctl', '/ORADATA/u02/ctrl02.ctl' SCOPE = SPFLE ; ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' RESIZE 101M; ALTER TABLESPACE [ 表領域 ] DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' SIZE 102M; ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' AUTOEXTED ALTER SSTEM SET LOG_CHECKPOIT_TIMEOUT ALTER DATABASE ADD LOGFILE GROUP 10 ('/oracle/dbs/log1c.rdo', '/oracle/dbs/log2c.rdo') SIZE 500K; ALTER DATABASE db1 DROP LOGFILE GROUP 10; alter database clear logfile member 'c:\oracle\product\10.1.0\test\redo_test1.log' to group 1 alter database add logfile member 'c:\oracle\product\10.1.0\test\redo_test1.log' to group 1 ALTER SSTEM SWITCH LOGFILE; ALTER SSTEM CHECKPOIT; ALTER SSTEM SET LOG_ARCHIVE_START=TRUE SCOPE=SPFILE; アーカイブログへの出力のO OFFを設定する 1 アーカイブモードにする alter database archivelog 2 アーカイブモードにしない alter database noarchivelog アーカイブログ書出しを手動で実行する ALTER SSTEM ARCHIVE LOG CURRET; アーカイブ自動モードでも手動実行可能である ALTER SSTEM ARCHIVE LOG ALL; ALTER SSTEM 文でアーカイブログのロケーションを指定して追加 削除する 2 ALTER SSTEM SET DB_WRITER_PROCESSES = 10 SCOPE=SPFILE; ALTER SSTEM SET FAST_START_MTTR_TARGET=31; ALTER SSTEM SET LOG_CHECKPOIT_ITERVAL ALTER DATABASE DROP LOGFILE MEMBER '/oracle/dbs/log2b.rdo'; alter system set log_archive_dest_1='location=c:\temp\archive' alter system set log_archive_dest_1='' alter system switch logfile;
3 REDO ログ ログスイッチ チェックポイントのサイズ調整とチューニングの手順 1) ログスイッチ チェックポイントプロセスのフロー 図 2 発生条件 5 秒おき COMMIT ログバッファ /5 ログバッ LGWR ロググループ 1 2 REDOロ REDOロ ロググループ満杯 ログスイッチ 設定 DB シャットダウン時 オフラインバックアップ時 CKPT ログスイッチ発生 制御 DB バッファが満杯 3 秒おき CKPT 発生 プロセスがバッファ獲得不能時 DBWR データ F 3. リサイクルピン 1 リサイクルピンの表示 SELECT OBJECT_AME,ORIGIAL_AME,TPE FROM R3ECCLEBI; SHOW RECCLEBI 2 リサイクル ビンからのフラッシュバック RLASHBACK TABLE IT_DEPT TO BERORE DROP; 2) REDO ログ アーカイブログのチューニングフロー 必ずしもこれが最適解ではないので 適宜必要に応じてフレキシブルに対応する事が望ましい REDO ログチューニング V$SESSIO_EVET 閲 3
log file switch checkpoint incomplete が待 log file switch archiving needed が待 アラートログをチェック ORA-00257: アーカイブ エラー出 log file switch completion が待機 チェックポイントは発生していな アーカイブ先の容量は充分 REDO ログを追加もしくはサイズを拡張 手動でチェックポイントを発生させ FAST_START_MTTR_TARGET OR LOG_CHECKPOIT_ITERVA L REDO ログを追加もしくはサイズを拡張 不要なアーカイブは削除 解決 DB_ARCHIVE_MAX PROCESSE チェックポイント発生頻度調 V$SSSTAT 閲覧 DBWR checkpoint write requests が多 REDO ログを追加もしくはサイズを拡張 DB_WRITE_PROCESSES 4
3. リサイクルピン 1 リサイクルピンの表示 SELECT OBJECT_AME,ORIGIAL_AME,TPE FROM R3ECCLEBI; SHOW RECCLEBI 2 リサイクル ビンからのフラッシュバック RLASHBACK TABLE IT_DEPT TO BERORE DROP; 5
6