160 likes | 347 Views
Supplemental Logging. Julian Dyke Independent Consultant. Web Version. juliandyke.com. Supplemental Logging. Supplemental Logging Example. ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;. Redo Header. Change Header.
E N D
SupplementalLogging Julian Dyke Independent Consultant Web Version juliandyke.com
Supplemental LoggingExample ALTER DATABASEADD SUPPLEMENTAL LOG DATA(PRIMARY KEY) COLUMNS; Redo Header Change Header CREATE TABLE t1( c1 NUMBER, c2 NUMBER, c3 NUMBER); KTU KDO c3 = 1 Supplementary Header c1 = 100 ALTER TABLE t1ADD CONSTRAINT t1_pk PRIMARY KEY (c1,c2); c2 = 20 Change Header INSERT INTO t1 VALUES (100,20,1); KTU UPDATE t1 SET c3 = 2WHERE c1 = 100AND c2 = 20; KDO c3 = 2
Supplemental LoggingMinimal Supplemental Logging • Required for LogMiner • Includes additional information in redo stream • Minimal supplemental logging can be enabled using: ALTER DATABASEADD SUPPLEMENTAL LOG DATA; • Minimal supplemental logging can be enabled using: ALTER DATABASEDROP SUPPLEMENTAL LOG DATA;
Supplemental LoggingMinimal Supplemental Logging • To check whether minimal supplemental logging is enabled: SELECT supplemental_log_data_minFROM v$database; • Returns YES or IMPLICIT if enabled • Allows LogMiner to support • chained rows • clustered tables • index organized tables (IOTs)
Supplemental LoggingDatabase Supplemental Logging • Can be enabled • For all columns • For primary key columns • For unique columns • For foreign key columns • All columns • All columns are included with the exception of: • LONG • LOB • LONG RAW • Abstract Data Types • Collections
Supplemental LoggingDatabase Supplemental Logging • To enable supplemental logging at database level: ALTER DATABASEADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS; ALTER DATABASEADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS; ALTER DATABASEADD SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS; ALTER DATABASEADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS; • Database can be mounted and open
Supplemental LoggingDatabase Supplemental Logging • To disable supplemental logging at database level: ALTER DATABASEDROP SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS; ALTER DATABASEDROP SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS; ALTER DATABASEDROP SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS; ALTER DATABASEDROP SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
Supplemental LoggingDatabase Supplemental Logging • To monitor database level supplemental logging: SELECT supplemental_log_data_min, supplemental_log_data_pk, supplemental_log_data_ui, supplemental_log_data_fk, supplemental_log_data_allFROM v$database;
Supplemental LoggingLog Groups • Implemented as constraints • If no name specified for log group then system constraint name will be allocated e.g SYS_C005223 • Can be • Unconditional • Before image of supplemental columns always included in redo • Conditional • Before image of supplemental columns only included in redo if supplemental columns have changed • In Oracle 10.2, minimal supplemental logging must be enabled at database level before supplemental logging can be enabled at table level
Supplemental LoggingUnconditional Supplemental Log Groups • To specify an unconditional supplemental log group for primary key column(s): ALTER TABLE t1ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS; • To specify an unconditional supplemental log group that includes all table columns: ALTER TABLE t1ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS; • To specify an unconditional supplemental log group that includes selected columns: ALTER TABLE t1ADD SUPPLEMENTAL LOG GROUP t1_g1 (c1,c3) ALWAYS;
Supplemental LoggingConditional Supplemental Log Groups • To specify a conditional supplemental log group for unique key column(s) and/or bitmap index column(s): ALTER TABLE t1ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS; • To specify a conditional supplemental log group that includes all foreign key columns: ALTER TABLE t1ADD SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS; • To specify a conditional supplemental log group that includes selected columns: ALTER TABLE t1ADD SUPPLEMENTAL LOG GROUP t1_g1 (c1,c3);
Supplemental LoggingDropping Supplemental Log Groups • To drop a supplemental log group: ALTER TABLE t1DROP SUPPLEMENTAL LOG GROUP t1_g1; • To drop supplemental logging of data use: ALTER TABLE t1DROP SUPPLEMENTAL LOG DATA (ALL) COLUMNS; ALTER TABLE t1DROP SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS; ALTER TABLE t1DROP SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS; ALTER TABLE t1DROP SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS;
Supplemental LoggingDBA_LOG_GROUPS view • Describes currently configured supplemental log groups: • LOG_GROUP_TYPE can be: • PRIMARY KEY LOGGING • UNIQUE KEY LOGGING • FOREIGN KEY LOGGING • ALL COLUMN LOGGING • USER LOG GROUP • ALWAYS can be: • ALWAYS • CONDITIONAL • GENERATED can be • GENERATED NAME • USER NAME
Supplemental LoggingDBA_LOG_GROUP_COLUMNS view • Describes columns in currently configured supplemental log groups: • LOGGING_PROPERTY can be: • LOG • NO_LOG • Only applies to log groups (not log data) configurations
Thank you for your interest info@juliandyke.com