Oracle:REDOログの操作に関するSQL | けしくんのWebLog

けしくんのWebLog

自分が考えたこと、調べたことを忘れずに残しておくため、Web上にLogを残していきます。

よく使うREDOログの操作に関するSQLのまとめ。
大抵はこれで事足りるはず。細かい設定がしたければ、マニュアルをみる。

よく使うOracle SQL/コマンドまとめ

REDOログの状態確認
SELECT L.GROUP#, L.ARCHIVED, L.STATUS, L.BYTES, LG.MEMBER
FROM V$LOG L, V$LOGFILE LG
WHERE L.GROUP#=LG.GROUP#
ORDER BY L.GROUP#;
※以下のように読む
GROUP#:REDOロググループの番号
ARCHIVED:アーカイブログモードの場合、アーカイブされているかどうかの値(YES|NO)
MEMBER:REDOロググループの属するメンバーのOSログファイル名
STATUS:REDOログの状況
・INACTIVE・・・使用されていない。このREDOグループへのスイッチ可能。
・ACTIVE・・・使用されていないが、CheckPointが完了していない状態。 このREDOグループへのスイッチ不可。強制的にCheckPointを発生させることでINACTIVEにすることができる。
・CURRENT・・・現在使用されているREDOログ。
・UNUSED・・・作成直後のステータス。 このREDOグループへのスイッチ可能。

REDOロググループの追加
ALTER DATABASE ADD LOGFILE GROUP グループ番号
 ('ファイル絶対パス', 'ファイル絶対パス', …) SIZE xxxxK|M|G;

REDOロググループの削除
ALTER DATABASE DROP LOGFILE GROUP グループ番号;
※STATUSがINACTIVEまたはUNUSEDの場合に実行可能。
物理ファイルは削除されないので、後からOSコマンドで削除する。

REDOロググループへのメンバー追加
ALTER DATABASE ADD LOGFILE MEMBER
'ファイル絶対パス'
TO GROUP グループ番号;
※サイズは他のグループメンバーと同じになる。

REDOロググループからのメンバー削除
ALTER DATABASE DROP LOGFILE MEMBER
'ファイル絶対パス';
※STATUSがINACTIVEまたはUNUSEDの場合に実行可能。
物理ファイルは削除されないので、後からOSコマンドで削除する。

REDOログのスイッチの実行
ALTER SYSTEM SWITCH LOGFILE;

CheckPointの実行
ALTER SYSTEM CHECKPOINT;

REDOログファイルのサイズの変更
REDOログサイズを変更する場合は、REDOロググループを作り直す必要がある。
手順1:REDOログの状態を確認
手順2:INACTIVEのロググループを削除
    (削除したいロググループのステータスがCURRENTまたはACTIVEの場合は、
    REDOログのスイッチとCheckPointの実行を行い、INACTIVEの状態にする。)
手順3:削除したREDOロググループのファイルをOSコマンドで削除
手順4:REDOロググループを変更後のサイズで作成

REDOログファイルのOS上ファイルの配置変更
手順1:DBをShutdown
SHUTDOWN IMMEDIATE
手順2:REDOログファイルを新しい位置に移動(OSコマンドで実行)
手順3:DBをマウント状態まで起動
CONNECT / AS SYSDBA
STARTUP MOUNT
手順4:REDOログ・ファイルのメンバー名を変更
ALTER DATABASE RENAME FILE
'元のファイルの位置(絶対パス)', ' 元のファイルの位置(絶対パス) '
TO
' 新しいファイルの位置(絶対パス) ', ' 新しいファイルの位置(絶対パス) ';
手順5:DBをOPEN
ALTER DATABASE OPEN;


よく使うOracle SQL/コマンドまとめ