日本語PDF

OMSへのREDOログ・ファイルの追加

REDOのパフォーマンスを最大限に高めるために、類似する特性でREDOグループのすべてのメンバーをストレージに追加することをお薦めします。Oracle Memory Speed (OMS)ファイル・システムの場合、OMSにREDOグループのすべてのメンバーを追加すると、REDOログの書込み回数が効率的になります。

OMSに新しいREDOログ・ファイル・メンバーを追加し、OMS以外の既存のREDOファイルを削除するには、次のステップを実行します。

  1. v$logを問い合せて、構成されている既存のすべてのREDOグループ番号を特定します。
    SQL> SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;
  2. 新しいログ・メンバーを含む新しいログ・グループをOMSの場所に追加します。
    SQL> ALTER DATABASE ADD LOGFILE 'OMS_MOUNT_PATH/oms_redolog_2.rdo';

    この文により、新しいログ・グループ番号を追加します。これは、v$logを問い合せることで検証できます。

  3. データベースがOMFを使用して設定されており、db_create_online_log_dest_1パラメータがOMSを指すようにすでに設定されている場合は、ログ・ファイル名を指定せずにログ・ファイルを追加します。
    SQL> ALTER DATABASE ADD LOGFILE;

    v$logfileを問い合せて、データベースに追加された新しいグループ番号とログ・ファイルを特定します。OMSにある新しいメンバーのブロック・サイズは4kになります。

  4. (オプション) REDOログ用のOracle Managed Files (OMF)がデータベースで有効になっている場合は、ステップ3で指定したOMSマウント・パスを指すようにdb_create_online_log_dest_1を変更します。
    SQL> alter system set db_create_online_log_dest_1=’OMS_MOUNT_DIR’ scope=both;
  5. 新しいREDOログ・ファイルをOMSに追加した後、V$LOGでリストからOMS以外のREDOログ・ファイルを削除します。

    ノート:

    ログ・ファイルを削除する前に、ステータスがINACTIVEに設定されていることを確認します。

例8-6 オンラインREDOログを移動するためのスクリプト

SET SERVEROUTPUT ON;

DECLARE

CURSOR rlc IS

SELECT GROUP# GRP, THREAD# THR, BYTES, 'NO' SRL
FROM V$LOG
UNION

SELECT GROUP# GRP, THREAD# THR, BYTES, 'YES' SRL
FROM V$STANDBY_LOG
ORDER BY 1;

stmt VARCHAR2(2048);

BEGIN
FOR rlcRec IN rlc LOOP

IF (rlcRec.srl = 'YES') THEN
stmt := 'ALTER DATABASE ADD STANDBY LOGFILE THREAD ' ||
rlcRec.thr || ' SIZE ' || rlcRec.bytes;
EXECUTE IMMEDIATE stmt;
stmt := 'ALTER DATABASE DROP STANDBY LOGFILE GROUP ' || rlcRec.grp;
EXECUTE IMMEDIATE stmt;
ELSE
stmt := 'ALTER DATABASE ADD LOGFILE THREAD ' ||
rlcRec.thr || ' SIZE ' || rlcRec.bytes;
EXECUTE IMMEDIATE stmt;

BEGIN
stmt := 'ALTER DATABASE DROP LOGFILE GROUP ' || rlcRec.grp;
DBMS_OUTPUT.PUT_LINE(stmt);
EXECUTE IMMEDIATE stmt;
EXCEPTION
WHEN OTHERS THEN
EXECUTE IMMEDIATE 'ALTER SYSTEM SWITCH LOGFILE';
EXECUTE IMMEDIATE 'ALTER SYSTEM CHECKPOINT GLOBAL';
EXECUTE IMMEDIATE stmt;
END;

END IF;

END LOOP;

END;

/

REDOログの管理方法の詳細は、『Oracle Database管理者ガイド』を参照してください。