tech_memo / ORACLE / Supplemental_Logging


tech_memo/ORACLE

概要

表レベルのロギング設定

表レベルの識別キー・ロギング

  • 常に全カラムをログ出力
     ALTER TABLE HR.EMPLOYEES ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
  • PKのみ
     ALTER TABLE HR.EMPLOYEES ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;

表レベルのユーザー定義サプリメンタル・ログ・グループ

  • hr.employees表でemp_parttimeという名前のログ・グループを作成
    ALTER TABLE HR.EMPLOYEES
      ADD SUPPLEMENTAL LOG GROUP emp_parttime (EMPLOYEE_ID, LAST_NAME, 
      DEPARTMENT_ID) ALWAYS;

サプリメンタルロギングの状態確認


DBレベルの確認

COLUMN log_min HEADING 'Minimum|Supplemental|Logging?' FORMAT A12
COLUMN log_pk HEADING 'Primary Key|Supplemental|Logging?' FORMAT A12
COLUMN log_fk HEADING 'Foreign Key|Supplemental|Logging?' FORMAT A12
COLUMN log_ui HEADING 'Unique|Supplemental|Logging?' FORMAT A12
COLUMN log_all HEADING 'All Columns|Supplemental|Logging?' FORMAT A12

SELECT SUPPLEMENTAL_LOG_DATA_MIN log_min, 
      SUPPLEMENTAL_LOG_DATA_PK log_pk, 
      SUPPLEMENTAL_LOG_DATA_FK log_fk,
      SUPPLEMENTAL_LOG_DATA_UI log_ui,
      SUPPLEMENTAL_LOG_DATA_ALL log_all
 FROM V$DATABASE;  

テーブルレベルのロググループの確認

COLUMN LOG_GROUP_NAME HEADING 'Log Group' FORMAT A20
COLUMN TABLE_NAME HEADING 'Table' FORMAT A15
COLUMN ALWAYS HEADING 'Conditional or|Unconditional' FORMAT A14
COLUMN LOG_GROUP_TYPE HEADING 'Type of Log Group' FORMAT A20

SELECT 
   LOG_GROUP_NAME, 
   TABLE_NAME, 
   DECODE(ALWAYS,
            'ALWAYS', 'Unconditional',
            'CONDITIONAL', 'Conditional') ALWAYS,
   LOG_GROUP_TYPE
 FROM DBA_LOG_GROUPS;