您好,登錄后才能下訂單哦!
補充日志只要是針對UPDATE命令的,是對重做日志記錄中變更矢量塊的補充信息,增加了變更矢量記載的記錄量。日志挖掘器(LogMiner)、閃回事務查詢、閃回事務等都需要補充日志的支持。也就是說補充日志主要是為UPDATE命令服務的,補充的目的是高度還原UPDATE命令,避免因為update命令造成的行遷移和行移動,讓LogMiner 通過分析重做日志中識別update 命令不是由insert和delete完的。
數據庫級補充日志分為:最小補充日志、標識關鍵字段補充日志
(1).最小補充日志:是最基本的一種數據庫級補充日志,而LogMiner正是依賴最小補充日志工作服務的(即識別 行移動 行遷移)。
啟用最小補充日志命令:
alter database add supplemental log data;
關閉最小補充日志命令:
alter database drop supplemental log data;
(2).標識關鍵字段補充日志:分為主鍵、外鍵、唯一索引、全體字段補充日志 4種。
主鍵補充日志:在update命令的重做記錄中添加被修改行的主鍵字段的舊值,無論是否被修改,都記錄。如果表沒有主鍵,則由長度最小的唯一索引字段代替,若連唯一索引也沒有,則記錄該行所有字段.
alter database add supplemental log data (Primary key) columns;
唯一索引補充日志:唯一索引主要是為復合索引(唯一)服務的。只有唯一索引的字段被update時,才會記錄該字段被修改前的值。
alter database add supplemental log data (unique) columns;
外鍵補充日志:同唯一索引補充日志一樣,只有外鍵字段被update時,才會記錄被修改前的舊值,即也是為復合外鍵服務的。
alter database add supplemental log data (foreign key ) columns;
全體字段補充日志:顧名思義就所有字段的值不論是否被修改都記錄。會導致磁盤快速增長,LGWR進程繁忙。不建議使用。
alter database add supplemental log data (all) columns;
表級補充日志:
分為: 主鍵、唯一索引、外鍵、全體字段、用戶自定義字段5種。
前4種同數據庫級 標識關鍵字段補充日志效果用法一樣。只不過是在特定表上啟用補充日志
1.alter table tb_name add supplemental log data (primary key) columns;
2.alter table tb_name add supplemental log data (unique) columns;
3.alter table tb_name add supplemental log data (foreign key) columns;
4.alter table tb_name add supplemental log data (all) columns;
5.alter table tb_name add supplemental log group group_name (col01,col02,col05,col09) | always;
1.查看數據庫是否開啟補充日志
SQL> SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE; --開啟了補充日志
SUPPLEME
--------
YES
SQL> SELECT supplemental_log_data_min,supplemental_log_data_pk,supplemental_log_data_ui,
supplemental_log_data_fk,supplemental_log_data_all FROM v$database;
SUPPLEME SUP SUP SUP SUP --只開啟了主鍵的補充日志
-------- --- --- --- ---
YES NO NO NO NO
SQL>
2.查看表是否添加到補充日志中
SQL> select * from dba_log_groups where table_name='abc'; --查看表是否有補充日志
no rows selected
SQL> select * from dba_log_group_columns where table_name='abc'; --查看補充日志的字段
no rows selected
SQL>
3.解決方法(1)
GGSCI (iZ23jtzbnliZ) 35> dblogin userid ggs,password system --EXTRACT進程里的用戶名和密碼
Successfully logged into database.
GGSCI (iZ23jtzbnliZ) 36> add TRANDATA tong.abc --添加補充日志(tong是數據庫,abc是表名)
Logging of supplemental redo data enabled for table UPCENTER.NEWS_FLASH_TAB_CLAS_RELA.
GGSCI (iZ23jtzbnliZ) 37>
3.解決方法(2)
SQL> alter table abc add supplemental log data(all,primary key,unique,foreign key) columns;
SQL>
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。